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)));