From 1a2ef57c0c4b24fb7eb70ccd8e1d3265bb398d9a Mon Sep 17 00:00:00 2001 From: Chris Date: Thu, 5 Jul 2018 20:53:50 +0200 Subject: [PATCH] chg: 'sm raw' - allowing hex bytes to be with & without space. 112233 and 11 22 33 --- client/cmdsmartcard.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/client/cmdsmartcard.c b/client/cmdsmartcard.c index 44d1141b7..a5d156f29 100644 --- a/client/cmdsmartcard.c +++ b/client/cmdsmartcard.c @@ -47,11 +47,21 @@ int CmdSmartRaw(const char *Cmd) { while (param_getchar(Cmd, cmdp) != 0x00 && !errors) { switch (tolower(param_getchar(Cmd, cmdp))) { - case 'd': - param_gethex_ex(Cmd, cmdp+1, data, &hexlen); - hexlen >>= 1; + case 'd': { + switch (param_gethex_to_eol(Cmd, cmdp+1, data, sizeof(data), &hexlen)) { + case 1: + PrintAndLogEx(WARNING, "Invalid HEX value."); + return 1; + case 2: + PrintAndLogEx(WARNING, "Too many bytes. Max %d bytes", sizeof(data)); + return 1; + case 3: + PrintAndLogEx(WARNING, "Hex must have even number of digits."); + return 1; + } cmdp += 2; break; + } case 'h': return usage_sm_raw(); default: