arnaucube
arnaucube/miden-cryptoPublic Self-hosted repository
feat: improve blake3 sequential hashing performance
Bobbin Threadbare bobbinth@protonmail.com
Fri, 09 Dec 2022 13:51:16 -0800
commit

9782992662c1c01e89d0c55de220a1235877abdc

parent

8f3aaa7eb65406bfda42b81d60daa5ab6dd593e7

1 files changed, 5 insertions(+), 7 deletions(-)

jump to
M src/hash/blake/mod.rs → src/hash/blake/mod.rs

@@ -276,13 +276,11 @@ // this is a compile-time branch so it is for free

let digest = if Felt::IS_CANONICAL { blake3::hash(E::elements_as_bytes(elements)) } else { - E::as_base_elements(elements) - .iter() - .fold(blake3::Hasher::new(), |mut hasher, felt| { - hasher.update(&felt.as_int().to_le_bytes()); - hasher - }) - .finalize() + let mut hasher = blake3::Hasher::new(); + for element in E::as_base_elements(elements) { + hasher.update(&element.as_int().to_le_bytes()); + } + hasher.finalize() }; *shrink_bytes(&digest.into()) }