aboutsummaryrefslogtreecommitdiff
path: root/benches/spake2.rs
diff options
context:
space:
mode:
Diffstat (limited to 'benches/spake2.rs')
-rw-r--r--benches/spake2.rs44
1 files changed, 44 insertions, 0 deletions
diff --git a/benches/spake2.rs b/benches/spake2.rs
new file mode 100644
index 0000000..dbe25dd
--- /dev/null
+++ b/benches/spake2.rs
@@ -0,0 +1,44 @@
+#[macro_use]
+extern crate bencher;
+
+extern crate spake2;
+
+use bencher::Bencher;
+use spake2::{SPAKE2, Ed25519Group};
+
+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);