00001
00002
00003 #define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1
00004
00005 #include "cryptlib.h"
00006 #include "factory.h"
00007 #include "modes.h"
00008 #include "dh.h"
00009 #include "esign.h"
00010 #include "md2.h"
00011 #include "rw.h"
00012 #include "md5.h"
00013 #include "rsa.h"
00014 #include "ripemd.h"
00015 #include "dsa.h"
00016 #include "seal.h"
00017 #include "whrlpool.h"
00018 #include "ttmac.h"
00019 #include "camellia.h"
00020 #include "shacal2.h"
00021 #include "tea.h"
00022 #include "panama.h"
00023 #include "pssr.h"
00024 #include "aes.h"
00025 #include "salsa.h"
00026 #include "vmac.h"
00027 #include "tiger.h"
00028 #include "md5.h"
00029 #include "sosemanuk.h"
00030 #include "arc4.h"
00031 #include "ccm.h"
00032 #include "gcm.h"
00033 #include "eax.h"
00034 #include "twofish.h"
00035 #include "serpent.h"
00036 #include "cast.h"
00037 #include "rc6.h"
00038 #include "mars.h"
00039 #include "des.h"
00040 #include "idea.h"
00041 #include "rc5.h"
00042 #include "tea.h"
00043 #include "skipjack.h"
00044 #include "cmac.h"
00045 #include "dmac.h"
00046 #include "blowfish.h"
00047 #include "seed.h"
00048 #include "wake.h"
00049 #include "seal.h"
00050 #include "crc.h"
00051 #include "adler32.h"
00052 #include "sha3.h"
00053 #include "hkdf.h"
00054
00055
00056 #if (CRYPTOPP_MSC_VERSION >= 1410)
00057 # pragma strict_gs_check (on)
00058 #endif
00059
00060 USING_NAMESPACE(CryptoPP)
00061
00062 void RegisterFactories()
00063 {
00064 static bool s_registered = false;
00065 if (s_registered)
00066 return;
00067
00068 RegisterDefaultFactoryFor<SimpleKeyAgreementDomain, DH>();
00069 RegisterDefaultFactoryFor<HashTransformation, CRC32>();
00070 RegisterDefaultFactoryFor<HashTransformation, Adler32>();
00071 RegisterDefaultFactoryFor<HashTransformation, Weak::MD5>();
00072 RegisterDefaultFactoryFor<HashTransformation, SHA1>();
00073 RegisterDefaultFactoryFor<HashTransformation, SHA224>();
00074 RegisterDefaultFactoryFor<HashTransformation, SHA256>();
00075 RegisterDefaultFactoryFor<HashTransformation, SHA384>();
00076 RegisterDefaultFactoryFor<HashTransformation, SHA512>();
00077 RegisterDefaultFactoryFor<HashTransformation, Whirlpool>();
00078 RegisterDefaultFactoryFor<HashTransformation, Tiger>();
00079 RegisterDefaultFactoryFor<HashTransformation, RIPEMD160>();
00080 RegisterDefaultFactoryFor<HashTransformation, RIPEMD320>();
00081 RegisterDefaultFactoryFor<HashTransformation, RIPEMD128>();
00082 RegisterDefaultFactoryFor<HashTransformation, RIPEMD256>();
00083 RegisterDefaultFactoryFor<HashTransformation, Weak::PanamaHash<LittleEndian> >();
00084 RegisterDefaultFactoryFor<HashTransformation, Weak::PanamaHash<BigEndian> >();
00085 RegisterDefaultFactoryFor<HashTransformation, SHA3_224>();
00086 RegisterDefaultFactoryFor<HashTransformation, SHA3_256>();
00087 RegisterDefaultFactoryFor<HashTransformation, SHA3_384>();
00088 RegisterDefaultFactoryFor<HashTransformation, SHA3_512>();
00089 RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<Weak::MD5> >();
00090 RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA1> >();
00091 RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<RIPEMD160> >();
00092 RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA224> >();
00093 RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA256> >();
00094 RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA384> >();
00095 RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA512> >();
00096 RegisterDefaultFactoryFor<MessageAuthenticationCode, TTMAC>();
00097 RegisterDefaultFactoryFor<MessageAuthenticationCode, VMAC<AES> >();
00098 RegisterDefaultFactoryFor<MessageAuthenticationCode, VMAC<AES, 64> >();
00099 RegisterDefaultFactoryFor<MessageAuthenticationCode, Weak::PanamaMAC<LittleEndian> >();
00100 RegisterDefaultFactoryFor<MessageAuthenticationCode, Weak::PanamaMAC<BigEndian> >();
00101 RegisterDefaultFactoryFor<MessageAuthenticationCode, CMAC<AES> >();
00102 RegisterDefaultFactoryFor<MessageAuthenticationCode, DMAC<AES> >();
00103 RegisterDefaultFactoryFor<MessageAuthenticationCode, CMAC<DES_EDE3> >();
00104 RegisterAsymmetricCipherDefaultFactories<RSAES<OAEP<SHA1> > >("RSA/OAEP-MGF1(SHA-1)");
00105 RegisterAsymmetricCipherDefaultFactories<DLIES<> >("DLIES(NoCofactorMultiplication, KDF2(SHA-1), XOR, HMAC(SHA-1), DHAES)");
00106 RegisterSignatureSchemeDefaultFactories<DSA>();
00107 RegisterSignatureSchemeDefaultFactories<DSA2<SHA224> >();
00108 RegisterSignatureSchemeDefaultFactories<DSA2<SHA256> >();
00109 RegisterSignatureSchemeDefaultFactories<DSA2<SHA384> >();
00110 RegisterSignatureSchemeDefaultFactories<DSA2<SHA512> >();
00111 RegisterSignatureSchemeDefaultFactories<NR<SHA1> >("NR(1363)/EMSA1(SHA-1)");
00112 RegisterSignatureSchemeDefaultFactories<GDSA<SHA1> >("DSA-1363/EMSA1(SHA-1)");
00113 RegisterSignatureSchemeDefaultFactories<RSASS<PKCS1v15, Weak::MD2> >("RSA/PKCS1-1.5(MD2)");
00114 RegisterSignatureSchemeDefaultFactories<RSASS<PKCS1v15, SHA1> >("RSA/PKCS1-1.5(SHA-1)");
00115 RegisterSignatureSchemeDefaultFactories<ESIGN<SHA1> >("ESIGN/EMSA5-MGF1(SHA-1)");
00116 RegisterSignatureSchemeDefaultFactories<RWSS<P1363_EMSA2, SHA1> >("RW/EMSA2(SHA-1)");
00117 RegisterSignatureSchemeDefaultFactories<RSASS<PSS, SHA1> >("RSA/PSS-MGF1(SHA-1)");
00118 RegisterSymmetricCipherDefaultFactories<SEAL<> >();
00119 RegisterSymmetricCipherDefaultFactories<ECB_Mode<SHACAL2> >();
00120 RegisterSymmetricCipherDefaultFactories<ECB_Mode<Camellia> >();
00121 RegisterSymmetricCipherDefaultFactories<ECB_Mode<TEA> >();
00122 RegisterSymmetricCipherDefaultFactories<ECB_Mode<XTEA> >();
00123 RegisterSymmetricCipherDefaultFactories<PanamaCipher<LittleEndian> >();
00124 RegisterSymmetricCipherDefaultFactories<PanamaCipher<BigEndian> >();
00125 RegisterSymmetricCipherDefaultFactories<ECB_Mode<AES> >();
00126 RegisterSymmetricCipherDefaultFactories<CBC_Mode<AES> >();
00127 RegisterSymmetricCipherDefaultFactories<CFB_Mode<AES> >();
00128 RegisterSymmetricCipherDefaultFactories<OFB_Mode<AES> >();
00129 RegisterSymmetricCipherDefaultFactories<CTR_Mode<AES> >();
00130 RegisterSymmetricCipherDefaultFactories<Salsa20>();
00131 RegisterSymmetricCipherDefaultFactories<XSalsa20>();
00132 RegisterSymmetricCipherDefaultFactories<Sosemanuk>();
00133 RegisterSymmetricCipherDefaultFactories<Weak::MARC4>();
00134 RegisterSymmetricCipherDefaultFactories<WAKE_OFB<LittleEndian> >();
00135 RegisterSymmetricCipherDefaultFactories<WAKE_OFB<BigEndian> >();
00136 RegisterSymmetricCipherDefaultFactories<SEAL<LittleEndian> >();
00137 RegisterAuthenticatedSymmetricCipherDefaultFactories<CCM<AES> >();
00138 RegisterAuthenticatedSymmetricCipherDefaultFactories<GCM<AES> >();
00139 RegisterAuthenticatedSymmetricCipherDefaultFactories<EAX<AES> >();
00140 RegisterSymmetricCipherDefaultFactories<CTR_Mode<Camellia> >();
00141 RegisterSymmetricCipherDefaultFactories<CTR_Mode<Twofish> >();
00142 RegisterSymmetricCipherDefaultFactories<CTR_Mode<Serpent> >();
00143 RegisterSymmetricCipherDefaultFactories<CTR_Mode<CAST256> >();
00144 RegisterSymmetricCipherDefaultFactories<CTR_Mode<RC6> >();
00145 RegisterSymmetricCipherDefaultFactories<ECB_Mode<MARS> >();
00146 RegisterSymmetricCipherDefaultFactories<CTR_Mode<MARS> >();
00147 RegisterSymmetricCipherDefaultFactories<CTR_Mode<SHACAL2> >();
00148 RegisterSymmetricCipherDefaultFactories<CTR_Mode<DES> >();
00149 RegisterSymmetricCipherDefaultFactories<CTR_Mode<DES_XEX3> >();
00150 RegisterSymmetricCipherDefaultFactories<CTR_Mode<DES_EDE3> >();
00151 RegisterSymmetricCipherDefaultFactories<CTR_Mode<IDEA> >();
00152 RegisterSymmetricCipherDefaultFactories<CTR_Mode<RC5> >();
00153 RegisterSymmetricCipherDefaultFactories<CTR_Mode<TEA> >();
00154 RegisterSymmetricCipherDefaultFactories<CTR_Mode<XTEA> >();
00155 RegisterSymmetricCipherDefaultFactories<CTR_Mode<CAST128> >();
00156 RegisterSymmetricCipherDefaultFactories<CTR_Mode<SKIPJACK> >();
00157 RegisterSymmetricCipherDefaultFactories<CTR_Mode<Blowfish> >();
00158 RegisterSymmetricCipherDefaultFactories<ECB_Mode<SEED> >();
00159 RegisterSymmetricCipherDefaultFactories<CTR_Mode<SEED> >();
00160 RegisterDefaultFactoryFor<KeyDerivationFunction, HKDF<SHA1> >();
00161 RegisterDefaultFactoryFor<KeyDerivationFunction, HKDF<SHA256> >();
00162 RegisterDefaultFactoryFor<KeyDerivationFunction, HKDF<SHA512> >();
00163 RegisterDefaultFactoryFor<KeyDerivationFunction, HKDF<Whirlpool> >();
00164
00165 s_registered = true;
00166 }