// this special attack when parities is zero, uses checkkeys. Which now with block/keytype option also needs. \r
// but it uses 0|1 instead of 0x60|0x61...\r
if (nonce2key_ex(blockNo, keytype - 0x60 , uid, nt, nr, ks_list, &r_key) ){\r
- PrintAndLog("Key not found (lfsr_common_prefix list is null)."); \r
- PrintAndLog("Failing is expected to happen in 25%% of all cases. Trying again with a different reader nonce...");\r
+ PrintAndLog("Trying again with a different reader nonce...");\r
c.arg[0] = false;\r
goto start;\r
} else {\r
uint64_t key64 = 0;\r
int res = mfCheckKeys(blockNo, keytype - 0x60 , false, 1, keyblock, &key64);\r
if ( res > 0 ) {\r
- PrintAndLog("Candidate Key found (%012"llx") - Test authentication failed. Starting over darkside attack", r_key); \r
+ PrintAndLog("Candidate Key found (%012"llx") - Test authentication failed. [%d] Restarting darkside attack", r_key, res); \r
goto start;\r
}\r
PrintAndLog("Found valid key: %012"llx" \n", r_key);\r
slow ? "Yes" : "No",\r
tests);\r
\r
- int16_t isOK = mfnestedhard(blockNo, keyType, key, trgBlockNo, trgKeyType, know_target_key ? trgkey : NULL, nonce_file_read, nonce_file_write, slow, tests);\r
+ uint64_t foundkey = 0;\r
+ int16_t isOK = mfnestedhard(blockNo, keyType, key, trgBlockNo, trgKeyType, know_target_key ? trgkey : NULL, nonce_file_read, nonce_file_write, slow, tests, &foundkey);\r
\r
if (isOK) {\r
switch (isOK) {\r