Struct scuttlebutt::AesRng
source · pub struct AesRng(/* private fields */);
Expand description
Implementation of a random number generator based on fixed-key AES.
This uses AES in a counter-mode-esque way, but with the counter always starting at zero. When used as a PRNG this is okay [TODO: citation?].
Implementations§
source§impl AesRng
impl AesRng
sourcepub fn new() -> Self
pub fn new() -> Self
Create a new random number generator using a random seed from
rand::random
.
sourcepub fn random_bits(&mut self) -> [U8x16; 8]
pub fn random_bits(&mut self) -> [U8x16; 8]
Generate random bits.
sourcepub fn random_bits_custom_size<const N: usize>(&mut self) -> [U8x16; N]where
ArrayUnrolledOps: UnrollableArraySize<N>,
pub fn random_bits_custom_size<const N: usize>(&mut self) -> [U8x16; N]where
ArrayUnrolledOps: UnrollableArraySize<N>,
Trait Implementations§
source§impl RngCore for AesRng
impl RngCore for AesRng
source§fn fill_bytes(&mut self, dest: &mut [u8])
fn fill_bytes(&mut self, dest: &mut [u8])
Fill
dest
with random data. Read moresource§impl SeedableRng for AesRng
impl SeedableRng for AesRng
§type Seed = <AesRngCore as SeedableRng>::Seed
type Seed = <AesRngCore as SeedableRng>::Seed
Seed type, which is restricted to types mutably-dereferenceable as
u8
arrays (we recommend [u8; N]
for some N
). Read moresource§fn from_rng<R: RngCore>(rng: R) -> Result<Self, Error>
fn from_rng<R: RngCore>(rng: R) -> Result<Self, Error>
Create a new PRNG seeded from another
Rng
. Read moresource§fn seed_from_u64(state: u64) -> Self
fn seed_from_u64(state: u64) -> Self
Create a new PRNG using a
u64
seed. Read moresource§fn from_entropy() -> Self
fn from_entropy() -> Self
impl CryptoRng for AesRng
Auto Trait Implementations§
impl Freeze for AesRng
impl RefUnwindSafe for AesRng
impl Send for AesRng
impl Sync for AesRng
impl Unpin for AesRng
impl UnwindSafe for AesRng
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CryptoRngCore for T
impl<T> CryptoRngCore for T
source§fn as_rngcore(&mut self) -> &mut dyn RngCore
fn as_rngcore(&mut self) -> &mut dyn RngCore
Upcast to an
RngCore
trait object.source§impl<R> Rng for R
impl<R> Rng for R
source§fn gen<T>(&mut self) -> Twhere
Standard: Distribution<T>,
fn gen<T>(&mut self) -> Twhere
Standard: Distribution<T>,
source§fn gen_range<T, R>(&mut self, range: R) -> Twhere
T: SampleUniform,
R: SampleRange<T>,
fn gen_range<T, R>(&mut self, range: R) -> Twhere
T: SampleUniform,
R: SampleRange<T>,
Generate a random value in the given range. Read more
source§fn sample<T, D>(&mut self, distr: D) -> Twhere
D: Distribution<T>,
fn sample<T, D>(&mut self, distr: D) -> Twhere
D: Distribution<T>,
Sample a new value, using the given distribution. Read more
source§fn sample_iter<T, D>(self, distr: D) -> DistIter<D, Self, T>where
D: Distribution<T>,
Self: Sized,
fn sample_iter<T, D>(self, distr: D) -> DistIter<D, Self, T>where
D: Distribution<T>,
Self: Sized,
Create an iterator that generates values using the given distribution. Read more
source§fn gen_bool(&mut self, p: f64) -> bool
fn gen_bool(&mut self, p: f64) -> bool
Return a bool with a probability
p
of being true. Read moresource§fn gen_ratio(&mut self, numerator: u32, denominator: u32) -> bool
fn gen_ratio(&mut self, numerator: u32, denominator: u32) -> bool
Return a bool with a probability of
numerator/denominator
of being
true. I.e. gen_ratio(2, 3)
has chance of 2 in 3, or about 67%, of
returning true. If numerator == denominator
, then the returned value
is guaranteed to be true
. If numerator == 0
, then the returned
value is guaranteed to be false
. Read more