diff --git a/client/src/cmdhflist.c b/client/src/cmdhflist.c index 45def2a4b..5c03b1b41 100644 --- a/client/src/cmdhflist.c +++ b/client/src/cmdhflist.c @@ -1669,11 +1669,16 @@ void annotateIso14443b(char *exp, size_t size, uint8_t *cmd, uint8_t cmdsize) { case ISO14443B_PONG: snprintf(exp, size, "PONG"); break; - case ISO14443B_XEROX_PWD: - if (cmdsize == 17 && cmd[1] == 0x38) { + case 0x02: + if (cmdsize == 17 && cmd[1] == ISO14443B_XEROX_PWD) { snprintf(exp, size, "XEROX PWD"); break; } + if (cmdsize == 13 && cmd[1] == ISO14443B_XEROX_READ_BLK) { + snprintf(exp, size, "XEROX READ_BLK(%u)", cmd[2+8]); + break; + } + case ISO14443B_XEROX_WUP1: if (cmdsize == 5) { snprintf(exp, size, "XEROX WUP1"); diff --git a/client/src/cmdhfxerox.c b/client/src/cmdhfxerox.c index 5773e3016..59850fa14 100644 --- a/client/src/cmdhfxerox.c +++ b/client/src/cmdhfxerox.c @@ -636,7 +636,7 @@ static int read_xerox_block(iso14b_card_select_t *card, uint8_t blockno, uint8_t // set up the read command packet->flags = (ISO14B_CONNECT | ISO14B_APPEND_CRC | ISO14B_RAW); packet->raw[packet->rawlen++] = 0x02; - packet->raw[packet->rawlen++] = XEROX_READ_MEM; + packet->raw[packet->rawlen++] = ISO14443B_XEROX_READ_BLK; // uid memcpy(packet->raw + packet->rawlen, card->uid, card->uidlen); diff --git a/include/protocols.h b/include/protocols.h index 1c1a011c2..d5c0a8c7e 100644 --- a/include/protocols.h +++ b/include/protocols.h @@ -314,9 +314,12 @@ ISO 7816-4 Basic interindustry commands. For command APDU's. #define ISO14443B_PING 0xBA #define ISO14443B_PONG 0xAB -#define ISO14443B_XEROX_PWD 0x02 -#define ISO14443B_XEROX_WUP1 0x0D -#define ISO14443B_XEROX_WUP2 0x5D +// XEROX Commands +#define ISO14443B_XEROX_PWD 0x38 +#define ISO14443B_XEROX_WUP1 0x0D +#define ISO14443B_XEROX_WUP2 0x5D +#define ISO14443B_XEROX_READ_BLK 0x20 + // ASK C-ticket #define ASK_REQT 0x10 @@ -930,8 +933,5 @@ ISO 7816-4 Basic interindustry commands. For command APDU's. // 0x0A = ACK // 0x05 = NACK -// XEROX Commands -#define XEROX_READ_MEM 0x20 - #endif // PROTOCOLS_H