aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstate/info.txt
diff options
context:
space:
mode:
authorlloyd <[email protected]>2010-03-19 15:59:45 +0000
committerlloyd <[email protected]>2010-03-19 15:59:45 +0000
commit1418ba24b73b8d9e4af67950fee38a02e7f1ac75 (patch)
treefeeb7add6cc5cd172579cb1326bfe3fcd6f4830e /src/libstate/info.txt
parent87cb43641ca7000b6d97dcb4d8a5e716a07fcf76 (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 'src/libstate/info.txt')
-rw-r--r--src/libstate/info.txt3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/libstate/info.txt b/src/libstate/info.txt
index 3992d25bd..905675109 100644
--- a/src/libstate/info.txt
+++ b/src/libstate/info.txt
@@ -14,6 +14,7 @@ scan_name.h
<source>
get_enc.cpp
init.cpp
+global_rng.cpp
libstate.cpp
lookup.cpp
policy.cpp
@@ -29,6 +30,7 @@ def_engine
engine
filters
hash
+hmac
kdf
mac
mode_pad
@@ -38,6 +40,7 @@ pk_pad
pubkey
rng
s2k
+sha2
stream
system_alloc
</requires>