add apdu chaining to arm side

This commit is contained in:
merlokk 2019-01-29 19:30:15 +02:00
parent 8991fa172d
commit 1b3d96ab2d
2 changed files with 4 additions and 0 deletions

View file

@ -2226,6 +2226,9 @@ int iso14_apdu(uint8_t *cmd, uint16_t cmd_len, void *data, uint8_t *res) {
if (cmd_len) {
// ISO 14443 APDU frame: PCB [CID] [NAD] APDU CRC PCB=0x02
real_cmd[0] = 0x02; // bnr,nad,cid,chn=0; i-block(0x00)
if (param & ISO14A_SEND_CHAINING) {
real_cmd[0] |= 0x10;
}
// put block number into the PCB
real_cmd[0] |= iso14_pcb_blocknum;
memcpy(real_cmd + 1, cmd, cmd_len);

View file

@ -36,6 +36,7 @@ typedef enum ISO14A_COMMAND {
ISO14A_NO_SELECT = (1 << 7),
ISO14A_TOPAZMODE = (1 << 8),
ISO14A_NO_RATS = (1 << 9)
ISO14A_SEND_CHAINING = (1 << 9)
} iso14a_command_t;
typedef struct {