ACR128 Dual Interface Smart Card Reader
Example 3: DESFIRE Frame Level Chaining (ISO 7816 wrapping mode). In this example, the
application has to do the “Frame Level Chaining” to get the version of the DESFIRE card.
Step 1: Send an APDU {90 60 00 00 00} to get the first frame. INS=0x60
Answer: 04 01 01 00 02 18 05 91 AF [$91AF]
Step 2: Send an APDU {90 AF 00 00 00} to get the second frame. INS=0xAF
Answer: 04 01 01 00 06 18 05 91 AF [$91AF]
Step 3: Send an APDU {90 AF 00 00 00} to get the last frame. INS=0xAF
Answer: 04 52 5A 19 B2 1B 80 8E 36 54 4D 40 26 04 91 00 [$9100]
Example 4: DESFIRE Native Command. We can send Native DESFire Commands to the reader
without ISO7816 wrapping if we find that the Native DESFire Commands are easier to handle. To read
8 bytes random number from an ISO 14443-4 Type A PICC (DESFIRE)
APDU = {0A 00}
Answer: AF 25 9C 65 0C 87 65 1D D7[$1DD7]
In which, the first byte “AF” is the status code returned by the DESFire Card.
The Data inside the blanket [$1DD7] can simply be ignored by the application.
Example 5: DESFIRE Frame Level Chaining (Native Mode). In this example, the application has to do
the “Frame Level Chaining” to get the version of the DESFIRE card.
Step 1: Send an APDU {60} to get the first frame. INS=0x60
Answer: AF 04 01 01 00 02 18 05[$1805]
Step 2: Send an APDU {AF} to get the second frame. INS=0xAF
Answer: AF 04 01 01 00 06 18 05[$1805]
Step 3: Send an APDU {AF} to get the last frame. INS=0xAF
Answer: 00 04 52 5A 19 B2 1B 80 8E 36 54 4D 40 26 04[$2604]
NOTE:
Once the DESFire Tag is activated, the first APDU sent to the DESFire Tag will determine the
“Command Mode”. If the first APDU is in “Native Mode”, the rest of the APDUs must be in “Native
Mode” format.
Page
35 of 36
ACR128 API
Version 1.7 May 2008