diff --git a/client/cmdhflist.c b/client/cmdhflist.c index ddda15a2c..2deab204c 100644 --- a/client/cmdhflist.c +++ b/client/cmdhflist.c @@ -326,8 +326,19 @@ void annotateIso7816(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize){ } // I-block else { - - int pos = (cmd[0] == 2 || cmd[0] == 3) ? 2 : 3; + int pos = 0; + switch ( cmd[0] ) { + case 2: + case 3: + pos = 2; + break; + case 0: + pos = 1; + break; + default: + pos = 3; + break; + } switch ( cmd[pos] ){ case ISO7816_READ_BINARY :snprintf(exp, size, "READ BIN");break; case ISO7816_WRITE_BINARY :snprintf(exp, size, "WRITE BIN");break; diff --git a/client/cmdtrace.c b/client/cmdtrace.c index 537786bb4..90c08459f 100644 --- a/client/cmdtrace.c +++ b/client/cmdtrace.c @@ -174,6 +174,7 @@ uint16_t printTraceLine(uint16_t tracepos, uint16_t traceLen, uint8_t *trace, ui case ISO_15693: crcStatus = iso15693_CRC_check(frame, data_len); break; + case ISO_7816_4: default: break; } @@ -526,7 +527,9 @@ int CmdTraceList(const char *Cmd) { if ( protocol == ISO_15693 ) PrintAndLogEx(NORMAL, "ISO15693 - Timings are not as accurate"); if ( protocol == FELICA ) - PrintAndLogEx(NORMAL, "ISO18092 / FeliCa - Timings are not as accurate"); + PrintAndLogEx(NORMAL, "ISO18092 / FeliCa - Timings are not as accurate"); + if ( protocol == ISO_7816_4 ) + PrintAndLogEx(NORMAL, "ISO7816-4 / Smartcard - Timings N/A yet"); PrintAndLogEx(NORMAL, ""); PrintAndLogEx(NORMAL, " Start | End | Src | Data (! denotes parity error) | CRC | Annotation");