#![cfg(feature = "crypto_api")]
use std::error;
pub struct OsRandom;
impl OsRandom {
pub const fn new() -> OsRandom {
Self
}
}
impl OsRandom {
pub fn secure_rng() -> Box<dyn crypto_api::rng::SecureRng> {
Box::new(Self)
}
}
impl crypto_api::rng::SecureRng for OsRandom {
fn random(&mut self, buf: &mut [u8]) -> Result<(), Box<dyn error::Error + 'static>> {
crate::to_slice(buf)?;
Ok(())
}
}