fix: only add keys once when checking for reuse

This commit is contained in:
Daniel Seiller 2019-10-31 01:54:04 +01:00
parent ec3ca1cad1
commit 03e9c670d5
No known key found for this signature in database
GPG Key ID: 33F8E0721588E15E

View File

@ -362,24 +362,42 @@ int main(int argc, char *const argv[])
bool did_hardnested=false;
check_keys:
if (did_hardnested) {
use_default_key=false;
printf("\nChecking for key reuse...\n");
int i=0;
defKeys_len=0;
free(defKeys);
defKeys=malloc(0);
for (int i=0;i<t.num_sectors;++i) {
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);
memcpy(defKeys+defKeys_len,t.sectors[i].KeyA,6);
defKeys_len+=6;
}
}
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);
memcpy(defKeys+defKeys_len,t.sectors[i].KeyB,6);
defKeys_len+=6;
}
}
}
}
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)