Compare commits

...

1 Commits

Author SHA1 Message Date
Andrea Santaniello
dc0f30dad9 Update psa.c
All checks were successful
Build Dev Firmware / build (push) Successful in 6m46s
2026-03-29 14:34:00 +02:00

View File

@@ -758,6 +758,17 @@ void subghz_protocol_decoder_psa_feed(void* context, bool level, uint32_t durati
instance->mode_serialize = 0x36; instance->mode_serialize = 0x36;
} }
// Only fire callback if decrypted or validation nibble matches
if(instance->decrypted != 0x50 &&
(instance->validation_field & 0xf) != 0xa) {
instance->decode_data_low = 0;
instance->decode_data_high = 0;
instance->decode_count_bit = 0;
new_state = PSADecoderState0;
instance->state = new_state;
return;
}
instance->generic.data = ((uint64_t)instance->key1_high << 32) | instance->key1_low; instance->generic.data = ((uint64_t)instance->key1_high << 32) | instance->key1_low;
instance->generic.data_count_bit = 64; instance->generic.data_count_bit = 64;
instance->decoder.decode_data = instance->generic.data; instance->decoder.decode_data = instance->generic.data;
@@ -1041,6 +1052,17 @@ void subghz_protocol_decoder_psa_feed(void* context, bool level, uint32_t durati
instance->mode_serialize = 0x36; instance->mode_serialize = 0x36;
} }
// Only fire callback if decrypted or validation nibble matches
if(instance->decrypted != 0x50 &&
(instance->validation_field & 0xf) != 0xa) {
instance->decode_data_low = 0;
instance->decode_data_high = 0;
instance->decode_count_bit = 0;
new_state = PSADecoderState0;
instance->state = new_state;
return;
}
instance->generic.data = ((uint64_t)instance->key1_high << 32) | instance->key1_low; instance->generic.data = ((uint64_t)instance->key1_high << 32) | instance->key1_low;
instance->generic.data_count_bit = 64; instance->generic.data_count_bit = 64;
instance->decoder.decode_data = instance->generic.data; instance->decoder.decode_data = instance->generic.data;