2014-10-21 2 views
0

WinsCard.dll을 사용하여 APDU 명령을 사용하여 PIN 코드를 재설정하고 스마트 카드에 새 ID를 설정하려고합니다. 그러나이 명령을 실행하면 "67 00"("잘못된 길이") 오류가 발생합니다.APDU 명령으로 코드 PIN 차단 해제 : "67 00"-> Wrong length

내 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 

: 일부 검색 후

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 

답변

1

P1과 RESET 재시도 카운터 명령 (INS = 0x2C)를 사용하여 = 0x03은 ​​새 참조 데이터 (예 : 새 PIN)를 설정하지 않고 재시도 카운터를 재설정하려는 것입니다.

: 새 참조 데이터를 설정하려면 재시도 카운터를 재설정 할 때 (새 PIN)을, 당신은

  • × 00 (형식에 대해 당신이 시도) = P1 (어떤 카드 지원에 따라) 시도해 볼 수도 있습니다 (만 새 참조 데이터가 전송됩니다)

    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 
    
+0

나는 시도하고 그것을 완벽하게 작동합니다! 개최 해 주셔서 대단히 감사합니다! – Amatukami

+0

이것은 어떻게 지금까지 효과가 있었습니까? 나는 당신의 모든 명령을 시도했고 그들은 모두 '6A86'또는 '6A88'을 반환합니다. 3.2.3 NIST 스펙 섹션에 따르면 P2를 '80'으로 설정해야합니까? http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-73-4.pdf – codenamezero

+0

@codenamezero 매개 변수 P2는 PIN 참조 번호이므로이 값 (P1에 지정된 형식과 크기 PIN/PUK 필드의 수)는 실제 구현 및 사용 된 PIN에 따라 다를 수 있습니다. 이 특정 매개 변수가 OP에 사용되었다고해서 모든 카드/응용 프로그램에 수정되지 않은 상태로 작동한다는 것을 의미하지는 않습니다. –