From 57642f63fa9440e6e5e19841c5dd98dee9f5eaa5 Mon Sep 17 00:00:00 2001 From: pwpiwi Date: Thu, 18 Dec 2014 19:40:35 +0100 Subject: [PATCH] bugfixes hf epa cnonces - extended length (more than 1 byte) not handled correctly - nonces not printed on Windows due to type mismatch --- armsrc/epa.c | 4 ++-- client/cmdhfepa.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/armsrc/epa.c b/armsrc/epa.c index 497bd9de..fb19656d 100644 --- a/armsrc/epa.c +++ b/armsrc/epa.c @@ -108,9 +108,9 @@ size_t EPA_Parse_CardAccess(uint8_t *data, if (data[index] == 0x31 || data[index] == 0x30) { // enter the set (skip tag + length) index += 2; - // extended length + // check for extended length if ((data[index - 1] & 0x80) != 0) { - index += (data[index] & 0x7F); + index += (data[index-1] & 0x7F); } } // OID diff --git a/client/cmdhfepa.c b/client/cmdhfepa.c index 8a36d6ae..8f6a6af2 100644 --- a/client/cmdhfepa.c +++ b/client/cmdhfepa.c @@ -54,10 +54,10 @@ int CmdHFEPACollectPACENonces(const char *Cmd) size_t nonce_length = resp.arg[1]; char *nonce = (char *) malloc(2 * nonce_length + 1); for(int j = 0; j < nonce_length; j++) { - snprintf(nonce + (2 * j), 3, "%02X", resp.d.asBytes[j]); + sprintf(nonce + (2 * j), "%02X", resp.d.asBytes[j]); } // print nonce - PrintAndLog("Length: %d, Nonce: %s",resp.arg[1], nonce); + PrintAndLog("Length: %d, Nonce: %s", nonce_length, nonce); } if (i < n - 1) { sleep(d); -- 2.39.2