aboutsummaryrefslogtreecommitdiff
path: root/benches/spake2.rs
blob: d945d5af7a775fd0452bb29b2378ffbfb55b4620 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#[macro_use]
extern crate bencher;

extern crate spake2;

use bencher::Bencher;
use spake2::{Ed25519Group, SPAKE2};

fn spake2_start(bench: &mut Bencher) {
    bench.iter(|| {
        let (_, _) = SPAKE2::<Ed25519Group>::start_a(b"password", b"A", b"B");
    })
}

/*
fn spake2_finish(bench: &mut Bencher) {
    // this doesn't work, because s1 is consumed by doing finish()
    let (s1, msg1) = SPAKE2::<Ed25519Group>::start_a(b"password",
                                                     b"idA", b"idB");
    let (s2, msg2) = SPAKE2::<Ed25519Group>::start_b(b"password",
                                                     b"idA", b"idB");
    let msg2_slice = msg2.as_slice();
    bench.iter(|| {
        s1.finish(msg2_slice)
    })
}*/

fn spake2_start_and_finish(bench: &mut Bencher) {
    let (_, msg2) = SPAKE2::<Ed25519Group>::start_b(b"password", b"idA", b"idB");
    let msg2_slice = msg2.as_slice();
    bench.iter(|| {
        let (s1, _) = SPAKE2::<Ed25519Group>::start_a(b"password", b"idA", b"idB");
        s1.finish(msg2_slice)
    })
}

benchmark_group!(
    benches,
    spake2_start,
    //spake2_finish,
    spake2_start_and_finish
);
benchmark_main!(benches);