[−][src]Struct rand::os::OsRng
A random number generator that retrieves randomness straight from the operating system. Platform sources:
- Unix-like systems (Linux, Android, Mac OSX): read directly from
/dev/urandom
, or fromgetrandom(2)
system call if available. - OpenBSD: calls
getentropy(2)
- FreeBSD: uses the
kern.arandom
sysctl(2)
mib - Windows: calls
RtlGenRandom
, exported fromadvapi32.dll
asSystemFunction036
. - iOS: calls SecRandomCopyBytes as /dev/(u)random is sandboxed.
- PNaCl: calls into the
nacl-irt-random-0.1
IRT interface.
This usually does not block. On some systems (e.g. FreeBSD, OpenBSD, Max OS X, and modern Linux) this may block very early in the init process, if the CSPRNG has not been seeded yet.[1]
[1] See https://www.python.org/dev/peps/pep-0524/ for a more in-depth discussion.
Methods
impl OsRng
[src]
Trait Implementations
impl Rng for OsRng
[src]
fn next_u32(&mut self) -> u32
[src]
fn next_u64(&mut self) -> u64
[src]
fn fill_bytes(&mut self, v: &mut [u8])
[src]
fn next_f32(&mut self) -> f32
[src]
fn next_f64(&mut self) -> f64
[src]
fn gen<T: Rand>(&mut self) -> T where
Self: Sized,
[src]
Self: Sized,
ⓘImportant traits for Generator<'a, T, R>fn gen_iter<'a, T: Rand>(&'a mut self) -> Generator<'a, T, Self> where
Self: Sized,
[src]
ⓘImportant traits for Generator<'a, T, R>
Self: Sized,
fn gen_range<T: PartialOrd + SampleRange>(&mut self, low: T, high: T) -> T where
Self: Sized,
[src]
Self: Sized,
fn gen_weighted_bool(&mut self, n: u32) -> bool where
Self: Sized,
[src]
Self: Sized,
ⓘImportant traits for AsciiGenerator<'a, R>fn gen_ascii_chars<'a>(&'a mut self) -> AsciiGenerator<'a, Self> where
Self: Sized,
[src]
ⓘImportant traits for AsciiGenerator<'a, R>
Self: Sized,
fn choose<'a, T>(&mut self, values: &'a [T]) -> Option<&'a T> where
Self: Sized,
[src]
Self: Sized,
fn choose_mut<'a, T>(&mut self, values: &'a mut [T]) -> Option<&'a mut T> where
Self: Sized,
[src]
Self: Sized,
fn shuffle<T>(&mut self, values: &mut [T]) where
Self: Sized,
[src]
Self: Sized,
impl Debug for OsRng
[src]
Auto Trait Implementations
impl Send for OsRng
impl Unpin for OsRng
impl Sync for OsRng
impl UnwindSafe for OsRng
impl RefUnwindSafe for OsRng
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,