* BUG FIX: Initial key generation

This commit is contained in:
Scott Powell 2025-02-02 11:03:23 +11:00
parent 78fe83f065
commit 79f2d65a64
3 changed files with 15 additions and 7 deletions

View file

@ -377,7 +377,7 @@ public:
uint8_t getCRPref() const { return _prefs.cr; } uint8_t getCRPref() const { return _prefs.cr; }
float getBWPref() const { return _prefs.bw; } float getBWPref() const { return _prefs.bw; }
void begin(FILESYSTEM& fs, BaseSerialInterface& serial) { void begin(FILESYSTEM& fs, BaseSerialInterface& serial, mesh::RNG& trng) {
_fs = &fs; _fs = &fs;
_serial = &serial; _serial = &serial;
@ -385,7 +385,7 @@ public:
IdentityStore store(fs, "/identity"); IdentityStore store(fs, "/identity");
if (!store.load("_main", self_id)) { if (!store.load("_main", self_id)) {
self_id = mesh::LocalIdentity(getRNG()); // create new random identity self_id = mesh::LocalIdentity(&trng); // create new random identity
store.save("_main", self_id); store.save("_main", self_id);
} }
@ -696,10 +696,12 @@ void setup() {
fast_rng.begin(radio.random(0x7FFFFFFF)); fast_rng.begin(radio.random(0x7FFFFFFF));
RadioNoiseListener trng(radio);
#if defined(NRF52_PLATFORM) #if defined(NRF52_PLATFORM)
InternalFS.begin(); InternalFS.begin();
the_mesh.begin(InternalFS, serial_interface); the_mesh.begin(InternalFS, serial_interface, trng);
#elif defined(ESP32) #elif defined(ESP32)
SPIFFS.begin(true); SPIFFS.begin(true);
@ -710,7 +712,7 @@ void setup() {
#endif #endif
serial_interface.enable(); serial_interface.enable();
the_mesh.begin(SPIFFS, serial_interface); the_mesh.begin(SPIFFS, serial_interface, trng);
#else #else
#error "need to define filesystem" #error "need to define filesystem"
#endif #endif

View file

@ -563,6 +563,8 @@ void setup() {
radio.setDio2AsRfSwitch(SX126X_DIO2_AS_RF_SWITCH); radio.setDio2AsRfSwitch(SX126X_DIO2_AS_RF_SWITCH);
#endif #endif
fast_rng.begin(radio.random(0x7FFFFFFF));
FILESYSTEM* fs; FILESYSTEM* fs;
#if defined(NRF52_PLATFORM) #if defined(NRF52_PLATFORM)
InternalFS.begin(); InternalFS.begin();
@ -576,7 +578,8 @@ void setup() {
#error "need to define filesystem" #error "need to define filesystem"
#endif #endif
if (!store.load("_main", the_mesh.self_id)) { if (!store.load("_main", the_mesh.self_id)) {
the_mesh.self_id = mesh::LocalIdentity(the_mesh.getRNG()); // create new random identity RadioNoiseListener rng(radio);
the_mesh.self_id = mesh::LocalIdentity(&rng); // create new random identity
store.save("_main", the_mesh.self_id); store.save("_main", the_mesh.self_id);
} }

View file

@ -19,7 +19,7 @@
/* ------------------------------ Config -------------------------------- */ /* ------------------------------ Config -------------------------------- */
#define FIRMWARE_VER_TEXT "v4 (build: 31 Jan 2025)" #define FIRMWARE_VER_TEXT "v4 (build: 2 Feb 2025)"
#ifndef LORA_FREQ #ifndef LORA_FREQ
#define LORA_FREQ 915.0 #define LORA_FREQ 915.0
@ -721,6 +721,8 @@ void setup() {
radio.setDio2AsRfSwitch(SX126X_DIO2_AS_RF_SWITCH); radio.setDio2AsRfSwitch(SX126X_DIO2_AS_RF_SWITCH);
#endif #endif
fast_rng.begin(radio.random(0x7FFFFFFF));
FILESYSTEM* fs; FILESYSTEM* fs;
#if defined(NRF52_PLATFORM) #if defined(NRF52_PLATFORM)
InternalFS.begin(); InternalFS.begin();
@ -734,7 +736,8 @@ void setup() {
#error "need to define filesystem" #error "need to define filesystem"
#endif #endif
if (!store.load("_main", the_mesh.self_id)) { if (!store.load("_main", the_mesh.self_id)) {
the_mesh.self_id = mesh::LocalIdentity(the_mesh.getRNG()); // create new random identity RadioNoiseListener rng(radio);
the_mesh.self_id = mesh::LocalIdentity(&rng); // create new random identity
store.save("_main", the_mesh.self_id); store.save("_main", the_mesh.self_id);
} }