dpp/util/entropy_generator.rs
1/// A way to provide external entropy generator.
2pub trait EntropyGenerator {
3 fn generate(&self) -> anyhow::Result<[u8; 32]>;
4}
5
6pub struct DefaultEntropyGenerator;
7
8impl EntropyGenerator for DefaultEntropyGenerator {
9 fn generate(&self) -> anyhow::Result<[u8; 32]> {
10 let mut buffer = [0u8; 32];
11 getrandom::getrandom(&mut buffer)
12 .map_err(|e| anyhow::anyhow!(format!("generating entropy failed: {}", e)))?;
13 Ok(buffer)
14 }
15}