aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2016-07-06 14:09:55 -0400
committerJack Lloyd <[email protected]>2016-07-17 10:43:42 -0400
commit8f2f800c7ea841fa5ab963349178ac3a9f56a513 (patch)
tree6bfd690f9add2e5196f5c2cb4556407332091329
parentd7864303e89a5e04294f8efd1d0e4ac26a1491e5 (diff)
Address some review comments from @cordney
Use consistent naming for the max output before reseed parameter. The constant (default) value is renamed to BOTAN_RNG_DEFAULT_MAX_OUTPUT_BEFORE_RESEED, since without the DEFAULT_ it reads like a compile time maximum instead. Use uint8_t instead of byte.
-rw-r--r--src/build-data/buildh.in2
-rw-r--r--src/lib/rng/auto_rng.h2
-rw-r--r--src/lib/rng/hmac_drbg/hmac_drbg.cpp8
-rw-r--r--src/lib/rng/hmac_drbg/hmac_drbg.h4
-rw-r--r--src/lib/rng/hmac_rng/hmac_rng.cpp9
-rw-r--r--src/lib/rng/hmac_rng/hmac_rng.h5
-rw-r--r--src/lib/rng/rng.cpp8
-rw-r--r--src/lib/rng/rng.h4
-rw-r--r--src/lib/rng/system_rng/system_rng.cpp12
-rw-r--r--src/lib/rng/system_rng/system_rng.h4
10 files changed, 30 insertions, 28 deletions
diff --git a/src/build-data/buildh.in b/src/build-data/buildh.in
index 82a4ecd50..222d7cab0 100644
--- a/src/build-data/buildh.in
+++ b/src/build-data/buildh.in
@@ -102,7 +102,7 @@
* after producing this many bytes of output. Set to zero to disable
* automatic reseeding.
*/
-#define BOTAN_RNG_MAX_OUTPUT_BEFORE_RESEED 16384
+#define BOTAN_RNG_DEFAULT_MAX_OUTPUT_BEFORE_RESEED 16384
#define BOTAN_RNG_RESEED_POLL_BITS 256
#define BOTAN_RNG_AUTO_RESEED_TIMEOUT std::chrono::milliseconds(10)
#define BOTAN_RNG_RESEED_DEFAULT_TIMEOUT std::chrono::milliseconds(50)
diff --git a/src/lib/rng/auto_rng.h b/src/lib/rng/auto_rng.h
index b51390ae2..3085623ef 100644
--- a/src/lib/rng/auto_rng.h
+++ b/src/lib/rng/auto_rng.h
@@ -36,7 +36,7 @@ class BOTAN_DLL AutoSeeded_RNG final : public RandomNumberGenerator
void add_entropy(const byte in[], size_t len) override
{ m_rng->add_entropy(in, len); }
- AutoSeeded_RNG(size_t bytes_before_reseed = BOTAN_RNG_MAX_OUTPUT_BEFORE_RESEED);
+ AutoSeeded_RNG(size_t max_output_before_reseed = BOTAN_RNG_DEFAULT_MAX_OUTPUT_BEFORE_RESEED);
private:
std::unique_ptr<RandomNumberGenerator> m_rng;
uint32_t m_counter = 0;
diff --git a/src/lib/rng/hmac_drbg/hmac_drbg.cpp b/src/lib/rng/hmac_drbg/hmac_drbg.cpp
index 6fdd7daf9..7325804e3 100644
--- a/src/lib/rng/hmac_drbg/hmac_drbg.cpp
+++ b/src/lib/rng/hmac_drbg/hmac_drbg.cpp
@@ -11,8 +11,8 @@
namespace Botan {
HMAC_DRBG::HMAC_DRBG(MessageAuthenticationCode* hmac,
- size_t max_bytes_before_reseed) :
- Stateful_RNG(max_bytes_before_reseed),
+ size_t max_output_before_reseed) :
+ Stateful_RNG(max_output_before_reseed),
m_mac(hmac)
{
m_V.resize(m_mac->output_length());
@@ -20,8 +20,8 @@ HMAC_DRBG::HMAC_DRBG(MessageAuthenticationCode* hmac,
}
HMAC_DRBG::HMAC_DRBG(const std::string& hmac_hash,
- size_t max_bytes_before_reseed) :
- Stateful_RNG(max_bytes_before_reseed)
+ size_t max_output_before_reseed) :
+ Stateful_RNG(max_output_before_reseed)
{
const std::string hmac = "HMAC(" + hmac_hash + ")";
diff --git a/src/lib/rng/hmac_drbg/hmac_drbg.h b/src/lib/rng/hmac_drbg/hmac_drbg.h
index 8ee598470..0e294dbdb 100644
--- a/src/lib/rng/hmac_drbg/hmac_drbg.h
+++ b/src/lib/rng/hmac_drbg/hmac_drbg.h
@@ -23,10 +23,10 @@ class BOTAN_DLL HMAC_DRBG final : public Stateful_RNG
* Initialize an HMAC_DRBG instance with the given hash function
*/
HMAC_DRBG(const std::string& hmac_hash,
- size_t max_bytes_before_reseed = BOTAN_RNG_MAX_OUTPUT_BEFORE_RESEED);
+ size_t max_output_before_reseed = BOTAN_RNG_DEFAULT_MAX_OUTPUT_BEFORE_RESEED);
HMAC_DRBG(MessageAuthenticationCode* hmac,
- size_t max_bytes_before_reseed = BOTAN_RNG_MAX_OUTPUT_BEFORE_RESEED);
+ size_t max_output_before_reseed = BOTAN_RNG_DEFAULT_MAX_OUTPUT_BEFORE_RESEED);
std::string name() const override;
diff --git a/src/lib/rng/hmac_rng/hmac_rng.cpp b/src/lib/rng/hmac_rng/hmac_rng.cpp
index 410e3040a..c100cf70f 100644
--- a/src/lib/rng/hmac_rng/hmac_rng.cpp
+++ b/src/lib/rng/hmac_rng/hmac_rng.cpp
@@ -12,8 +12,8 @@
namespace Botan {
-HMAC_RNG::HMAC_RNG(const std::string& hash, size_t max_before_reseed) :
- Stateful_RNG(max_before_reseed)
+HMAC_RNG::HMAC_RNG(const std::string& hash, size_t max_output_before_reseed) :
+ Stateful_RNG(max_output_before_reseed)
{
m_extractor = MAC::create("HMAC(" + hash + ")");
if(!m_extractor)
@@ -36,8 +36,9 @@ HMAC_RNG::HMAC_RNG(const std::string& hash, size_t max_before_reseed) :
* HMAC_RNG Constructor
*/
HMAC_RNG::HMAC_RNG(MessageAuthenticationCode* extractor,
- MessageAuthenticationCode* prf) :
- Stateful_RNG(BOTAN_RNG_MAX_OUTPUT_BEFORE_RESEED),
+ MessageAuthenticationCode* prf,
+ size_t max_output_before_reseed) :
+ Stateful_RNG(max_output_before_reseed),
m_extractor(extractor), m_prf(prf)
{
if(!m_prf->valid_keylength(m_extractor->output_length()) ||
diff --git a/src/lib/rng/hmac_rng/hmac_rng.h b/src/lib/rng/hmac_rng/hmac_rng.h
index f2f8a610d..a2538a83a 100644
--- a/src/lib/rng/hmac_rng/hmac_rng.h
+++ b/src/lib/rng/hmac_rng/hmac_rng.h
@@ -42,13 +42,14 @@ class BOTAN_DLL HMAC_RNG : public Stateful_RNG
* @param prf a MAC used as a PRF using HKDF construction
*/
HMAC_RNG(MessageAuthenticationCode* extractor,
- MessageAuthenticationCode* prf);
+ MessageAuthenticationCode* prf,
+ size_t max_output_before_reseed = BOTAN_RNG_DEFAULT_MAX_OUTPUT_BEFORE_RESEED);
/**
* Use the specified hash for both the extractor and PRF functions
*/
HMAC_RNG(const std::string& hash,
- size_t max_before_reseed = BOTAN_RNG_MAX_OUTPUT_BEFORE_RESEED);
+ size_t max_output_before_reseed = BOTAN_RNG_DEFAULT_MAX_OUTPUT_BEFORE_RESEED);
private:
std::unique_ptr<MessageAuthenticationCode> m_extractor;
std::unique_ptr<MessageAuthenticationCode> m_prf;
diff --git a/src/lib/rng/rng.cpp b/src/lib/rng/rng.cpp
index 923b417dc..5501c143e 100644
--- a/src/lib/rng/rng.cpp
+++ b/src/lib/rng/rng.cpp
@@ -42,7 +42,7 @@ size_t RandomNumberGenerator::reseed_with_sources(Entropy_Sources& srcs,
return srcs.poll(*this, poll_bits, poll_timeout);
}
-Stateful_RNG::Stateful_RNG(size_t bytes_before_reseed) : m_bytes_before_reseed(bytes_before_reseed)
+Stateful_RNG::Stateful_RNG(size_t max_output_before_reseed) : m_max_output_before_reseed(max_output_before_reseed)
{
}
@@ -79,7 +79,7 @@ void Stateful_RNG::reseed_check(size_t bytes_requested)
{
this->reseed(BOTAN_RNG_RESEED_POLL_BITS);
}
- else if(m_bytes_before_reseed > 0 && m_bytes_since_reseed >= m_bytes_before_reseed)
+ else if(m_max_output_before_reseed > 0 && m_bytes_since_reseed >= m_max_output_before_reseed)
{
this->reseed_with_timeout(BOTAN_RNG_RESEED_POLL_BITS,
BOTAN_RNG_AUTO_RESEED_TIMEOUT);
@@ -107,9 +107,9 @@ RandomNumberGenerator* RandomNumberGenerator::make_rng()
return new AutoSeeded_RNG;
}
-AutoSeeded_RNG::AutoSeeded_RNG(size_t max_bytes_before_reseed)
+AutoSeeded_RNG::AutoSeeded_RNG(size_t max_output_before_reseed)
{
- m_rng.reset(new BOTAN_AUTO_RNG_DRBG(BOTAN_AUTO_RNG_HASH, max_bytes_before_reseed));
+ m_rng.reset(new BOTAN_AUTO_RNG_DRBG(BOTAN_AUTO_RNG_HASH, max_output_before_reseed));
size_t bits = m_rng->reseed(BOTAN_AUTO_RNG_ENTROPY_TARGET);
diff --git a/src/lib/rng/rng.h b/src/lib/rng/rng.h
index 476928ff7..7da560b85 100644
--- a/src/lib/rng/rng.h
+++ b/src/lib/rng/rng.h
@@ -195,14 +195,14 @@ class BOTAN_DLL Stateful_RNG : public RandomNumberGenerator
/**
* Mark state as requiring a reseed on next use
*/
- void force_reseed() { m_bytes_since_reseed = m_bytes_before_reseed; }
+ void force_reseed() { m_bytes_since_reseed = m_max_output_before_reseed; }
uint32_t last_pid() const { return m_last_pid; }
mutable std::mutex m_mutex;
private:
- const size_t m_bytes_before_reseed;
+ const size_t m_max_output_before_reseed;
size_t m_bytes_since_reseed = 0;
uint32_t m_last_pid = 0;
bool m_successful_initialization = false;
diff --git a/src/lib/rng/system_rng/system_rng.cpp b/src/lib/rng/system_rng/system_rng.cpp
index a503c2198..135f4fabd 100644
--- a/src/lib/rng/system_rng/system_rng.cpp
+++ b/src/lib/rng/system_rng/system_rng.cpp
@@ -38,9 +38,9 @@ class System_RNG_Impl final : public RandomNumberGenerator
void clear() override {}
- void randomize(Botan::byte out[], size_t len) override;
+ void randomize(uint8_t out[], size_t len) override;
- void add_entropy(const byte in[], size_t length) override;
+ void add_entropy(const uint8_t in[], size_t length) override;
std::string name() const override;
@@ -90,7 +90,7 @@ System_RNG_Impl::~System_RNG_Impl()
#endif
}
-void System_RNG_Impl::add_entropy(const byte input[], size_t len)
+void System_RNG_Impl::add_entropy(const uint8_t input[], size_t len)
{
#if defined(BOTAN_TARGET_OS_HAS_CRYPTGENRANDOM)
/*
@@ -102,14 +102,14 @@ void System_RNG_Impl::add_entropy(const byte input[], size_t len)
for(size_t i = 0; i != len; ++i)
{
- byte b = input[i];
+ uint8_t b = input[i];
::CryptGenRandom(m_prov, 1, &b);
}
*/
if(len > 0)
{
- secure_vector<byte> buf(input, input + len);
+ secure_vector<uint8_t> buf(input, input + len);
::CryptGenRandom(m_prov, static_cast<DWORD>(buf.size()), buf.data());
}
#else
@@ -144,7 +144,7 @@ void System_RNG_Impl::add_entropy(const byte input[], size_t len)
#endif
}
-void System_RNG_Impl::randomize(byte buf[], size_t len)
+void System_RNG_Impl::randomize(uint8_t buf[], size_t len)
{
#if defined(BOTAN_TARGET_OS_HAS_CRYPTGENRANDOM)
::CryptGenRandom(m_prov, static_cast<DWORD>(len), buf);
diff --git a/src/lib/rng/system_rng/system_rng.h b/src/lib/rng/system_rng/system_rng.h
index a789631d6..9cf31e78b 100644
--- a/src/lib/rng/system_rng/system_rng.h
+++ b/src/lib/rng/system_rng/system_rng.h
@@ -27,9 +27,9 @@ class BOTAN_DLL System_RNG final : public RandomNumberGenerator
public:
std::string name() const override { return system_rng().name(); }
- void randomize(Botan::byte out[], size_t len) override { system_rng().randomize(out, len); }
+ void randomize(uint8_t out[], size_t len) override { system_rng().randomize(out, len); }
- void add_entropy(const byte in[], size_t length) override { system_rng().add_entropy(in, length); }
+ void add_entropy(const uint8_t in[], size_t length) override { system_rng().add_entropy(in, length); }
bool is_seeded() const override { return true; }