fm11rf08s: fix prev_lfsr

This commit is contained in:
Philippe Teuwen 2025-06-15 12:01:46 +02:00
parent b00e5d3a22
commit 3210384ef9
2 changed files with 28 additions and 4 deletions

View file

@ -31,11 +31,23 @@ static void init_lfsr16_table(void) {
} }
// static uint16_t next_lfsr16(uint16_t nonce) { // static uint16_t next_lfsr16(uint16_t nonce) {
// return s_lfsr16[(i_lfsr16[nonce]+1) % 65535]; // uint16_t i = i_lfsr16[nonce];
// if (i == 0xffff) {
// i = 1;
// } else {
// i++;
// }
// return s_lfsr16[i];
// } // }
static uint16_t prev_lfsr16(uint16_t nonce) { static uint16_t prev_lfsr16(uint16_t nonce) {
return s_lfsr16[(i_lfsr16[nonce] - 1) % 65535]; uint16_t i = i_lfsr16[nonce];
if (i == 1) {
i = 0xffff;
} else {
i--;
}
return s_lfsr16[i];
} }
static uint16_t compute_seednt16_nt32(uint32_t nt32, uint64_t key) { static uint16_t compute_seednt16_nt32(uint32_t nt32, uint64_t key) {

View file

@ -33,11 +33,23 @@ static void init_lfsr16_table(void) {
} }
// static uint16_t next_lfsr16(uint16_t nonce) { // static uint16_t next_lfsr16(uint16_t nonce) {
// return s_lfsr16[(i_lfsr16[nonce]+1) % 65535]; // uint16_t i = i_lfsr16[nonce];
// if (i == 0xffff) {
// i = 1;
// } else {
// i++;
// }
// return s_lfsr16[i];
// } // }
static uint16_t prev_lfsr16(uint16_t nonce) { static uint16_t prev_lfsr16(uint16_t nonce) {
return s_lfsr16[(i_lfsr16[nonce] - 1) % 65535]; uint16_t i = i_lfsr16[nonce];
if (i == 1) {
i = 0xffff;
} else {
i--;
}
return s_lfsr16[i];
} }
static uint16_t compute_seednt16_nt32(uint32_t nt32, uint64_t key) { static uint16_t compute_seednt16_nt32(uint32_t nt32, uint64_t key) {