2 use bencher::{benchmark_group, benchmark_main};
3 use spake2::{Ed25519Group, Identity, Password, Spake2};
5 fn spake2_start(bench: &mut Bencher) {
7 let (_, _) = Spake2::<Ed25519Group>::start_a(
8 &Password::new(b"password"),
9 &Identity::new(b"idA"),
10 &Identity::new(b"idB"),
16 fn spake2_finish(bench: &mut Bencher) {
17 // this doesn't work, because s1 is consumed by doing finish()
18 let (s1, msg1) = SPAKE2::<Ed25519Group>::start_a(
19 &Password::new(b"password"),
20 &Identity::new(b"idA"),
21 &Identity::new(b"idB"),
23 let (s2, msg2) = SPAKE2::<Ed25519Group>::start_b(
24 &Password::new(b"password"),
25 &Identity::new(b"idA"),
26 &Identity::new(b"idB"),
28 let msg2_slice = msg2.as_slice();
29 bench.iter(|| s1.finish(msg2_slice))
33 fn spake2_start_and_finish(bench: &mut Bencher) {
34 let (_, msg2) = Spake2::<Ed25519Group>::start_b(
35 &Password::new(b"password"),
36 &Identity::new(b"idA"),
37 &Identity::new(b"idB"),
39 let msg2_slice = msg2.as_slice();
41 let (s1, _) = Spake2::<Ed25519Group>::start_a(
42 &Password::new(b"password"),
43 &Identity::new(b"idA"),
44 &Identity::new(b"idB"),
54 spake2_start_and_finish
56 benchmark_main!(benches);