1
mirror of https://github.com/flipperdevices/flipperzero-firmware.git synced 2025-12-12 04:41:26 +04:00

LFRFID: Fix Detection Conflict Between Securakey and Noralsy Format (#4125)

* Securakey added parity check
* Format Sources

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
This commit is contained in:
Zinong Li
2025-02-24 14:59:05 -05:00
committed by GitHub
parent ef024e8086
commit 9f5e93bed8

View File

@@ -61,18 +61,23 @@ uint8_t* protocol_securakey_get_data(ProtocolSecurakey* protocol) {
static bool protocol_securakey_can_be_decoded(ProtocolSecurakey* protocol) {
// check 19 bits preamble + format flag
if(bit_lib_get_bits_32(protocol->RKKT_encoded_data, 0, 19) == 0b0111111111000000000) {
if(bit_lib_test_parity(protocol->RKKT_encoded_data, 2, 54, BitLibParityAlways0, 9)) {
protocol->bit_format = 0;
return true;
}
} else if(bit_lib_get_bits_32(protocol->RKKT_encoded_data, 0, 19) == 0b0111111111001011010) {
if(bit_lib_test_parity(protocol->RKKT_encoded_data, 2, 90, BitLibParityAlways0, 9)) {
protocol->bit_format = 26;
return true;
}
} else if(bit_lib_get_bits_32(protocol->RKKT_encoded_data, 0, 19) == 0b0111111111001100000) {
if(bit_lib_test_parity(protocol->RKKT_encoded_data, 2, 90, BitLibParityAlways0, 9)) {
protocol->bit_format = 32;
return true;
} else {
return false;
}
}
return false;
}
static void protocol_securakey_decode(ProtocolSecurakey* protocol) {
memset(protocol->data, 0, SECURAKEY_DECODED_DATA_SIZE_BYTES);