INNER CODE UNIT · Rust

argon2_fill_first_blocks

brndnmtthws/dryoc · src/argon2/mod.rs:731

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[..])?;

        load_block(
            &mut instance.region.memory[(l * instance.lane_length) as usize],
            &blockhash_bytes[..],
        );

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…