Struct rand::os::OsRng
[−]
[src]
pub struct 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.
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 Debug for OsRng
[src]
fn fmt(&self, f: &mut Formatter) -> Result
[src]
Formats the value using the given formatter. Read more
impl Rng for OsRng
[src]
fn next_u32(&mut self) -> u32
[src]
Return the next random u32
. Read more
fn next_u64(&mut self) -> u64
[src]
Return the next random u64
. Read more
fn fill_bytes(&mut self, dest: &mut [u8])
[src]
Fill dest
with random data. Read more
fn try_fill_bytes(&mut self, v: &mut [u8]) -> Result<(), Error>
[src]
Fill dest
entirely with random data. Read more
fn next_f32(&mut self) -> f32
[src]
Return the next random f32 selected from the half-open interval [0, 1)
. Read more
fn next_f64(&mut self) -> f64
[src]
Return the next random f64 selected from the half-open interval [0, 1)
. Read more