2015-01-16 8 views
-1

MF에있는 파일을 읽으려고합니다. EF.DIR 파일. 나는 파일 SFID을 얻었으므로, 먼저 SELEC_FILE 메소드를 사용하지 않습니다 (필요하지 않으므로). P2 매개 변수 (OFFSET)를 이해하는 데 문제가있을 수 있습니다. 나는 몇 가지 설명을 읽었지만 여전히 얻지 못하는 것은 무엇입니까 OFFSET을 의미합니까? 하지만 0-8에서 모든 숫자를 시도했지만 아무도 작동하지 않았습니다.스마트 카드 : APDU 명령 READ_BINARY가 오류를 반환합니다. 잘못된 매개 변수 P1-P2

byte[] readBinary = { CLA, INS_READ, P1_READ, (byte) 0x04, (short) 0}; 
ResponseAPDU read = channel.transmit(new CommandAPDU(readBinary)); 
String responseReadToString =read.toString(); 
System.out.println("Response Read: " + responseReadToString + "\n" + "Response Read (HEX): " + responseReadHex); 

내가 콘솔에서 얻을 출력은 다음과 같습니다 : 6B00에 대한 SW1-SW2의

Response Read: ResponseAPDU: 2 bytes, SW=6b00 
Response Read (HEX): 6B00 

설명 :

Incorrect parameters P1-P2 
CLA = 0x00 
INS_READ = 0xB0 
P1_READ = 0x9E (by the datasheed: bit(8) = 1, bit(7:6) = 00, bit(5:1): SFID) 
P2 = 0x04 (I figured that the offset should be from bit0 to bit4 (the SFID) 
Le = 0 (by the datasheet I have, this should mean that any size will be returned) 

내 코드입니다

나는 무엇이 잘못되었는지 정말로 모르며, 온라인 스마트 카드에 대한 지원을 찾기가 정말로 어렵다. 잘 알고있는 누군가 나를 도와 줄 수있다. 나는 또한 SELECT_FILE을 먼저 사용하고 그 뒤에 READ_BINARY (P1 매개 변수의 SFID없이)를 사용했지만 "No EF is currently as current"로 응답했다.

도움 사람이 있습니까?

+0

일부 (약간 :)이 일자와 완벽하게 합법적되지 않은 복사본을 보낼 수 있습니다 ISO 7816-4의 인터넷상의 당신은 그 것을 소화하지 않은 매우 힘든 시간을 보게 될 것입니다. – guidot

+0

어떤 카드로 작업하고 있으며 사양은 무엇입니까? –

답변

1

오프셋은 읽기를 시작할 위치/시작점입니다.

예 : 데이터 = [× 00 0x01로는 0x02은 0x03를 0x04의 0x05]

당신이 될 것입니다 오프셋 = 2 개 다음 반환 된 데이터와 ReadBinary를 조회 할 때 당신은 아마 읽고 자하는 바와는 0x02 0x03으로 0x4로의의 0x05]

전체 EF.DIR 파일 오프셋은 0이어야한다. EF.DIR를 읽기위한

당신은

00 B0 9E 00 00 

또는

00 B1 2F 00 04 54 02 00 00 00 

또는

00 A4 02 0C 02 2F 00 
00 B0 00 00 00 
+0

Paul, 고맙습니다. 해결책을 테스트 해 보겠습니다. SELEC_FILE 및 READ_BINARY가 실제로 코드에서 어떻게 작동하는지 예제를 찾고 싶습니다. 내 코드를 검사하면 chanell.transmit (new CommandAPDU (readBinary);)를 사용하는 것을 볼 수있다. SELECT_FILE 옵션에서 SELECT_FILE과 READ_BINARY 명령 바로 다음에 명령을 사용해야한다고 가정한다. 그러나 내가 그렇게하면 어떤 파일도 선택하지 않았다고 말합니다. READ_BINARY 바로 전에했기 때문에 이상합니다. –

+0

위의 모든 방법을 시도했지만 내 경우에는 아무 것도하지 않았습니다. 당신은 나에게 SELECT_FILE과 READ_BINARY가 어떻게 작동하는지에 대한 예제 코드를 제공해 주시겠습니까? 오류 메시지 : No Current EF. –

+0

잘 작동하는 스마트 카드 쉘/pcsc 슈트에서 이러한 APDU를 보내보십시오.openSC 등 –