From 2278d4439622763100e122c9b67be775038d3d2e Mon Sep 17 00:00:00 2001 From: Paul Dicker Date: Sun, 14 Jan 2018 15:51:02 +0100 Subject: [PATCH] Use EntropySource in NewSeeded --- src/lib.rs | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 1c312c002d..5d6d203743 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -834,27 +834,8 @@ pub trait NewRng: SeedableRng { #[cfg(feature="std")] impl NewRng for R { fn new() -> Result { - // Note: error handling would be easier with try/catch blocks - fn new_os() -> Result { - let mut r = OsRng::new()?; - T::from_rng(&mut r) - } - - fn new_jitter() -> Result { - let mut r = JitterRng::new()?; - T::from_rng(&mut r) - } - - new_os().or_else(|e1| { - new_jitter().map_err(|_e2| { - // TODO: log - // TODO: can we somehow return both error sources? - Error::with_cause( - ErrorKind::Unavailable, - "seeding a new RNG failed: both OS and Jitter entropy sources failed", - e1) - }) - }) + let mut source = EntropySource::new()?; + R::from_rng(&mut source) } }