fix wrong fct call

This commit is contained in:
iceman1001 2024-01-18 16:35:44 +01:00
parent 5e4796c57b
commit b19973368d
2 changed files with 7 additions and 5 deletions

View file

@ -114,7 +114,6 @@ int demodIdteck(uint8_t *raw, bool verbose) {
// parity check (TBD)
uint32_t tmp = raw2;
lf_idteck_decrypt((uint16_t*)&tmp);
// checksum check (TBD)
// 351FBE4B -> 90370752 Card Code [523707] CUSUM = 52+37+07=90

View file

@ -327,7 +327,8 @@ int mfc_algo_saflok_one(uint8_t *uid, uint8_t sector, uint8_t keytype, uint64_t
if (sector > 15) return PM3_EINVARG;
if (key == NULL) return PM3_EINVARG;
if (keytype == 0 && sector == 2) {
//
if (keytype == 1) {
*key = 0xFFFFFFFFFFFF;
return PM3_SUCCESS;
}
@ -337,6 +338,11 @@ int mfc_algo_saflok_one(uint8_t *uid, uint8_t sector, uint8_t keytype, uint64_t
return PM3_SUCCESS;
}
if (((sector == 2) || (sector == 3)) && (keytype == 0)) {
*key = 0xFFFFFFFFFFFF;
return PM3_SUCCESS;
}
if (keytype == 0) {
uint64_t lut[16] = {
0xf057b39ee3d8ULL, 0x969d954ac157ULL, 0x8f43580d2c9dULL, 0xffcce0050c43ULL,
@ -354,9 +360,6 @@ int mfc_algo_saflok_one(uint8_t *uid, uint8_t sector, uint8_t keytype, uint64_t
uint64_t id = (bytes_to_num(uid, 4) << 8);
*key = (h + (id + m + ((uint64_t)h << 40ULL))) & 0xFFFFFFFFFFFFULL;
} else {
*key = 0xFFFFFFFFFFFF;
}
return PM3_SUCCESS;
}