diff --git a/Cargo.lock b/Cargo.lock index 021057c..2592ed2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -435,6 +435,7 @@ dependencies = [ "esp-radio", "esp-rtos", "esp-storage", + "getrandom", "hashbrown", "log", "nb 1.1.0", @@ -1273,6 +1274,17 @@ dependencies = [ "zeroize", ] +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + [[package]] name = "group" version = "0.13.0" @@ -2130,6 +2142,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + [[package]] name = "wasm-bindgen" version = "0.2.108" diff --git a/ecu-esp32/Cargo.toml b/ecu-esp32/Cargo.toml index bc1808d..24b79c9 100644 --- a/ecu-esp32/Cargo.toml +++ b/ecu-esp32/Cargo.toml @@ -78,3 +78,4 @@ trouble-host = { version = "0.5.1", default-features = false, features = [ "dev-disable-csprng-seed-requirement" # !!!! ]} esp-nvs = { version = "0.2.0", features = ["esp32c3"] } +getrandom = { version = "0.2.17", features = ["custom"] } diff --git a/ecu-esp32/src/main.rs b/ecu-esp32/src/main.rs index c39c3f2..d24ed04 100644 --- a/ecu-esp32/src/main.rs +++ b/ecu-esp32/src/main.rs @@ -20,6 +20,17 @@ pub mod streamer; pub mod ota; pub mod wibble; +use getrandom::Error; + +pub fn getrandom_custom(dest: &mut [u8]) -> Result<(), Error> { + unsafe { + esp_hal::rng::Rng::new().read_into_raw(dest.as_mut_ptr(), dest.len()) + }; + Ok(()) +} +use getrandom::register_custom_getrandom; +register_custom_getrandom!(getrandom_custom); + use esp_hal::{ timer::timg::TimerGroup, clock::CpuClock,