chg: 'sc raw' - added response code annotation

This commit is contained in:
Chris 2018-09-23 17:05:29 +02:00
parent 125884c3d5
commit f3d1c9ea77

View file

@ -76,6 +76,10 @@ static int smart_wait(uint8_t *data) {
} }
memcpy(data, resp.d.asBytes, len); memcpy(data, resp.d.asBytes, len);
PrintAndLogEx(SUCCESS, "%s", sprint_hex(data, len)); PrintAndLogEx(SUCCESS, "%s", sprint_hex(data, len));
if (len >= 2) {
PrintAndLogEx(SUCCESS, "%02x %02x | %s", data[len - 2], data[len - 1], GetAPDUCodeDescription(data[len - 2], data[len - 1]));
}
return len; return len;
} }
@ -84,10 +88,8 @@ static int smart_response(uint8_t *data) {
int len = -1; int len = -1;
int datalen = smart_wait(data); int datalen = smart_wait(data);
if ( datalen == 3 && data[1] == 0x61 ) { if ( data[datalen - 2] == 0x61 ) {
len = data[2]; len = data[datalen - 1];
} else if ( datalen == 2 && data[0] == 0x61 ) {
len = data[1];
} }
if (len == -1 ) { if (len == -1 ) {
@ -103,8 +105,6 @@ static int smart_response(uint8_t *data) {
datalen = smart_wait(data); datalen = smart_wait(data);
out: out:
if (data)
free(data);
return datalen; return datalen;
} }
@ -206,10 +206,7 @@ int CmdSmartRaw(const char *Cmd) {
if (len > 4) { if (len > 4) {
TLVPrintFromBuffer(buf, len - 2); TLVPrintFromBuffer(buf, len - 2);
} }
} else {
PrintAndLogEx(SUCCESS, "%s", sprint_hex(buf, len));
} }
free(buf); free(buf);
} }
return 0; return 0;