in src/defs/eif_hasher.rs [210:242]
fn hash_exact_block_size_values<T: Digest + Debug + Write + Clone>(
mut hasher_alg: T,
block_size: usize,
) {
let data = vec![78u8; block_size];
let output_size = hasher_alg.finalize_reset().len();
let mut hasher = EifHasher::new(block_size, hasher_alg.clone()).unwrap();
hasher.write_all(&data).unwrap();
hasher_alg
.write_all(&initial_digest(output_size)[..])
.unwrap();
hasher_alg.write_all(&data[..block_size]).unwrap();
let mut hasher_clone = hasher.clone();
let mut hasher_alg_clone = hasher_alg.clone();
assert_eq!(
hasher_alg.finalize_reset().to_vec(),
hasher.finalize_reset().unwrap()
);
let result = hasher_alg_clone.finalize_reset();
hasher_alg_clone
.write_all(&initial_digest(output_size)[..])
.unwrap();
hasher_alg_clone.write_all(&result[..]).unwrap();
assert_eq!(
hasher_clone.tpm_extend_finalize_reset().unwrap(),
hasher_alg_clone.finalize_reset().to_vec()
);
}