成功したら9000
というステータスワードを受け取ったと仮定します。 ISO/IEC 7816-4の基本的な業界間のコマンドAPDUを使用するときに実際に9100
を受け取った場合、非常に奇妙なことが起こっているはずです。 91xx
ステータスワードは、ISO/IEC 7816-4ラップコマンドセット(コマンドAPDUのクラスバイトが0x90に設定されているとき)を使用するときにのみ返されるべきです。
あなたが現在何をすべきかを見てみましょう:このカードは、ISO/IEC 7816-4フレーミングモードであることを確認すると、自動的に選択
00 A4 0400 07 D2760000850100
:
あなたは私がMIFARE DESFire ISO AID D2760000850100
を選択開始MF(マスターファイル、すなわちPICCレベルのアプリケーション)。
あなたは、その後、再び、MF(PICCレベルのアプリケーション)を選択します(!):
00 A4 0000 02 3F00
だから、あなたが最後に、ステップ4
後と同じレベルに今ある、あなたは3バイトの開始を読み取ろうREAD BINARY APDU:
00 B0 0000 03
を使用して現在選択されているファイルからのオフセット0で現在選択されているファイルがMFであるため、そこからバイナリデータを読み取ることはできません。 MFにはデータ部分がありません。その結果、カードは、MF(現在選択されている上位ビットが示すファイル)からオフセット0(P1 | P2 = 0x0000)で読み出すことを通知しようとすると、エラーコード6A86
( "間違ったパラメータP1および/またはP2" P1の値がゼロ)は意味をなさない。
あなたは、バイナリデータを読み取ることができる前に、したがって、あなたは、実際のデータの一部が含まれています多分、異なるアプリケーション(専用ファイル、DF)に位置して基本ファイル(EF)を、選択する必要があります。これは、明示的にEF(および、必要であればDF)のSELECTコマンドを送信するか、または最初の読み出しバイナリコマンドのP1の短いファイル識別子を使用して暗黙的にEFを選択することによって行うことができます。後者の場合、P1の上位ビットを1に設定して、P1の残りの部分が短いファイルIDをエンコードすることを示します。どちらの場合でも、読み込みたいファイルとアプリケーションのファイル/アプリケーション識別子を知る必要があります。
マイケルに助けていただきありがとうございます。私はまだこれに新しい疑問を抱いています.MFやEFとはどのように分かっていますか?簡単な読み取り/書き込み操作でEFファイルを選択する方法と短いファイル識別子です。 – Neo
私はMF、DF、EFについて読んだことがありますが、私の問題はまずMFを選択してからDFとEFに進むか、またはEFで読み書き操作を直接行うことができます。また、選択ファイルコマンド{00、A4,00,00,02,3F、01}を実行しているときに、x6A86というエラーが出ます。これは、ファイルが見つからないことを意味します.3F02,3f10,3f11などの他の多くのファイルも使用しようとします。しかし、私はすべてのケースで応答x6A86を取得します。私は選択するファイルcommand.isを実行する前に、アプリケーションやディレクトリを選択していません。 – Neo