diff options
Diffstat (limited to 'src/lib/rng/auto_rng/auto_rng.h')
-rw-r--r-- | src/lib/rng/auto_rng/auto_rng.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/lib/rng/auto_rng/auto_rng.h b/src/lib/rng/auto_rng/auto_rng.h new file mode 100644 index 000000000..13201f251 --- /dev/null +++ b/src/lib/rng/auto_rng/auto_rng.h @@ -0,0 +1,41 @@ +/* +* Auto Seeded RNG +* (C) 2008 Jack Lloyd +* +* Distributed under the terms of the Botan license +*/ + +#ifndef BOTAN_AUTO_SEEDING_RNG_H__ +#define BOTAN_AUTO_SEEDING_RNG_H__ + +#include <botan/rng.h> +#include <string> +#include <memory> + +namespace Botan { + +class BOTAN_DLL AutoSeeded_RNG : public RandomNumberGenerator + { + public: + void randomize(byte out[], size_t len) + { m_rng->randomize(out, len); } + + bool is_seeded() const { return m_rng->is_seeded(); } + + void clear() { m_rng->clear(); } + + std::string name() const { return m_rng->name(); } + + void reseed(size_t poll_bits = 256) { m_rng->reseed(poll_bits); } + + void add_entropy(const byte in[], size_t len) + { m_rng->add_entropy(in, len); } + + AutoSeeded_RNG() : m_rng(RandomNumberGenerator::make_rng()) {} + private: + std::unique_ptr<RandomNumberGenerator> m_rng; + }; + +} + +#endif |