Function blake2b_simd::many::hash_many
source · pub fn hash_many<'a, 'b, I>(hash_many_jobs: I)where
I: IntoIterator<Item = &'a mut HashManyJob<'b>>,
'b: 'a,
Expand description
Hash any number of complete inputs all at once.
This is slightly more efficient than using update_many
with State
objects, because it doesn’t need to do any buffering.
Running hash_many
on the same HashManyJob
object more than once has no
effect.
Example
use blake2b_simd::{blake2b, Params, many::{HashManyJob, hash_many}};
let inputs = [
&b"foo"[..],
&b"bar"[..],
&b"baz"[..],
&b"bing"[..],
];
let mut params = Params::new();
params.hash_length(16);
let mut jobs = [
HashManyJob::new(¶ms, inputs[0]),
HashManyJob::new(¶ms, inputs[1]),
HashManyJob::new(¶ms, inputs[2]),
HashManyJob::new(¶ms, inputs[3]),
];
hash_many(jobs.iter_mut());
for (input, job) in inputs.iter().zip(jobs.iter()) {
let expected = params.hash(input);
assert_eq!(expected, job.to_hash());
}