diff options
Diffstat (limited to 'src/lib/rng/rng.cpp')
-rw-r--r-- | src/lib/rng/rng.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/lib/rng/rng.cpp b/src/lib/rng/rng.cpp new file mode 100644 index 000000000..12a6c163e --- /dev/null +++ b/src/lib/rng/rng.cpp @@ -0,0 +1,34 @@ +/* +* Random Number Generator Base +* (C) 1999-2008 Jack Lloyd +* +* Distributed under the terms of the Botan license +*/ + +#include <botan/rng.h> +#include <botan/hmac_rng.h> +#include <botan/libstate.h> + +namespace Botan { + +RandomNumberGenerator* RandomNumberGenerator::make_rng() + { + return make_rng(global_state().algorithm_factory()).release(); + } + +/* +* Create and seed a new RNG object +*/ +std::unique_ptr<RandomNumberGenerator> RandomNumberGenerator::make_rng(Algorithm_Factory& af) + { + std::unique_ptr<RandomNumberGenerator> rng( + new HMAC_RNG(af.make_mac("HMAC(SHA-512)"), + af.make_mac("HMAC(SHA-256)")) + ); + + rng->reseed(256); + + return rng; + } + +} |