Comando smartcard.transmitAPDU

O comando smartcard.transmitAPDU é usado para enviar um comando APDU para o smart card em um slot específico, note que antes de usar esta instrução o leitor de smartcard já deve estar inicializado e o comando ATR enviado para o cartão com a instrução smartcard.startreader.

Todos os parâmetros devem receber somente strings no formato hexadecimal.

Parâmetros

  1. datafield [string]
    Campo datafield em hexadecimal de um comando APDU contendo informações adicionais. Campo opcional, porém quando não utilizado, deve receber o valor 00
  2. header [string]
    Header em hexadecimal do comando APDU composto por CLA + INS + P1 + P2. Campo obrigatório.
  3. LC [string]
    Tamanho do parâmetro datafield em hexadecimal. Campo opcional, porém quando não utilizado, deve receber o valor 00.
  4. LE [string]
    Tamanho esperado da resposta em hexadecimal. Campo opcional, porém quando não utilizado, deve receber o valor 00. Toda vez que receber uma resposta que seja maior que os 2 bytes obrigatórios de resposta SW1 e SW2, é necessário especificar o tamanho da resposta neste campo.
  5. slot [string]
    slot que foi aberto com smartcard.startreader
  6. variabledatafieldresponse [string]
    Variável que irá conter a resposta em hexadecimal do comando APDU.
  7. variableSW [string]
    Variável que irá conter os 2 bytes obrigatórios (em hexadecimal) da resposta de um comando APDU.
  8. variablereturn [integer]
    Retorno do comando, onde:
    • -2: Erro ao enviar comando para o cartão
    • -1: Slot inválido
    • 1: Comando enviado com sucesso

Exemplo


No exemplo acima, primeiramente é feito um loop com o comando while aguardando que o comando smartcard.insertedcard identifique a inserção de um cartão.

Após o cartão ser inserido, o comando smartcard.startreader inicializa o leitor e o cartão enviando um comando ATR, e em seguida o comando smartcard.transmitAPDU é executado. No final o resultado é exibido através do comando display.