diff options
author | edef <edef@unfathomable.blue> | 2022-04-19 15:08:23 +0000 |
---|---|---|
committer | edef <edef@unfathomable.blue> | 2022-04-19 15:08:23 +0000 |
commit | 4c784b0b1562d7465908fcb671c4f48ce299d272 (patch) | |
tree | 32cd784281c1ff1fda1fd31dae44c13dcc49d34d /ripple/fossil/src | |
parent | 6a51ad1041f0a5639fc7b0b6e39a04642d5a3c2e (diff) | |
download | unf-legacy-4c784b0b1562d7465908fcb671c4f48ce299d272.tar.zst |
ripple/fossil: use bao to one-shot verify hashes
Change-Id: I77ace8ee9f69ccb92afaa0a41d69538d28f11583
Diffstat (limited to 'ripple/fossil/src')
-rw-r--r-- | ripple/fossil/src/lib.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/ripple/fossil/src/lib.rs b/ripple/fossil/src/lib.rs index 3492789..9e380f2 100644 --- a/ripple/fossil/src/lib.rs +++ b/ripple/fossil/src/lib.rs @@ -7,7 +7,7 @@ use { std::{ collections::BTreeMap, fs, - io::{self, BufRead, Read}, + io::{self, BufRead, Read, Write}, os::unix::fs::PermissionsExt, path::Path, }, @@ -107,10 +107,11 @@ impl Store { let mut buffer = Vec::new(); self.raw_blob(ident).read_to_end(&mut buffer).unwrap(); - let computed_ident = { - let mut h = blake3::Hasher::new(); - h.update_rayon(&buffer); - h.finalize() + let mut outboard = Vec::new(); + let computed_ident: blake3::Hash = { + let mut encoder = bao::encode::Encoder::new_outboard(io::Cursor::new(&mut outboard)); + encoder.write_all(&buffer).unwrap(); + encoder.finalize().unwrap() }; if computed_ident != ident { |