fix: only add keys once when checking for reuse
This commit is contained in:
parent
ec3ca1cad1
commit
03e9c670d5
20
src/mfoc.c
20
src/mfoc.c
@ -362,24 +362,42 @@ int main(int argc, char *const argv[])
|
|||||||
bool did_hardnested=false;
|
bool did_hardnested=false;
|
||||||
check_keys:
|
check_keys:
|
||||||
if (did_hardnested) {
|
if (did_hardnested) {
|
||||||
|
use_default_key=false;
|
||||||
printf("\nChecking for key reuse...\n");
|
printf("\nChecking for key reuse...\n");
|
||||||
int i=0;
|
|
||||||
defKeys_len=0;
|
defKeys_len=0;
|
||||||
free(defKeys);
|
free(defKeys);
|
||||||
defKeys=malloc(0);
|
defKeys=malloc(0);
|
||||||
for (int i=0;i<t.num_sectors;++i) {
|
for (int i=0;i<t.num_sectors;++i) {
|
||||||
if (t.sectors[i].foundKeyA) {
|
if (t.sectors[i].foundKeyA) {
|
||||||
|
bool seen=false;
|
||||||
|
for (int k=0;k<defKeys_len;k+=6) {
|
||||||
|
if (memcmp(defKeys+k,t.sectors[i].KeyA,6)==0) {
|
||||||
|
seen=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!seen) {
|
||||||
defKeys=realloc(defKeys,defKeys_len+6);
|
defKeys=realloc(defKeys,defKeys_len+6);
|
||||||
memcpy(defKeys+defKeys_len,t.sectors[i].KeyA,6);
|
memcpy(defKeys+defKeys_len,t.sectors[i].KeyA,6);
|
||||||
defKeys_len+=6;
|
defKeys_len+=6;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (t.sectors[i].foundKeyB) {
|
if (t.sectors[i].foundKeyB) {
|
||||||
|
bool seen=false;
|
||||||
|
for (int k=0;k<defKeys_len;k+=6) {
|
||||||
|
if (memcmp(defKeys+k,t.sectors[i].KeyB,6)==0) {
|
||||||
|
seen=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!seen) {
|
||||||
defKeys=realloc(defKeys,defKeys_len+6);
|
defKeys=realloc(defKeys,defKeys_len+6);
|
||||||
memcpy(defKeys+defKeys_len,t.sectors[i].KeyB,6);
|
memcpy(defKeys+defKeys_len,t.sectors[i].KeyB,6);
|
||||||
defKeys_len+=6;
|
defKeys_len+=6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
memcpy(mp.mpa.abtAuthUid, t.nt.nti.nai.abtUid + t.nt.nti.nai.szUidLen - 4, sizeof(mp.mpa.abtAuthUid));
|
memcpy(mp.mpa.abtAuthUid, t.nt.nti.nai.abtUid + t.nt.nti.nai.szUidLen - 4, sizeof(mp.mpa.abtAuthUid));
|
||||||
// Iterate over all keys (n = number of keys)
|
// Iterate over all keys (n = number of keys)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user