INNER CODE UNIT · Rust

argon2_fill_memory_blocks

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

fn argon2_fill_memory_blocks(instance: &mut Argon2Instance, pass: u32) {
    let mut position = Argon2Position {
        pass,
        ..Default::default()
    };
    for s in 0..ARGON2_SYNC_POINTS {
        position.slice = s as u8;
        for l in 0..instance.lanes {
            position.lane = l;
            position.index = 0;
            fill_segment(instance, &mut position);
        }
    }
}

fn fill_segment(instance: &mut Argon2Instance, position: &mut Argon2Position) {
    let data_independent_addressing = !(instance.type_ == Argon2Type::Argon2id
        && (position.pass != 0 || position.slice as u32 >= (ARGON2_SYNC_POINTS / 2)));

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…