From 957ec6cd2c4e2c8026d41c934e5d48ded51e426d Mon Sep 17 00:00:00 2001 From: Michael Hamburg Date: Fri, 8 Jan 2016 16:03:13 -0800 Subject: [PATCH] restore shared secret benchmarks --- src/gen_headers/crypto_hxx.py | 2 +- test/bench_decaf.cxx | 10 +++++++--- test/test_decaf.cxx | 8 ++++++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/gen_headers/crypto_hxx.py b/src/gen_headers/crypto_hxx.py index aef94dd..f84c109 100644 --- a/src/gen_headers/crypto_hxx.py +++ b/src/gen_headers/crypto_hxx.py @@ -63,7 +63,7 @@ public: /** @brief Serialization size. */ inline size_t serSize() const NOEXCEPT { return SER_BYTES; } - /* TODO: verify_strobe? */ + /* TODO: verify_strobe */ /** @brief Verify a message */ inline void verify( diff --git a/test/bench_decaf.cxx b/test/bench_decaf.cxx index ea10d1d..9509575 100644 --- a/test/bench_decaf.cxx +++ b/test/bench_decaf.cxx @@ -290,10 +290,10 @@ static void macro() { printf("\nMacro-benchmarks for %s:\n", Group::name()); printf("Crypto benchmarks:\n"); SpongeRng rng(Block("macro rng seed")); - PublicKey p1((NOINIT())), p2((NOINIT())); - PrivateKey s1((NOINIT())), s2((NOINIT())); + PrivateKey s1((NOINIT())), s2(rng); + PublicKey p1((NOINIT())), p2(s2); - SecureBuffer message = rng.read(5), sig; + SecureBuffer message = rng.read(5), sig, ss; for (Benchmark b("Create private key",1); b.iter(); ) { s1 = PrivateKey(rng); @@ -310,6 +310,10 @@ static void macro() { try { p1.verify(message, sig); } catch (CryptoException) {} } + for (Benchmark b("SharedSecret",1); b.iter(); ) { + ss = s1.sharedSecret(p2,32,true); + } + printf("\nProtocol benchmarks:\n"); SpongeRng clientRng(Block("client rng seed")); SpongeRng serverRng(Block("server rng seed")); diff --git a/test/test_decaf.cxx b/test/test_decaf.cxx index 013f533..841498c 100644 --- a/test/test_decaf.cxx +++ b/test/test_decaf.cxx @@ -335,7 +335,15 @@ static void test_crypto() { SecureBuffer message = rng.read(i); SecureBuffer sig(priv1.sign(message)); + pub1.verify(message, sig); + + SecureBuffer s1(priv1.sharedSecret(pub2,32,true)); + SecureBuffer s2(priv2.sharedSecret(pub1,32,false)); + if (memcmp(s1.data(),s2.data(),s1.size())) { + test.fail(); + printf(" Shared secrets disagree."); + } } }