Compartilhar via


Requisitos de cartão de armazenamento

Esta seção descreve os requisitos gerais do conjunto de comandos da APDU para cartões não compatíveis com ISO14443-4 (conhecidos como cartões de armazenamento).

General-Authenticate command

O comando General-Authenticate é usado para executar a sequência de autenticação em um cartão MIFARE. Esse comando só é aplicável para cartões MIFARE Mini, Classic 1k e 4k.

General-Authenticate formato de comando

Command Class INS P1 P2 Lc Data In
General-Authenticate 0xFF 0x86 0x00 0x00 0x01 Endereço MSB, Endereço LSB, Tipo de Chave A ou B, Número da Chave

General-Authenticate formato de resposta

Response
SW1, SW2

Get-Data command

O comando Get-Data é usado para recuperar informações da marca/cartão NFC sem contato.

Get-Data formato de comando

Command Class INS P1 P2 L2
Get-Data 0xFF 0xCA 0x00: Número de série do cartão (ISO14443-A: UID, ISO14443-B: PUPI, Felica: IDm, Jewel: RID)

0x01: bytes históricos do cartão (Tipo A: bytes históricos de ATR, Tipo B: resposta ATTRIB)
0x00 0x00

Get-Data formato de resposta

Response
Saída de dados, SW1, SW2

Load-Key command

O comando Load-Key é usado para armazenar chaves MIFARE no driver. Esse comando só é aplicável para cartões MIFARE Mini, Classic 1k e 4k.

Load-Key formato de comando

Command Class INS P1 P2 Lc Data In
Load-Key 0xFF 0x82 Key Structure Key Number 0x6 Key Value

Load-Key formato de resposta

Response
SW1, SW2

Comando Gerenciar Sessão

A implementação desse comando deve ser de acordo com a especificação do PCSC.

Gerenciar formato de comando de sessão

Command Class INS P1 P2 Lc Data In
General Authenticate 0xFF 0xC2 0x00 0x00 Variable Objeto de dados TLV

A seguir, são necessários objetos de dados TLV para serem compatíveis com o driver:

Tag Data Object
0x80 Objeto de dados de versão
0x81 Iniciar Sessão Transparente
0x82 Encerrar Sessão Transparente

Read-Binary command

O comando Read-Binary é usado para ler dados da marca/cartão NFC sem contato. O comando é aplicável somente para cartões de armazenamento (cartões MIFARE Classic/UL, Felica, ISO15693 e Jewel/Topaz).

Read-Binary formato de comando

Command Class INS P1 P2 Lc Data In Li
Read-Binary 0xFF 0xB0 Address MSB Address LSB Comprimento dos dados em Data Length expected

Read-Binary família MIFARE

Command CLA INS P1 P2 Le
UL READ 16 0xFF 0xB0 0x00 0x00 0x15 0x10
CL 1k READ 16 0xFF 0xB0 0x00 0x00 0x3F 0x10
CL 4k READ 16 0xFF 0xB0 0x00 0x00 0xFF 0x10

família 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

Read-Binary família Felica

Command CLA INS P1 P2 Lc Data In
CHECK 0xFF 0xB0 0x00 0x00 Comprimento dos dados em Número de serviço, número de blocos, lista de blocos

Família ISO 15693

Command CLA INS P1 P2 Le
READ 0xFF 0xB0 Block Number 0x00 0x04

Resposta da família ISO 15693

Response
Saída de dados, SW1, SW2

Comando transparent exchange

Formato de comando transparente do Exchange

Command Class INS P1 P2 Lc Data In
General Authenticate 0xFF 0xC2 0x00 0x01 Variable Objeto de dados TLV

A seguir estão os objetos de dados TLV necessários para que o Transparent Exchange Command tenha suporte do driver para troca transparente de comandos em cartões de armazenamento:

Tag Data Object
0x95 Transceive – Transmitir e receber
0x5F46 Timer

Update-Binary command

O comando Update-Binary é usado para gravar dados na marca/cartão NFC sem contato. O comando é aplicável somente para cartões de armazenamento (cartões MIFARE Classic/UL, Felica, ISO15693 e Jewel/Topaz). O formato da solicitação e da resposta para o comando é conforme descrito abaixo.

Update-Binary formato de comando

Command Class INS P1 P2 Lc Data In
Update-Binary 0xFF 0xD6 Address MSB Address LSB Comprimento dos dados em Data

Update-Binary família MIFARE

Command CLA INS P1 P2 Le
UL WRITE 4 0xFF 0xD6 0x00 0x00 0x15 0x04
CL 1k WRITE 16 0xFF 0xD6 0x00 0x00 0x3F 0x10
CL 4k WRITE 16 0xFF 0xB0 0x00 0x00 0xFF 0x10

família 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

Update-Binary família Felica

Command CLA INS P1 P2 Le Data In
UPDATE 0xFF 0xD6 0x00 0x00 Comprimento dos dados em Número de serviços, número de blocos, lista de blocos

Response format

Command CLA INS P1 P2 Le
WRITE 0xFF 0xD6 Block Number 0x00 0x04