social_moscow parser verification collisions fix

This commit is contained in:
Methodius
2023-12-07 21:59:27 +09:00
parent 1b45b8a17d
commit 5d28939c28

View File

@@ -1565,8 +1565,11 @@ static bool social_moscow_parse(const NfcDevice* device, FuriString* parsed_data
const MfClassicSectorTrailer* sec_tr = const MfClassicSectorTrailer* sec_tr =
mf_classic_get_sector_trailer_by_sector(data, cfg.data_sector); mf_classic_get_sector_trailer_by_sector(data, cfg.data_sector);
const uint64_t key = nfc_util_bytes2num(sec_tr->key_a.data, COUNT_OF(sec_tr->key_a.data)); const uint64_t key_a =
if(key != cfg.keys[cfg.data_sector].a) break; nfc_util_bytes2num(sec_tr->key_a.data, COUNT_OF(sec_tr->key_a.data));
const uint64_t key_b =
nfc_util_bytes2num(sec_tr->key_b.data, COUNT_OF(sec_tr->key_b.data));
if((key_a != cfg.keys[cfg.data_sector].a) || (key_b != cfg.keys[cfg.data_sector].b)) break;
uint32_t card_code = bit_lib_get_bits_32(data->block[60].data, 8, 24); uint32_t card_code = bit_lib_get_bits_32(data->block[60].data, 8, 24);
uint8_t card_region = bit_lib_get_bits(data->block[60].data, 32, 8); uint8_t card_region = bit_lib_get_bits(data->block[60].data, 32, 8);