Page 1 of 1

Get "6E 00" APDU response

Posted: Sat Dec 05, 2015 3:32 am
by Eaonm
I am testing an EMV card. After a successful selection of the EMV application, when I send the APDU command--Get Processing Options with class value 0x80, it threw SW=6E 00 (CLA value not supported).
Here is my command.
Send: 0x80 0xA8 0x00 0x00 0x02 0x83 0x00 0x00
Recv: 0x6E 0x00
Part of my code:

Code: Select all

byte[] myPDOLData={ (byte) 0x83, 0x00}; 
CommandAPDU myComm = new CommandAPDU((byte)0x80, (byte)0xA8, 0x00, 0x00, myPDOLData, 0x00);
myChannel.transmit(myCom);


I don't have any clues about this issue. Why did I get the response 6E 00?

Re: Get "6E 00" APDU response

Posted: Mon Dec 14, 2015 10:21 pm
by Eaonm
I investigate further. The problem is due to the Get Response command. When sending the get processing option (80A80000028300) the card respond 6114. But, instead of sending the following APDU (00 C0 00 00 14) it sends (80 C0 00 00 14) which is a Class error, then the card respond 6E00.
Does anyone has an idea how to fix this problem?

Re: Get "6E 00" APDU response

Posted: Mon Dec 14, 2015 10:22 pm
by horse dream
Eaonm wrote:I investigate further. The problem is due to the Get Response command. When sending the get processing option (80A80000028300) the card respond 6114. But, instead of sending the following APDU (00 C0 00 00 14) it sends (80 C0 00 00 14) which is a Class error, then the card respond 6E00.
Does anyone has an idea how to fix this problem?


This is because sun.security.smartcardio.CardImpl in smartcardio attempts to handle response chaining for you. To solve this issue, do as follow:

Modify the applet to return 6100 regardless of how many more bytes are being returned when T=0.