diff options
author | weidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0> | 2010-07-29 10:50:42 +0000 |
---|---|---|
committer | weidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0> | 2010-07-29 10:50:42 +0000 |
commit | 33be6846c06ec935180c97fa9811758368b5f097 (patch) | |
tree | 93666c00fa523772281a62290e27b6ebcb8f3e55 | |
parent | ce8e106147f7697285ef740dde39541f4f7e7187 (diff) | |
download | cryptopp-33be6846c06ec935180c97fa9811758368b5f097.tar.gz |
fix possible error during DLL startup self-test due to calling functions in ADVAPI32.DLL from DllMain() (http://sourceforge.net/apps/trac/cryptopp/ticket/4)
git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@513 57ff6487-cd31-0410-9ec3-f628ee90f5f0
-rw-r--r-- | fipstest.cpp | 21 | ||||
-rw-r--r-- | osrng.h | 4 |
2 files changed, 6 insertions, 19 deletions
diff --git a/fipstest.cpp b/fipstest.cpp index 9a6c560..e882742 100644 --- a/fipstest.cpp +++ b/fipstest.cpp @@ -69,7 +69,7 @@ void X917RNG_KnownAnswerTest( StringSource(seed, true, new HexDecoder(new StringSink(decodedSeed))); StringSource(deterministicTimeVector, true, new HexDecoder(new StringSink(decodedDeterministicTimeVector))); - AutoSeededX917RNG<CIPHER> rng; + AutoSeededX917RNG<CIPHER> rng(false, false); rng.Reseed((const byte *)decodedKey.data(), decodedKey.size(), (const byte *)decodedSeed.data(), (const byte *)decodedDeterministicTimeVector.data()); KnownAnswerTest(rng, output); #else @@ -154,15 +154,10 @@ void MAC_KnownAnswerTest(const char *key, const char *message, const char *diges template <class SCHEME> void SignatureKnownAnswerTest(const char *key, const char *message, const char *signature, SCHEME *dummy = NULL) { -#ifdef OS_RNG_AVAILABLE - DefaultAutoSeededRNG rng; -#else - RandomNumberGenerator &rng = NullRNG(); -#endif - typename SCHEME::Signer signer(StringSource(key, true, new HexDecoder).Ref()); typename SCHEME::Verifier verifier(signer); + RandomPool rng; EqualityComparisonFilter comparison; StringSource(message, true, new SignerFilter(rng, signer, new ChannelSwitch(comparison, "0"))); @@ -180,11 +175,7 @@ void EncryptionPairwiseConsistencyTest(const PK_Encryptor &encryptor, const PK_D { try { -#ifdef OS_RNG_AVAILABLE - DefaultAutoSeededRNG rng; -#else - RandomNumberGenerator &rng = NullRNG(); -#endif + RandomPool rng; const char *testMessage ="test message"; std::string ciphertext, decrypted; @@ -220,11 +211,7 @@ void SignaturePairwiseConsistencyTest(const PK_Signer &signer, const PK_Verifier { try { -#ifdef OS_RNG_AVAILABLE - DefaultAutoSeededRNG rng; -#else - RandomNumberGenerator &rng = NullRNG(); -#endif + RandomPool rng; StringSource( "test message", @@ -96,8 +96,8 @@ class AutoSeededX917RNG : public RandomNumberGenerator, public NotCopyable { public: //! use blocking to choose seeding with BlockingRng or NonblockingRng. the parameter is ignored if only one of these is available - explicit AutoSeededX917RNG(bool blocking = false) - {Reseed(blocking);} + explicit AutoSeededX917RNG(bool blocking = false, bool autoSeed = true) + {if (autoSeed) Reseed(blocking);} void Reseed(bool blocking = false, const byte *additionalEntropy = NULL, size_t length = 0); // exposed for testing void Reseed(const byte *key, size_t keylength, const byte *seed, const byte *timeVector); |