INNER CODE UNIT · Rust
xor_block
brndnmtthws/dryoc · src/argon2/mod.rs:725
fn xor_block(dst: &mut Block, src: &Block) {
for i in 0..(dst.v.len()) {
dst.v[i] ^= src.v[i];
}
}
fn argon2_fill_first_blocks(
mut blockhash: Zeroizing<[u8; ARGON2_PREHASH_SEED_LENGTH]>,
instance: &mut Argon2Instance,
) -> Result<(), Error> {
let mut blockhash_bytes = Zeroizing::new([0u8; ARGON2_BLOCK_SIZE]);
for l in 0..instance.lanes {
blockhash[ARGON2_PREHASH_DIGEST_LENGTH..(ARGON2_PREHASH_DIGEST_LENGTH + 4)]
.copy_from_slice(&[0, 0, 0, 0]);
blockhash[(ARGON2_PREHASH_DIGEST_LENGTH + 4)..(ARGON2_PREHASH_DIGEST_LENGTH + 8)]
.copy_from_slice(&l.to_le_bytes());
blake2b::longhash(&mut blockhash_bytes[..], &blockhash[..])?;