2012-10-24 15 views
6

私はAPDUが接触の少ないISO 14443スマートカードのUIDを探し、それをLinux端末で印刷する方法を探しています。問題は、多くの人がそれについて話していることが分かったのですが、解決策はありません。誰も助けることができるのですか? ありがとうスマートカードuidを取得するためのAPDUコマンド

答えて

7

other answerを参照すると、ほとんどの読者がカードリーダーへのパススルーを今サポートしている可能性があります。


誰もAPDU年代は、ISO 7816アプリケーション層プロトコルで指定されている間UIDは、ISO 14443 T = CL・トランスポート・プロトコルで指定されているように助けることができません。

したがって、非接触型リーダー用の低レベルAPIにアクセスする必要があります。 PCSCは(UIDを返す特定のリーダーに対して実装されたパススルーがない限り)十分ではありません。

+0

PCSCと協力しながら、だから、何がスマートカードのUIDを読み取ることが可能な方法かもしれません-Lite? – Salman

+0

私は基本的なリーダーライブラリを見ています。 PCSCは当初はコンタクトリーダーのために作られました。問題は、PCSCを超えたものは、専有ドライバである可能性が高いことです。 –

+0

UIDは世界中の非接触カードごとに固有のものですか? (つまり、等しいUIDを持つ2つの異なるカードはありませんか?)それは固定ですか、それともセッションごとに乱数ですか?なぜそれが必要なの?アンチコリジョンメカニズムのためだけに? – Abraham

9

"Get Data Command"はPCSC 3 v2で定義されています。あなたのドライバがPCSC V2準拠している場合、あなたはそれを使用してUIDを取得できます。

Class = 0xFF 
INS = 0xCA 
P1 = 0x00 
P2 = 0x00 
Le = 0x00 (return full length: ISO14443A single 4 bytes, double 7 bytes, triple 10 bytes, for ISO14443B 4 bytes PUPI, for 15693 8 bytes UID) 

戻り値は次のとおりです。

Data+SW1SW2 
+0

openscを使用してUIDを読み取るLinuxコマンド: opensc-tool --send-apdu FF:CA:00:00:00 - –

+0

ありがとう@nchokoev! pcsclite(node adaption)の問題を解決しました。 – Stilmittel