unsigned int n = 0;
// delay between requests
unsigned int d = 0;
-
+
sscanf(Cmd, "%u %u %u", &m, &n, &d);
-
+
// values are expected to be > 0
m = m > 0 ? m : 1;
n = n > 0 ? n : 1;
- PrintAndLog("Collecting %u %"hhu"-byte nonces", n, m);
+ PrintAndLog("Collecting %u %u byte nonces", n, m);
PrintAndLog("Start: %u", time(NULL));
// repeat n times
for (unsigned int i = 0; i < n; i++) {
UsbCommand c = {CMD_EPA_PACE_COLLECT_NONCE, {(int)m, 0, 0}};
SendCommand(&c);
UsbCommand resp;
-
+
WaitForResponse(CMD_ACK,&resp);
// check if command failed
}
// print nonce
PrintAndLog("Length: %d, Nonce: %s", nonce_length, nonce);
+ free(nonce);
}
if (i < n - 1) {
sleep(d);
}
}
PrintAndLog("End: %u", time(NULL));
-
return 1;
}
uint8_t *apdus[] = {msesa_apdu, gn_apdu, map_apdu, pka_apdu, ma_apdu};
// usage message
- static const char const *usage_msg =
+ static const char *usage_msg =
"Please specify 5 APDUs separated by spaces. "
"Example:\n preplay 0022C1A4 1068000000 1086000002 1234ABCDEF 1A2B3C4D";
// UI-related stuff
-static const command_t CommandTable[] =
-{
+static const command_t CommandTable[] = {
{"help", CmdHelp, 1, "This help"},
{"cnonces", CmdHFEPACollectPACENonces, 0,
"<m> <n> <d> Acquire n>0 encrypted PACE nonces of size m>0 with d sec pauses"},
{NULL, NULL, 0, NULL}
};
-int CmdHelp(const char *Cmd)
-{
+int CmdHelp(const char *Cmd) {
CmdsHelp(CommandTable);
return 0;
}
-int CmdHFEPA(const char *Cmd)
-{
+int CmdHFEPA(const char *Cmd) {
// flush
- WaitForResponseTimeout(CMD_ACK,NULL,100);
-
+ clearCommandBuffer();
+ //WaitForResponseTimeout(CMD_ACK,NULL,100);
// parse
- CmdsParse(CommandTable, Cmd);
- return 0;
+ CmdsParse(CommandTable, Cmd);
+ return 0;
}