Struct SecureRng

Source
pub struct SecureRng { /* private fields */ }
Expand description

A cryptographically secure random number generator.

The current implementation is ChaCha with 8 rounds, as supplied by the chacha20 crate.

Trait Implementations§

Source§

impl Debug for SecureRng

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl SecureYARandGenerator for SecureRng

Source§

fn fill_bytes(&mut self, dest: &mut [u8])

Fills dest with random data, which is safe to be used in cryptographic contexts. Read more
Source§

fn text<E>(&mut self, len: usize) -> Option<String>
where E: Encoder,

Generates a random String with length len, using the provided Encoder to determine character set and minimum secure length. Since character sets can only contain valid ascii values, the length of the created String reprensents both the size of the String in bytes, and the amount of characters it contains. Read more
Source§

impl YARandGenerator for SecureRng

Source§

fn try_new() -> Result<Self, Error>

Creates a generator using randomness provided by the OS. Read more
Source§

fn u64(&mut self) -> u64

Returns a uniformly distributed u64 in the interval [0, 264).
Source§

fn new() -> Self

Creates a generator using randomness provided by the OS. Read more
Source§

fn u32(&mut self) -> u32

Returns a uniformly distributed u32 in the interval [0, 232).
Source§

fn u16(&mut self) -> u16

Returns a uniformly distributed u16 in the interval [0, 216).
Source§

fn u8(&mut self) -> u8

Returns a uniformly distributed u8 in the interval [0, 28).
Source§

fn bits(&mut self, bit_count: u32) -> u64

Returns a uniformly distributed u64 in the interval [0, 2bit_count). Read more
Source§

fn bool(&mut self) -> bool

A simple coinflip, returning a bool that has a 50% chance of being true. Read more
Source§

fn bound(&mut self, max: u64) -> u64

Returns a uniformly distributed u64 in the interval [0, max). Read more
Source§

fn bound_inclusive(&mut self, max: u64) -> u64

Returns a uniformly distributed u64 in the interval [0, max]. Read more
Source§

fn range(&mut self, min: i64, max: i64) -> i64

Returns a uniformly distributed i64 in the interval [min, max)
Source§

fn range_inclusive(&mut self, min: i64, max: i64) -> i64

Returns a uniformly distributed i64 in the interval [min, max]
Source§

fn f64(&mut self) -> f64

Returns a uniformly distributed f64 in the interval [0.0, 1.0).
Source§

fn f32(&mut self) -> f32

Returns a uniformly distributed f32 in the interval [0.0, 1.0).
Source§

fn f64_nonzero(&mut self) -> f64

Returns a uniformly distributed f64 in the interval (0.0, 1.0].
Source§

fn f32_nonzero(&mut self) -> f32

Returns a uniformly distributed f32 in the interval (0.0, 1.0].
Source§

fn f64_wide(&mut self) -> f64

Returns a uniformly distributed f64 in the interval (-1.0, 1.0).
Source§

fn f32_wide(&mut self) -> f32

Returns a uniformly distributed f32 in the interval (-1.0, 1.0).
Source§

fn f64_normal(&mut self) -> (f64, f64)

Returns two indepedent and normally distributed f64 values with mean = 0.0 and stddev = 1.0.
Source§

fn f64_normal_distribution(&mut self, mean: f64, stddev: f64) -> (f64, f64)

Returns two indepedent and normally distributed f64 values with user-defined mean and stddev.
Source§

fn f64_exponential(&mut self) -> f64

Returns an exponentially distributed f64 with lambda = 1.0.
Source§

fn f64_exponential_lambda(&mut self, lambda: f64) -> f64

Returns an exponentially distributed f64 with user-defined lambda.
Source§

fn choose<C>(&mut self, collection: C) -> Option<C::Item>

Returns a randomly chosen item from the iterator of collection. Read more
Source§

fn ascii_alphabetic(&mut self) -> char

Returns a randomly selected ASCII alphabetic character.
Source§

fn ascii_uppercase(&mut self) -> char

Returns a randomly selected ASCII uppercase character.
Source§

fn ascii_lowercase(&mut self) -> char

Returns a randomly selected ASCII lowercase character.
Source§

fn ascii_alphanumeric(&mut self) -> char

Returns a randomly selected ASCII alphanumeric character.
Source§

fn ascii_digit(&mut self) -> char

Returns a randomly selected ASCII digit character.
Source§

fn shuffle<T>(&mut self, slice: &mut [T])

Performs a Fisher-Yates shuffle on the contents of slice. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.