Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

166 lines
7.5 KiB

  1. // regtest.cpp - written and placed in the public domain by Wei Dai
  2. #define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1
  3. #include "cryptlib.h"
  4. #include "factory.h"
  5. #include "modes.h"
  6. #include "dh.h"
  7. #include "esign.h"
  8. #include "md2.h"
  9. #include "rw.h"
  10. #include "md5.h"
  11. #include "rsa.h"
  12. #include "ripemd.h"
  13. #include "dsa.h"
  14. #include "seal.h"
  15. #include "whrlpool.h"
  16. #include "ttmac.h"
  17. #include "camellia.h"
  18. #include "shacal2.h"
  19. #include "tea.h"
  20. #include "panama.h"
  21. #include "pssr.h"
  22. #include "aes.h"
  23. #include "salsa.h"
  24. #include "vmac.h"
  25. #include "tiger.h"
  26. #include "md5.h"
  27. #include "sosemanuk.h"
  28. #include "arc4.h"
  29. #include "ccm.h"
  30. #include "gcm.h"
  31. #include "eax.h"
  32. #include "twofish.h"
  33. #include "serpent.h"
  34. #include "cast.h"
  35. #include "rc6.h"
  36. #include "mars.h"
  37. #include "des.h"
  38. #include "idea.h"
  39. #include "rc5.h"
  40. #include "tea.h"
  41. #include "skipjack.h"
  42. #include "cmac.h"
  43. #include "dmac.h"
  44. #include "blowfish.h"
  45. #include "seed.h"
  46. #include "wake.h"
  47. #include "seal.h"
  48. #include "crc.h"
  49. #include "adler32.h"
  50. #include "sha3.h"
  51. #include "hkdf.h"
  52. // Aggressive stack checking with VS2005 SP1 and above.
  53. #if (CRYPTOPP_MSC_VERSION >= 1410)
  54. # pragma strict_gs_check (on)
  55. #endif
  56. USING_NAMESPACE(CryptoPP)
  57. void RegisterFactories()
  58. {
  59. static bool s_registered = false;
  60. if (s_registered)
  61. return;
  62. RegisterDefaultFactoryFor<SimpleKeyAgreementDomain, DH>();
  63. RegisterDefaultFactoryFor<HashTransformation, CRC32>();
  64. RegisterDefaultFactoryFor<HashTransformation, Adler32>();
  65. RegisterDefaultFactoryFor<HashTransformation, Weak::MD5>();
  66. RegisterDefaultFactoryFor<HashTransformation, SHA1>();
  67. RegisterDefaultFactoryFor<HashTransformation, SHA224>();
  68. RegisterDefaultFactoryFor<HashTransformation, SHA256>();
  69. RegisterDefaultFactoryFor<HashTransformation, SHA384>();
  70. RegisterDefaultFactoryFor<HashTransformation, SHA512>();
  71. RegisterDefaultFactoryFor<HashTransformation, Whirlpool>();
  72. RegisterDefaultFactoryFor<HashTransformation, Tiger>();
  73. RegisterDefaultFactoryFor<HashTransformation, RIPEMD160>();
  74. RegisterDefaultFactoryFor<HashTransformation, RIPEMD320>();
  75. RegisterDefaultFactoryFor<HashTransformation, RIPEMD128>();
  76. RegisterDefaultFactoryFor<HashTransformation, RIPEMD256>();
  77. RegisterDefaultFactoryFor<HashTransformation, Weak::PanamaHash<LittleEndian> >();
  78. RegisterDefaultFactoryFor<HashTransformation, Weak::PanamaHash<BigEndian> >();
  79. RegisterDefaultFactoryFor<HashTransformation, SHA3_224>();
  80. RegisterDefaultFactoryFor<HashTransformation, SHA3_256>();
  81. RegisterDefaultFactoryFor<HashTransformation, SHA3_384>();
  82. RegisterDefaultFactoryFor<HashTransformation, SHA3_512>();
  83. RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<Weak::MD5> >();
  84. RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA1> >();
  85. RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<RIPEMD160> >();
  86. RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA224> >();
  87. RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA256> >();
  88. RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA384> >();
  89. RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA512> >();
  90. RegisterDefaultFactoryFor<MessageAuthenticationCode, TTMAC>();
  91. RegisterDefaultFactoryFor<MessageAuthenticationCode, VMAC<AES> >();
  92. RegisterDefaultFactoryFor<MessageAuthenticationCode, VMAC<AES, 64> >();
  93. RegisterDefaultFactoryFor<MessageAuthenticationCode, Weak::PanamaMAC<LittleEndian> >();
  94. RegisterDefaultFactoryFor<MessageAuthenticationCode, Weak::PanamaMAC<BigEndian> >();
  95. RegisterDefaultFactoryFor<MessageAuthenticationCode, CMAC<AES> >();
  96. RegisterDefaultFactoryFor<MessageAuthenticationCode, DMAC<AES> >();
  97. RegisterDefaultFactoryFor<MessageAuthenticationCode, CMAC<DES_EDE3> >();
  98. RegisterAsymmetricCipherDefaultFactories<RSAES<OAEP<SHA1> > >("RSA/OAEP-MGF1(SHA-1)");
  99. RegisterAsymmetricCipherDefaultFactories<DLIES<> >("DLIES(NoCofactorMultiplication, KDF2(SHA-1), XOR, HMAC(SHA-1), DHAES)");
  100. RegisterSignatureSchemeDefaultFactories<DSA>();
  101. RegisterSignatureSchemeDefaultFactories<DSA2<SHA224> >();
  102. RegisterSignatureSchemeDefaultFactories<DSA2<SHA256> >();
  103. RegisterSignatureSchemeDefaultFactories<DSA2<SHA384> >();
  104. RegisterSignatureSchemeDefaultFactories<DSA2<SHA512> >();
  105. RegisterSignatureSchemeDefaultFactories<NR<SHA1> >("NR(1363)/EMSA1(SHA-1)");
  106. RegisterSignatureSchemeDefaultFactories<GDSA<SHA1> >("DSA-1363/EMSA1(SHA-1)");
  107. RegisterSignatureSchemeDefaultFactories<RSASS<PKCS1v15, Weak::MD2> >("RSA/PKCS1-1.5(MD2)");
  108. RegisterSignatureSchemeDefaultFactories<RSASS<PKCS1v15, SHA1> >("RSA/PKCS1-1.5(SHA-1)");
  109. RegisterSignatureSchemeDefaultFactories<ESIGN<SHA1> >("ESIGN/EMSA5-MGF1(SHA-1)");
  110. RegisterSignatureSchemeDefaultFactories<RWSS<P1363_EMSA2, SHA1> >("RW/EMSA2(SHA-1)");
  111. RegisterSignatureSchemeDefaultFactories<RSASS<PSS, SHA1> >("RSA/PSS-MGF1(SHA-1)");
  112. RegisterSymmetricCipherDefaultFactories<SEAL<> >();
  113. RegisterSymmetricCipherDefaultFactories<ECB_Mode<SHACAL2> >();
  114. RegisterSymmetricCipherDefaultFactories<ECB_Mode<Camellia> >();
  115. RegisterSymmetricCipherDefaultFactories<ECB_Mode<TEA> >();
  116. RegisterSymmetricCipherDefaultFactories<ECB_Mode<XTEA> >();
  117. RegisterSymmetricCipherDefaultFactories<PanamaCipher<LittleEndian> >();
  118. RegisterSymmetricCipherDefaultFactories<PanamaCipher<BigEndian> >();
  119. RegisterSymmetricCipherDefaultFactories<ECB_Mode<AES> >();
  120. RegisterSymmetricCipherDefaultFactories<CBC_Mode<AES> >();
  121. RegisterSymmetricCipherDefaultFactories<CFB_Mode<AES> >();
  122. RegisterSymmetricCipherDefaultFactories<OFB_Mode<AES> >();
  123. RegisterSymmetricCipherDefaultFactories<CTR_Mode<AES> >();
  124. RegisterSymmetricCipherDefaultFactories<Salsa20>();
  125. RegisterSymmetricCipherDefaultFactories<XSalsa20>();
  126. RegisterSymmetricCipherDefaultFactories<Sosemanuk>();
  127. RegisterSymmetricCipherDefaultFactories<Weak::MARC4>();
  128. RegisterSymmetricCipherDefaultFactories<WAKE_OFB<LittleEndian> >();
  129. RegisterSymmetricCipherDefaultFactories<WAKE_OFB<BigEndian> >();
  130. RegisterSymmetricCipherDefaultFactories<SEAL<LittleEndian> >();
  131. RegisterAuthenticatedSymmetricCipherDefaultFactories<CCM<AES> >();
  132. RegisterAuthenticatedSymmetricCipherDefaultFactories<GCM<AES> >();
  133. RegisterAuthenticatedSymmetricCipherDefaultFactories<EAX<AES> >();
  134. RegisterSymmetricCipherDefaultFactories<CTR_Mode<Camellia> >();
  135. RegisterSymmetricCipherDefaultFactories<CTR_Mode<Twofish> >();
  136. RegisterSymmetricCipherDefaultFactories<CTR_Mode<Serpent> >();
  137. RegisterSymmetricCipherDefaultFactories<CTR_Mode<CAST256> >();
  138. RegisterSymmetricCipherDefaultFactories<CTR_Mode<RC6> >();
  139. RegisterSymmetricCipherDefaultFactories<ECB_Mode<MARS> >();
  140. RegisterSymmetricCipherDefaultFactories<CTR_Mode<MARS> >();
  141. RegisterSymmetricCipherDefaultFactories<CTR_Mode<SHACAL2> >();
  142. RegisterSymmetricCipherDefaultFactories<CTR_Mode<DES> >();
  143. RegisterSymmetricCipherDefaultFactories<CTR_Mode<DES_XEX3> >();
  144. RegisterSymmetricCipherDefaultFactories<CTR_Mode<DES_EDE3> >();
  145. RegisterSymmetricCipherDefaultFactories<CTR_Mode<IDEA> >();
  146. RegisterSymmetricCipherDefaultFactories<CTR_Mode<RC5> >();
  147. RegisterSymmetricCipherDefaultFactories<CTR_Mode<TEA> >();
  148. RegisterSymmetricCipherDefaultFactories<CTR_Mode<XTEA> >();
  149. RegisterSymmetricCipherDefaultFactories<CTR_Mode<CAST128> >();
  150. RegisterSymmetricCipherDefaultFactories<CTR_Mode<SKIPJACK> >();
  151. RegisterSymmetricCipherDefaultFactories<CTR_Mode<Blowfish> >();
  152. RegisterSymmetricCipherDefaultFactories<ECB_Mode<SEED> >();
  153. RegisterSymmetricCipherDefaultFactories<CTR_Mode<SEED> >();
  154. RegisterDefaultFactoryFor<KeyDerivationFunction, HKDF<SHA1> >();
  155. RegisterDefaultFactoryFor<KeyDerivationFunction, HKDF<SHA256> >();
  156. RegisterDefaultFactoryFor<KeyDerivationFunction, HKDF<SHA512> >();
  157. RegisterDefaultFactoryFor<KeyDerivationFunction, HKDF<Whirlpool> >();
  158. s_registered = true;
  159. }