En esta sección se describen los requisitos generales del conjunto de comandos apDU para tarjetas no compatibles con ISO14443-4 (conocidas como tarjetas de almacenamiento).
General-Authenticate command
El comando General-Authenticate se usa para realizar la secuencia de autenticación en una tarjeta MIFARE. Este comando solo es aplicable para tarjetas MIFARE Mini, Classic 1k y 4k.
| Command |
Class |
INS |
P1 |
P2 |
Lc |
Data In |
| General-Authenticate |
0xFF |
0x86 |
0x00 |
0x00 |
0x01 |
Dirección MSB, LSB de dirección, tipo de clave A o B, número de clave |
Get-Data command
El comando Get-Data se usa para recuperar información de la etiqueta/tarjeta NFC sin contacto.
| Command |
Class |
INS |
P1 |
P2 |
L2 |
| Get-Data |
0xFF |
0xCA |
0x00: Número de serie de la tarjeta (ISO14443-A: UID, ISO14443-B: PUPI, Felica: IDm, Jewel: RID)
0x01: Bytes históricos de la tarjeta (Tipo A: Bytes históricos de ATR, Tipo B: Respuesta ATTRIB) |
0x00 |
0x00 |
| Response |
| Salida de datos, SW1, SW2 |
Load-Key command
El comando Load-Key se usa para almacenar claves MIFARE en el controlador. Este comando solo es aplicable para tarjetas MIFARE Mini, Classic 1k y 4k.
| Command |
Class |
INS |
P1 |
P2 |
Lc |
Data In |
| Load-Key |
0xFF |
0x82 |
Key Structure |
Key Number |
0x6 |
Key Value |
Comando Administrar sesión
La implementación de este comando debe ser según la especificación PCSC.
| Command |
Class |
INS |
P1 |
P2 |
Lc |
Data In |
| General Authenticate |
0xFF |
0xC2 |
0x00 |
0x00 |
Variable |
Objeto de datos TLV |
A continuación se requieren objetos de datos TLV que el controlador admita:
| Tag |
Data Object |
| 0x80 |
Objeto de datos de versión |
| 0x81 |
Iniciar sesión transparente |
| 0x82 |
Finalizar sesión transparente |
Read-Binary command
El comando Read-Binary se usa para leer datos de la etiqueta o tarjeta NFC sin contacto. El comando solo es aplicable a las tarjetas de almacenamiento (tarjetas MIFARE Classic/UL, Felica, ISO15693 y Jewel/Topaz).
| Command |
Class |
INS |
P1 |
P2 |
Lc |
Data In |
Li |
| Read-Binary |
0xFF |
0xB0 |
Address MSB |
Address LSB |
Longitud de los datos en |
Data |
Length expected |
Read-Binary familia MIFARE
| Command |
CLA |
INS |
P1 |
P2 |
Le |
| UL READ 16 |
0xFF |
0xB0 |
0x00 |
0x00 a 0x15 |
0x10 |
| CL 1k READ 16 |
0xFF |
0xB0 |
0x00 |
0x00 a 0x3F |
0x10 |
| CL 4k READ 16 |
0xFF |
0xB0 |
0x00 |
0x00 a 0xFF |
0x10 |
familia Read-Binary Jewel
| Command |
CLA |
INS |
P1 |
P2 |
Le |
| READ ALL |
0xFF |
0xB0 |
0x00 |
0x00 |
0x00 |
| RID |
0xFF |
0xB0 |
0x00 |
0x00 |
0x06 |
| READ |
0xFF |
0xB0 |
Block No |
Block Offset |
0x01 |
| READ 8 |
0xFF |
0xB0 |
Block No |
0x00 |
0x08 |
| READ SEG |
0xFF |
0xB0 |
0x00 |
Segment Addr |
0x80 |
familia Read-Binary Felica
| Command |
CLA |
INS |
P1 |
P2 |
Lc |
Data In |
| CHECK |
0xFF |
0xB0 |
0x00 |
0x00 |
Longitud de los datos en |
Número de servicios, número de bloques, lista de bloqueos |
Familia ISO 15693
| Command |
CLA |
INS |
P1 |
P2 |
Le |
| READ |
0xFF |
0xB0 |
Block Number |
0x00 |
0x04 |
Respuesta de familia ISO 15693
| Response |
| Salida de datos, SW1, SW2 |
Comando de intercambio transparente
| Command |
Class |
INS |
P1 |
P2 |
Lc |
Data In |
| General Authenticate |
0xFF |
0xC2 |
0x00 |
0x01 |
Variable |
Objeto de datos TLV |
A continuación se muestran los objetos de datos TLV necesarios para que el comando de Exchange transparente sea compatible con el controlador para el intercambio transparente de comandos a tarjetas de almacenamiento:
| Tag |
Data Object |
| 0x95 |
Transceive: transmisión y recepción |
| 0x5F46 |
Timer |
Update-Binary command
El comando Update-Binary se usa para escribir datos en la etiqueta o tarjeta NFC sin contacto. El comando solo es aplicable a las tarjetas de almacenamiento (tarjetas MIFARE Classic/UL, Felica, ISO15693 y Jewel/Topaz). El formato de la solicitud y la respuesta para el comando es como se describe a continuación.
| Command |
Class |
INS |
P1 |
P2 |
Lc |
Data In |
| Update-Binary |
0xFF |
0xD6 |
Address MSB |
Address LSB |
Longitud de los datos en |
Data |
Update-Binary familia MIFARE
| Command |
CLA |
INS |
P1 |
P2 |
Le |
| UL WRITE 4 |
0xFF |
0xD6 |
0x00 |
0x00 a 0x15 |
0x04 |
| CL 1k WRITE 16 |
0xFF |
0xD6 |
0x00 |
0x00 a 0x3F |
0x10 |
| CL 4k WRITE 16 |
0xFF |
0xB0 |
0x00 |
0x00 a 0xFF |
0x10 |
familia Update-Binary Jewel
| Command |
CLA |
INS |
P1 |
P2 |
Le |
| WRITE1-E |
0xFF |
0xD6 |
Block Number |
Block Offset |
0x01 |
| WRITE8-E |
0xFF |
0xD6 |
Block Number |
0x00 |
0x08 |
familia Update-Binary Felica
| Command |
CLA |
INS |
P1 |
P2 |
Le |
Data In |
| UPDATE |
0xFF |
0xD6 |
0x00 |
0x00 |
Longitud de los datos en |
Número de servicio, Número de bloques, Lista de bloqueos |
| Command |
CLA |
INS |
P1 |
P2 |
Le |
| WRITE |
0xFF |
0xD6 |
Block Number |
0x00 |
0x04 |