diff options
author | lloyd <[email protected]> | 2010-03-19 15:59:45 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2010-03-19 15:59:45 +0000 |
commit | 1418ba24b73b8d9e4af67950fee38a02e7f1ac75 (patch) | |
tree | feeb7add6cc5cd172579cb1326bfe3fcd6f4830e /checks/check.cpp | |
parent | 87cb43641ca7000b6d97dcb4d8a5e716a07fcf76 (diff) |
There are some nasty API problems that are caused by having to pass a
PRNG everywhere. The removal of the global PRNG was generated by a
desire to remove the global library state entirely. However the real
point of this was to remove the use of globally visible _mutable_
state; of the mutable state, the PRNG is probably the least important,
and the most useful to share. And it seems unlikely that thread
contention would be a major issue in the PRNG.
Add back a global PRNG to Library_State. Use lazy initialization, so
apps that don't ever use a PRNG don't need a seeding step. Then have
AutoSeeded_RNG call that global PRNG.
Offer once again
RandomNumberGenerator& Library_State::global_rng();
which returns a reference to the global PRNG.
This RNG object serializes access to itself with a mutex.
Remove the hack known as Blinding::choose_nonce, replace with using
the global PRNG to choose a blinding nonce
Diffstat (limited to 'checks/check.cpp')
-rw-r--r-- | checks/check.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/checks/check.cpp b/checks/check.cpp index 1f46b5b4c..952384a19 100644 --- a/checks/check.cpp +++ b/checks/check.cpp @@ -106,8 +106,6 @@ int main(int argc, char* argv[]) Botan::LibraryInitializer init("thread_safe=no"); - Botan::AutoSeeded_RNG rng; - if(opts.is_set("help") || argc <= 1) { std::cerr << "Test driver for " @@ -121,6 +119,8 @@ int main(int argc, char* argv[]) return 1; } + Botan::AutoSeeded_RNG rng; + if(opts.is_set("validate") || opts.is_set("test")) { return run_test_suite(rng); |