Skip to content

Commit a37ddc7

Browse files
authored
Merge pull request #52 from koushiro/update
feat: replace sha1 and tiny-keccak with sha-1 and sha3
2 parents 2b8dfe3 + 0907e5b commit a37ddc7

File tree

4 files changed

+120
-43
lines changed

4 files changed

+120
-43
lines changed

Cargo.toml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,17 @@ edition = "2018"
1313
[dependencies]
1414
blake2b_simd = { version = "0.5.9", default-features = false }
1515
blake2s_simd = { version = "0.5.9", default-features = false }
16-
sha1 = "0.6"
16+
digest = { version = "0.8", default-features = false }
17+
sha-1 = { version = "0.8", default-features = false }
1718
sha2 = { version = "0.8", default-features = false }
18-
tiny-keccak = { version = "2.0.0", features = ["keccak", "sha3"] }
19+
sha3 = { version = "0.8", default-features = false }
1920
unsigned-varint = "0.3"
20-
digest = { version = "0.8", default-features = false }
2121

2222
[dev-dependencies]
23+
criterion = "0.3"
24+
rand = "0.7"
2325
quickcheck = "0.9.2"
26+
27+
[[bench]]
28+
name = "multihash"
29+
harness = false

benches/multihash.rs

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
use criterion::{black_box, criterion_group, criterion_main, Criterion};
2+
use rand::Rng;
3+
4+
use multihash::{
5+
Blake2b256, Blake2b512, Blake2s128, Blake2s256, Identity, Keccak224, Keccak256, Keccak384,
6+
Keccak512, Sha1, Sha2_256, Sha2_512, Sha3_224, Sha3_256, Sha3_384, Sha3_512,
7+
};
8+
9+
macro_rules! group_digest {
10+
($criterion:ident, $( $id:expr => $hash:ident, $input:expr)* ) => {{
11+
let mut group = $criterion.benchmark_group("digest");
12+
$(
13+
group.bench_function($id, |b| {
14+
b.iter(|| {
15+
let _ = black_box($hash::digest($input));
16+
})
17+
});
18+
)*
19+
group.finish();
20+
}};
21+
}
22+
23+
fn bench_digest(c: &mut Criterion) {
24+
let mut rng = rand::thread_rng();
25+
let data: Vec<u8> = (0..1024).map(|_| rng.gen()).collect();
26+
group_digest!(c,
27+
"identity" => Identity, &data
28+
"sha1" => Sha1, &data
29+
"sha2_256" => Sha2_256, &data
30+
"sha2_512" => Sha2_512, &data
31+
"sha3_224" => Sha3_224, &data
32+
"sha3_256" => Sha3_256, &data
33+
"sha3_384" => Sha3_384, &data
34+
"sha3_512" => Sha3_512, &data
35+
"keccak_224" => Keccak224, &data
36+
"keccak_256" => Keccak256, &data
37+
"keccak_384" => Keccak384, &data
38+
"keccak_512" => Keccak512, &data
39+
"blake2b_256" => Blake2b256, &data
40+
"blake2b_512" => Blake2b512, &data
41+
"blake2s_128" => Blake2s128, &data
42+
"blake2s_256" => Blake2s256, &data
43+
);
44+
}
45+
46+
criterion_group!(benches, bench_digest);
47+
criterion_main!(benches);

0 commit comments

Comments
 (0)