From c2efbae80a70ea17b039f8259d7a3c85fb181892 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 11 Mar 2017 15:56:55 -0500 Subject: [PATCH] Add AES/OFB RNG benchmark --- bench1.cpp | 11 +++++++++++ regtest.cpp | 1 + 2 files changed, 12 insertions(+) diff --git a/bench1.cpp b/bench1.cpp index 04f3745f..56317c6b 100644 --- a/bench1.cpp +++ b/bench1.cpp @@ -200,6 +200,16 @@ void BenchMark(const char *name, RandomNumberGenerator &rng, double timeTotal) Test::GlobalRNG().GenerateBlock(buf, BUF_SIZE); buf.SetMark(16); + SymmetricCipher * cipher = dynamic_cast(&rng); + if (cipher != NULLPTR) + { + const size_t size = cipher->DefaultKeyLength(); + if (cipher->IsResynchronizable()) + cipher->SetKeyWithIV(buf, size, buf+size); + else + cipher->SetKey(buf, size); + } + unsigned long long blocks = 1; double timeTaken; @@ -406,6 +416,7 @@ void Benchmark1(double t, double hertz) if (HasRDSEED()) BenchMarkByNameKeyLess("RDSEED"); #endif + BenchMarkByNameKeyLess("AES/OFB RNG"); BenchMarkByNameKeyLess("Hash_DRBG(SHA1)"); BenchMarkByNameKeyLess("Hash_DRBG(SHA256)"); BenchMarkByNameKeyLess("HMAC_DRBG(SHA1)"); diff --git a/regtest.cpp b/regtest.cpp index 4c81a554..704bc2e0 100644 --- a/regtest.cpp +++ b/regtest.cpp @@ -210,6 +210,7 @@ void RegisterFactories() if (HasRDSEED()) RegisterDefaultFactoryFor(); #endif + RegisterDefaultFactoryFor::Encryption >("AES/OFB RNG"); RegisterDefaultFactoryFor >("Hash_DRBG(SHA1)"); RegisterDefaultFactoryFor >("Hash_DRBG(SHA256)"); RegisterDefaultFactoryFor >("HMAC_DRBG(SHA1)");