INNER CODE UNIT · Rust
initialize
brndnmtthws/dryoc · src/argon2/mod.rs:245
fn initialize(&mut self) -> Result<(), Error> {
// 1. Memory allocation
try_reserve_argon2(&mut self.region.memory, self.memory_blocks as usize)?;
try_reserve_argon2(&mut self.pseudo_rands, self.segment_length as usize)?;
self.region
.memory
.resize(self.memory_blocks as usize, Default::default());
self.pseudo_rands.resize(self.segment_length as usize, 0);
Ok(())
}
}
fn try_reserve_argon2<T>(values: &mut Vec<T>, additional: usize) -> Result<(), Error> {
values
.try_reserve_exact(additional)
.map_err(|_| Error::allocation_failed(crate::ErrorContext::MemoryCost))
}