00001 #include "factory.h" 00002 00003 #include "modes.h" 00004 #include "dh.h" 00005 #include "esign.h" 00006 #include "md2.h" 00007 #include "trunhash.h" 00008 #include "rw.h" 00009 #include "md5.h" 00010 #include "rsa.h" 00011 #include "ripemd.h" 00012 #include "dsa.h" 00013 #include "seal.h" 00014 #include "whrlpool.h" 00015 #include "ttmac.h" 00016 #include "camellia.h" 00017 #include "shacal2.h" 00018 #include "tea.h" 00019 #include "panama.h" 00020 #include "pssr.h" 00021 #include "aes.h" 00022 #include "salsa.h" 00023 00024 USING_NAMESPACE(CryptoPP) 00025 00026 void RegisterFactories() 00027 { 00028 static bool s_registered = false; 00029 if (s_registered) 00030 return; 00031 00032 RegisterDefaultFactoryFor<SimpleKeyAgreementDomain, DH>(); 00033 RegisterDefaultFactoryFor<HashTransformation, SHA1>(); 00034 RegisterDefaultFactoryFor<HashTransformation, SHA224>(); 00035 RegisterDefaultFactoryFor<HashTransformation, SHA256>(); 00036 #ifdef WORD64_AVAILABLE 00037 RegisterDefaultFactoryFor<HashTransformation, SHA384>(); 00038 RegisterDefaultFactoryFor<HashTransformation, SHA512>(); 00039 RegisterDefaultFactoryFor<HashTransformation, Whirlpool>(); 00040 #endif 00041 RegisterDefaultFactoryFor<HashTransformation, PanamaHash<LittleEndian> >(); 00042 RegisterDefaultFactoryFor<HashTransformation, PanamaHash<BigEndian> >(); 00043 RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<MD5> >(); 00044 RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA1> >(); 00045 RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<RIPEMD160> >(); 00046 RegisterDefaultFactoryFor<MessageAuthenticationCode, TTMAC>(); 00047 RegisterDefaultFactoryFor<MessageAuthenticationCode, PanamaMAC<LittleEndian> >(); 00048 RegisterDefaultFactoryFor<MessageAuthenticationCode, PanamaMAC<BigEndian> >(); 00049 RegisterAsymmetricCipherDefaultFactories<RSAES<OAEP<SHA1> > >("RSA/OAEP-MGF1(SHA-1)"); 00050 RegisterAsymmetricCipherDefaultFactories<DLIES<> >("DLIES(NoCofactorMultiplication, KDF2(SHA-1), XOR, HMAC(SHA-1), DHAES)"); 00051 RegisterSignatureSchemeDefaultFactories<DSA>("DSA(1363)"); 00052 RegisterSignatureSchemeDefaultFactories<NR<SHA1> >("NR(1363)/EMSA1(SHA-1)"); 00053 RegisterSignatureSchemeDefaultFactories<GDSA<SHA1> >("DSA-1363/EMSA1(SHA-1)"); 00054 RegisterSignatureSchemeDefaultFactories<RSASS<PKCS1v15, MD2> >("RSA/PKCS1-1.5(MD2)"); 00055 RegisterSignatureSchemeDefaultFactories<RSASS<PKCS1v15, SHA1> >("RSA/PKCS1-1.5(SHA-1)"); 00056 RegisterSignatureSchemeDefaultFactories<ESIGN<SHA1> >("ESIGN/EMSA5-MGF1(SHA-1)"); 00057 RegisterSignatureSchemeDefaultFactories<RWSS<P1363_EMSA2, SHA1> >("RW/EMSA2(SHA-1)"); 00058 RegisterSignatureSchemeDefaultFactories<RSASS<PSS, SHA1> >("RSA/PSS-MGF1(SHA-1)"); 00059 RegisterSymmetricCipherDefaultFactories<SEAL<> >(); 00060 RegisterSymmetricCipherDefaultFactories<ECB_Mode<SHACAL2> >(); 00061 #ifdef WORD64_AVAILABLE 00062 RegisterSymmetricCipherDefaultFactories<ECB_Mode<Camellia> >(); 00063 #endif 00064 RegisterSymmetricCipherDefaultFactories<ECB_Mode<TEA> >(); 00065 RegisterSymmetricCipherDefaultFactories<ECB_Mode<XTEA> >(); 00066 RegisterSymmetricCipherDefaultFactories<PanamaCipher<LittleEndian> >(); 00067 RegisterSymmetricCipherDefaultFactories<PanamaCipher<BigEndian> >(); 00068 RegisterSymmetricCipherDefaultFactories<ECB_Mode<AES> >(); 00069 RegisterSymmetricCipherDefaultFactories<CBC_Mode<AES> >(); 00070 RegisterSymmetricCipherDefaultFactories<CFB_Mode<AES> >(); 00071 RegisterSymmetricCipherDefaultFactories<OFB_Mode<AES> >(); 00072 RegisterSymmetricCipherDefaultFactories<CTR_Mode<AES> >(); 00073 RegisterSymmetricCipherDefaultFactories<Salsa20>(); 00074 00075 s_registered = true; 00076 }