1

Windows Phone 8.1 の新しい Windows.Devices.SmartCards 名前空間を使用して、スマート カードから ATR を抽出しようとしています (Silverlight を使用しています)。

メソッド GetAnswerToResetAsync を呼び出していますが、これは COM オブジェクトで応答し、14 バイト配列に変換されます (私の場合)。Android を使用している開発者は GetHistoricalBytes と呼ばれるものを使用しており、これにより 20 ディジットの ATR が生成されます。

他の誰かがこの方法を経験したことがありますか、そして私たちがそれから期待すべき情報を知っている人はいますか? また、ペイロードがはるかに大きくなると予想していたので、私が求めている情報はこの呼び出しに含まれていない可能性があります。GetIdAsync を見てきましたが、これは card does not support this feature で応答します。

4

1 に答える 1

0

Android + getHistoricalBytes() は、非接触型スマートカード (ISO/IEC 14443 タイプ A) を使用していることを示唆しています。非接触インターフェースでは、スマートカードには ATR がありません (接触インターフェースのようなリセット手順がないため)。代わりに、リーダーがアンチコリジョン シーケンスでカードを選択するため、カードには ATS (answer to select) があります。ATS と ATR は構造的に類似していますが、同じ情報を伝えるわけではありません。

Windows で ATR として得られるものは、カードへのアクセス方法によって異なります。

  • 接触インターフェイスを介してカードにアクセスすると、カードの実際の ATR が得られます。カードによっては、基本ファイル EF.ATR.

  • 非接触インターフェイスを介してカードにアクセスすると、PC/SC レイヤーによって生成されたエミュレートされた ATR が得られる可能性があります。ISO/IEC 14443-4 タイプ A 非接触スマートカードの場合、そのエミュレートされた ATR には、バイト 4 から始まる ATS からの履歴バイトが含まれている必要があります (マッピングの説明は、PC/SC 仕様のパート 3 にあります)。

于 2014-12-30T09:32:41.053 に答える