2

スマート カード (Gemalto Company MPCOS アプレット) と通信するプログラムを作成しました。カードに正常に接続し、コマンドを送信してデータをフェッチすることができました。

ただし、問題があります。00 A4 01 00 02 02 00コマンドを使用して DF(Dedicated File) を選択すると、エラーが返されました69 81(ファイル インジケーターが正しくありません)。

このコマンドの後に別のコマンドを使用してこの DF のサブファイルを取得し、それが success を返したため、これは非常に奇妙です61 12

command1(Select MPCOS Applet): 00 A4 04 00 10 A0 00 00 00 18 30 03 01 00 00 00 00 00 00 00 00
-> response: [97,18] (in decimal) or 6112 (in hex)

command2: 00 C0 00 00 12
-> response: [105,133,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] (in decimal) or
             69 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (in hex)

command3(Select Root): 00 A4 00 00 02 3f 00
-> response: [97,18] (in decimal) or 6112 (in hex)

command4: 00 C0 00 00 12
-> response: [105,133,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] (in decimal) or
             69 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (in hex)

command5(Select DF): 00 A4 01 00 02 02 00
-> response: [105,129] (in decimal) or 6981 (in hex)

command6(Select EF): 00 A4 02 00 02 02 01
-> response: [97,18] (in decimal) or 6112 (in hex)

command7: 00 C0 00 00 12
-> response: [105,133,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] (in decimal) or 
             69 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (in hex)
4

2 に答える 2

2

応答を処理する必要がある場合は、00A4010002020000コマンド APDU (つまり、以前と同じですが、Leフィールドを使用) を使用できます (おそらく既にご存じのように、コマンドを使用して応答を取得できます)。SELECTGET RESPONSE

または、応答を処理する必要がない場合は、00A4010C020200コマンド APDU を使用できます (つまり、前と同じですが、応答データが必要ないことを示すため) 。P2=0x0CSELECT

あなたのコメントに基づいて、このアプローチはうまくいくはずです。

編集>

これは奇妙です。ネイティブ MPCOS カードで状況を再現しました (現在 MPCOS アプレットにアクセスできません)。

00A40000023F00 -> 851080013F0038000000C100C100000000679000
00A40100020200 -> 6F15840E315041592E5359532E4444463031A5038801019000
00A40200020201 -> 85104302020105000040C000C0000000006B9000

GET RESPONSE注: このトレースは、 APDU 交換を示していません。

だから多分私はあなたを助けることができない:(

于 2015-09-30T18:54:09.800 に答える