I have two smart card readers connected to my computer :
- ACS ACR122U contactless reader
- CRT-603-CZ1 contactless reader
I read the manual of both readers. As mentioned in the manuals, both use the following APDU commands for GET DATA APDU commands :
CLA | INS | P1 | P2 | Le
0xFF | 0xCA | 0x00/0x01 | 0x00 | 0x00
P1 = 0x00 --> UID will return.
P1 = 0x01 --> ATS or Historical Byte of ATS will return.
Well, I put an ISO14443 (Maybe Mifare) card in the field of ACR122U reader first and then in the field of CRT-603-CZ1 and I tried above commands:
OSC:> OSC.exe -r "ACS ACR122 0" -s FFCA000000
Failed to connect to card: Card is invalid or cannot be handled
OSC:> OSC.exe -r "ACS ACR122 0" -s FFCA010000
Failed to connect to card: Card is invalid or cannot be handled
OSC:> OSC.exe -r "CREATOR CRT-603 (CZ1) CCR RF 0" -s FFCA000000
Sending: FF CA 00 00 00
Received (SW1=0x00, SW2=0x00):
FF 16 7F 29 ...)
OSC:> OSC.exe -r "CREATOR CRT-603 (CZ1) CCR RF 0" -s FFCA010000
Sending: FF CA 01 00 00
Received (SW1=0x90, SW2=0x00)
As you see above, the results are different. Actually ACR122U can't return the ATS and UID of this card.
Well, I repeat the above step with a JCOPv2.4.2r3 card:
OSC:> OSC.exe -r "ACS ACR122 0" -s FFCA000000
Sending: FF CA 00 00 00
Received (SW1=0x90, SW2=0x00):
EF B6 09 2E ....
OSC:> OSC.exe -r "ACS ACR122 0" -s FFCA010000
Sending: FF CA 01 00 00
Received (SW1=0x90, SW2=0x00):
0E 78 F7 B1 02 4A 43 4F 50 32 34 32 52 33 .x...JCOP242R3
OSC:> OSC.exe -r "CREATOR CRT-603 (CZ1) CCR RF 0" -s FFCA000000
Sending: FF CA 00 00 00
Received (SW1=0x00, SW2=0x00):
EF B6 09 2E ....
OSC:> OSC.exe -r "CREATOR CRT-603 (CZ1) CCR RF 0" -s FFCA010000
Sending: FF CA 01 00 00
Received (SW1=0x90, SW2=0x00):
4A 43 4F 50 32 34 32 52 33 00 JCOP242R3.
And as you see, both returns almost the same result.
Can anybody help me to understand why I receive different results for the first card?
Note that OCS.exe is execution file of OpenSC-Tool