]> git.lizzy.rs Git - PAKEs.git/commitdiff
add benchmarks: run 'cargo bench'
authorBrian Warner <warner@lothar.com>
Thu, 21 Sep 2017 20:45:13 +0000 (13:45 -0700)
committerBrian Warner <warner@lothar.com>
Thu, 21 Sep 2017 20:45:13 +0000 (13:45 -0700)
Cargo.toml
benches/spake2.rs [new file with mode: 0644]

index f2a286f9ae575968b69142819c0661e37cfcf50d..e7850dac9ee34d09824999b2c2808666be49afd9 100644 (file)
@@ -25,3 +25,8 @@ hex = "0.2"
 
 [dev-dependencies]
 hex = "0.2"
+bencher = "0.1"
+
+[[bench]]
+name = "spake2"
+harness = false
diff --git a/benches/spake2.rs b/benches/spake2.rs
new file mode 100644 (file)
index 0000000..dbe25dd
--- /dev/null
@@ -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);