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}