mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-14 15:18:35 -07:00
FAAC SLH/Spa 20-bits counter
This commit is contained in:
@@ -13,14 +13,14 @@ void subghz_scene_set_cnt_on_enter(void* context) {
|
||||
|
||||
// Setup view
|
||||
ByteInput* byte_input = subghz->byte_input;
|
||||
byte_input_set_header_text(byte_input, "Enter COUNTER in hex");
|
||||
byte_input_set_header_text(byte_input, "Enter COUNTER in hex, 20bits");
|
||||
byte_input_set_result_callback(
|
||||
byte_input,
|
||||
subghz_scene_set_cnt_byte_input_callback,
|
||||
NULL,
|
||||
subghz,
|
||||
subghz->txrx->secure_data->cnt,
|
||||
2);
|
||||
3);
|
||||
view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewIdByteInput);
|
||||
}
|
||||
|
||||
|
||||
@@ -36,8 +36,9 @@ bool subghz_scene_set_seed_on_event(void* context, SceneManagerEvent event) {
|
||||
subghz->txrx->secure_data->fix[0] << 24 | subghz->txrx->secure_data->fix[1] << 16 |
|
||||
subghz->txrx->secure_data->fix[2] << 8 | subghz->txrx->secure_data->fix[3];
|
||||
|
||||
uint16_t cnt = subghz->txrx->secure_data->cnt[0] << 8 |
|
||||
subghz->txrx->secure_data->cnt[1];
|
||||
uint32_t cnt = subghz->txrx->secure_data->cnt[0] << 16 |
|
||||
subghz->txrx->secure_data->cnt[1] << 8 |
|
||||
subghz->txrx->secure_data->cnt[2];
|
||||
|
||||
uint32_t seed = subghz->txrx->secure_data->seed[0] << 24 |
|
||||
subghz->txrx->secure_data->seed[1] << 16 |
|
||||
@@ -52,7 +53,7 @@ bool subghz_scene_set_seed_on_event(void* context, SceneManagerEvent event) {
|
||||
subghz->txrx->fff_data,
|
||||
fix_part >> 4,
|
||||
fix_part & 0xf,
|
||||
cnt,
|
||||
(cnt & 0xFFFFF),
|
||||
seed,
|
||||
"FAAC_SLH",
|
||||
868350000,
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
typedef struct {
|
||||
uint8_t fix[4];
|
||||
uint8_t cnt[2];
|
||||
uint8_t cnt[3];
|
||||
uint8_t seed[4];
|
||||
} SecureData;
|
||||
|
||||
|
||||
@@ -123,11 +123,9 @@ static bool subghz_protocol_faac_slh_gen_data(SubGhzProtocolEncoderFaacSLH* inst
|
||||
fixx[i] = (fix >> (shiftby -= 4)) & 0xF;
|
||||
}
|
||||
if((instance->generic.cnt % 2) == 0) {
|
||||
decrypt = fixx[6] << 28 | fixx[7] << 24 | fixx[5] << 20 | fixx[1] << 16 |
|
||||
instance->generic.cnt;
|
||||
decrypt = fixx[6] << 28 | fixx[7] << 24 | fixx[5] << 20 | (instance->generic.cnt & 0xFFFFF);
|
||||
} else {
|
||||
decrypt = fixx[2] << 28 | fixx[3] << 24 | fixx[4] << 20 | fixx[1] << 16 |
|
||||
instance->generic.cnt;
|
||||
decrypt = fixx[2] << 28 | fixx[3] << 24 | fixx[4] << 20 | (instance->generic.cnt & 0xFFFFF);
|
||||
}
|
||||
for
|
||||
M_EACH(manufacture_code, *subghz_keystore_get_data(instance->keystore), SubGhzKeyArray_t) {
|
||||
@@ -155,7 +153,7 @@ bool subghz_protocol_faac_slh_create_data(
|
||||
FlipperFormat* flipper_format,
|
||||
uint32_t serial,
|
||||
uint8_t btn,
|
||||
uint16_t cnt,
|
||||
uint32_t cnt,
|
||||
uint32_t seed,
|
||||
const char* manufacture_name,
|
||||
uint32_t frequency,
|
||||
@@ -164,7 +162,7 @@ bool subghz_protocol_faac_slh_create_data(
|
||||
SubGhzProtocolEncoderFaacSLH* instance = context;
|
||||
instance->generic.serial = serial;
|
||||
instance->generic.btn = btn;
|
||||
instance->generic.cnt = cnt;
|
||||
instance->generic.cnt = (cnt & 0xFFFFF);
|
||||
instance->generic.seed = seed;
|
||||
instance->manufacture_name = manufacture_name;
|
||||
instance->generic.data_count_bit = 64;
|
||||
@@ -414,7 +412,7 @@ static void subghz_protocol_faac_slh_check_remote_controller(
|
||||
break;
|
||||
}
|
||||
}
|
||||
instance->cnt = decrypt & 0xFFFF;
|
||||
instance->cnt = decrypt & 0xFFFFF;
|
||||
}
|
||||
|
||||
uint8_t subghz_protocol_decoder_faac_slh_get_hash_data(void* context) {
|
||||
@@ -493,7 +491,7 @@ void subghz_protocol_decoder_faac_slh_get_string(void* context, string_t output)
|
||||
output,
|
||||
"%s %dbit\r\n"
|
||||
"Key:%lX%08lX\r\n"
|
||||
"Fix:%08lX Cnt:%04X\r\n"
|
||||
"Fix:%08lX Cnt:%05X\r\n"
|
||||
"Hop:%08lX Btn:%lX\r\n"
|
||||
"Sn:%07lX Sd:%8X",
|
||||
instance->generic.protocol_name,
|
||||
|
||||
@@ -42,7 +42,7 @@ bool subghz_protocol_faac_slh_create_data(
|
||||
FlipperFormat* flipper_format,
|
||||
uint32_t serial,
|
||||
uint8_t btn,
|
||||
uint16_t cnt,
|
||||
uint32_t cnt,
|
||||
uint32_t seed,
|
||||
const char* manufacture_name,
|
||||
uint32_t frequency,
|
||||
|
||||
Reference in New Issue
Block a user