1

WinsCard.dll を使用して、APDU コマンドを使用して PIN コードをリセットし、スマートカードに新しいコードを設定したいと考えています。しかし、これらのコマンドを起動すると、エラー「67 00」(「間違った長さ」) が表示されます。

私のAPDUコマンド:

// First command, I verify the code PUK (return "90 00")
00 20 00 02 08 36 35 32 34 39 38 37 36  
// Second command, I try to set a new code PIN into the card
00 2C 03 01 0C 36 35 32 34 39 38 37 36 31 32 33 34

2 番目のコマンドの場合:

36 35 32 34 39 38 37 36 -> code PUK
31 32 33 34 -> new code PIN

いくつかの検索の後、私が見つけた唯一の説明は、「Lc」パラメーターが間違っていたということです。しかし、私の場合、それは「0C」に等しく、データの長さは「0C」です。

だから、私は私のエラーがどこにあるのか分かりません。

アイデアはありますか?

ご助力ありがとうございます!

注: 新しい PIN を入力せずにコード PIN をリセットすると (以前のコード PIN が復元されます)、正常に動作します。

00 20 00 02 08 31 38 39 30 31 36 39 32
// Reset code PIN
00 2C 03 01 00
4

2 に答える 2

1

P1 = 0x03 で RESET RETRY COUNTER コマンド (INS = 0x2C) を使用することは、新しい参照データ (つまり、新しい PIN) を設定せずにリトライ カウンターをリセットすることを意味します。再試行カウンターをリセットするときに新しい参照データ (新しい PIN) を設定する場合は、(カードがサポートするものに応じて) 試すことができます。

  • P1 = 0x00 (試したフォーマットの場合):

    00 2C 00 01 0C 36 35 32 34 39 38 37 36 31 32 33 34
    
  • P1 = 0x02 (新しい参照データのみが送信されます):

    00 2C 02 01 04 31 32 33 34
    
于 2014-10-21T09:33:24.993 に答える