INNER CODE UNIT · Rust
ctr_size
RustCrypto/stream-ciphers · chacha20/src/lib.rs:144
let ctr_size = size_of::<V::Counter>() / size_of::<u32>();
let (const_dst, state_rem) = state.split_at_mut(4);
let (key_dst, state_rem) = state_rem.split_at_mut(8);
let (_ctr_dst, iv_dst) = state_rem.split_at_mut(ctr_size);
const_dst.copy_from_slice(&CONSTANTS);
// TODO(tarcieri): when MSRV 1.88, use `[T]::as_chunks` to avoid panic
#[allow(clippy::unwrap_used, reason = "MSRV TODO")]
{
for (src, dst) in key.chunks_exact(4).zip(key_dst) {
*dst = u32::from_le_bytes(src.try_into().unwrap());
}
assert_eq!(size_of_val(iv_dst), size_of_val(iv));
for (src, dst) in iv.chunks_exact(4).zip(iv_dst) {
*dst = u32::from_le_bytes(src.try_into().unwrap());
}