Type Alias rand_chacha::ChaChaRng
source · pub type ChaChaRng = ChaCha20Rng;
Expand description
ChaCha with 20 rounds
Aliased Type§
struct ChaChaRng { /* private fields */ }
Implementations§
source§impl ChaCha20Rng
impl ChaCha20Rng
sourcepub fn get_word_pos(&self) -> u128
pub fn get_word_pos(&self) -> u128
Get the offset from the start of the stream, in 32-bit words.
Since the generated blocks are 16 words (24) long and the counter is 64-bits, the offset is a 68-bit number. Sub-word offsets are not supported, hence the result can simply be multiplied by 4 to get a byte-offset.
sourcepub fn set_word_pos(&mut self, word_offset: u128)
pub fn set_word_pos(&mut self, word_offset: u128)
Set the offset from the start of the stream, in 32-bit words.
As with get_word_pos
, we use a 68-bit number. Since the generator
simply cycles at the end of its period (1 ZiB), we ignore the upper
60 bits.
sourcepub fn set_stream(&mut self, stream: u64)
pub fn set_stream(&mut self, stream: u64)
Set the stream number.
This is initialized to zero; 264 unique streams of output are available per seed/key.
Note that in order to reproduce ChaCha output with a specific 64-bit
nonce, one can convert that nonce to a u64
in little-endian fashion
and pass to this function. In theory a 96-bit nonce can be used by
passing the last 64-bits to this function and using the first 32-bits as
the most significant half of the 64-bit counter (which may be set
indirectly via set_word_pos
), but this is not directly supported.
sourcepub fn get_stream(&self) -> u64
pub fn get_stream(&self) -> u64
Get the stream number.
Trait Implementations§
source§impl Clone for ChaCha20Rng
impl Clone for ChaCha20Rng
source§fn clone(&self) -> ChaCha20Rng
fn clone(&self) -> ChaCha20Rng
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ChaCha20Rng
impl Debug for ChaCha20Rng
source§impl From<ChaCha20Core> for ChaCha20Rng
impl From<ChaCha20Core> for ChaCha20Rng
source§fn from(core: ChaCha20Core) -> Self
fn from(core: ChaCha20Core) -> Self
source§impl PartialEq<ChaCha20Rng> for ChaCha20Rng
impl PartialEq<ChaCha20Rng> for ChaCha20Rng
source§fn eq(&self, rhs: &ChaCha20Rng) -> bool
fn eq(&self, rhs: &ChaCha20Rng) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl RngCore for ChaCha20Rng
impl RngCore for ChaCha20Rng
source§fn fill_bytes(&mut self, bytes: &mut [u8])
fn fill_bytes(&mut self, bytes: &mut [u8])
dest
with random data. Read moresource§impl SeedableRng for ChaCha20Rng
impl SeedableRng for ChaCha20Rng
§type Seed = [u8; 32]
type Seed = [u8; 32]
u8
arrays (we recommend [u8; N]
for some N
). Read moresource§fn seed_from_u64(state: u64) -> Self
fn seed_from_u64(state: u64) -> Self
u64
seed. Read moresource§fn from_rng<R>(rng: R) -> Result<Self, Error>where
R: RngCore,
fn from_rng<R>(rng: R) -> Result<Self, Error>where R: RngCore,
Rng
. Read more