bugfixes hf epa cnonces

- extended length (more than 1 byte) not handled correctly
- nonces not printed on Windows due to type mismatch
This commit is contained in:
pwpiwi 2014-12-18 19:40:35 +01:00
parent f10bf20c6c
commit 57642f63fa
2 changed files with 4 additions and 4 deletions

View file

@ -108,9 +108,9 @@ size_t EPA_Parse_CardAccess(uint8_t *data,
if (data[index] == 0x31 || data[index] == 0x30) { if (data[index] == 0x31 || data[index] == 0x30) {
// enter the set (skip tag + length) // enter the set (skip tag + length)
index += 2; index += 2;
// extended length // check for extended length
if ((data[index - 1] & 0x80) != 0) { if ((data[index - 1] & 0x80) != 0) {
index += (data[index] & 0x7F); index += (data[index-1] & 0x7F);
} }
} }
// OID // OID

View file

@ -54,10 +54,10 @@ int CmdHFEPACollectPACENonces(const char *Cmd)
size_t nonce_length = resp.arg[1]; size_t nonce_length = resp.arg[1];
char *nonce = (char *) malloc(2 * nonce_length + 1); char *nonce = (char *) malloc(2 * nonce_length + 1);
for(int j = 0; j < nonce_length; j++) { 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 // print nonce
PrintAndLog("Length: %d, Nonce: %s",resp.arg[1], nonce); PrintAndLog("Length: %d, Nonce: %s", nonce_length, nonce);
} }
if (i < n - 1) { if (i < n - 1) {
sleep(d); sleep(d);