// regtest1.cpp - originally written and placed in the public domain by Wei Dai // regtest.cpp split into 3 files due to OOM kills by JW // in April 2017. A second split occurred in July 2018. #define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1 #include "cryptlib.h" #include "factory.h" #include "bench.h" #include "cpu.h" #include "crc.h" #include "adler32.h" #include "md2.h" #include "md5.h" #include "keccak.h" #include "sha3.h" #include "shake.h" #include "blake2.h" #include "sha.h" #include "sha3.h" #include "sm3.h" #include "hkdf.h" #include "tiger.h" #include "ripemd.h" #include "panama.h" #include "whrlpool.h" #include "lsh.h" #include "osrng.h" #include "drbg.h" #include "darn.h" #include "mersenne.h" #include "rdrand.h" #include "padlkrng.h" #include "modes.h" #include "aes.h" // Aggressive stack checking with VS2005 SP1 and above. #if (_MSC_FULL_VER >= 140050727) # pragma strict_gs_check (on) #endif #if CRYPTOPP_MSC_VERSION # pragma warning(disable: 4505 4355) #endif USING_NAMESPACE(CryptoPP) // Unkeyed ciphers void RegisterFactories1(); // MAC ciphers void RegisterFactories2(); // Stream ciphers void RegisterFactories3(); // Block ciphers void RegisterFactories4(); // Public key ciphers void RegisterFactories5(); void RegisterFactories(Test::TestClass suites) { static bool s_registered = false; if (s_registered) return; if ((suites & Test::Unkeyed) == Test::Unkeyed) RegisterFactories1(); if ((suites & Test::SharedKeyMAC) == Test::SharedKeyMAC) RegisterFactories2(); if ((suites & Test::SharedKeyStream) == Test::SharedKeyStream) RegisterFactories3(); if ((suites & Test::SharedKeyBlock) == Test::SharedKeyBlock) RegisterFactories4(); if ((suites & Test::PublicKey) == Test::PublicKey) RegisterFactories5(); s_registered = true; } // Unkeyed ciphers void RegisterFactories1() { RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor >(); RegisterDefaultFactoryFor >(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor(); #ifdef BLOCKING_RNG_AVAILABLE RegisterDefaultFactoryFor(); #endif #ifdef NONBLOCKING_RNG_AVAILABLE RegisterDefaultFactoryFor(); #endif #ifdef OS_RNG_AVAILABLE RegisterDefaultFactoryFor(); RegisterDefaultFactoryFor >(); #endif RegisterDefaultFactoryFor(); #if (CRYPTOPP_BOOL_X86) if (HasPadlockRNG()) RegisterDefaultFactoryFor(); #endif #if (CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64) if (HasRDRAND()) RegisterDefaultFactoryFor(); if (HasRDSEED()) RegisterDefaultFactoryFor(); #endif #if (CRYPTOPP_BOOL_PPC32 || CRYPTOPP_BOOL_PPC64) if (HasDARN()) RegisterDefaultFactoryFor(); #endif RegisterDefaultFactoryFor::Encryption >("AES/OFB RNG"); RegisterDefaultFactoryFor >("Hash_DRBG(SHA1)"); RegisterDefaultFactoryFor >("Hash_DRBG(SHA256)"); RegisterDefaultFactoryFor >("HMAC_DRBG(SHA1)"); RegisterDefaultFactoryFor >("HMAC_DRBG(SHA256)"); RegisterDefaultFactoryFor >(); RegisterDefaultFactoryFor >(); RegisterDefaultFactoryFor >(); RegisterDefaultFactoryFor >(); }