1 // regtest3.cpp - originally written and placed in the public domain by Wei Dai 2 // regtest.cpp split into 3 files due to OOM kills by JW 3 // in April 2017. A second split occurred in July 2018. 4 5 #define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1 6 7 #include "cryptlib.h" 8 #include "factory.h" 9 #include "bench.h" 10 #include "cpu.h" 11 12 #include "modes.h" 13 #include "aria.h" 14 #include "seed.h" 15 #include "hight.h" 16 #include "camellia.h" 17 #include "shacal2.h" 18 #include "tea.h" 19 #include "aes.h" 20 #include "tiger.h" 21 #include "ccm.h" 22 #include "gcm.h" 23 #include "eax.h" 24 #include "xts.h" 25 #include "twofish.h" 26 #include "serpent.h" 27 #include "cast.h" 28 #include "rc6.h" 29 #include "mars.h" 30 #include "kalyna.h" 31 #include "threefish.h" 32 #include "cham.h" 33 #include "lea.h" 34 #include "simeck.h" 35 #include "simon.h" 36 #include "speck.h" 37 #include "sm4.h" 38 #include "des.h" 39 #include "idea.h" 40 #include "rc5.h" 41 #include "skipjack.h" 42 #include "blowfish.h" 43 #include "chachapoly.h" 44 45 // Aggressive stack checking with VS2005 SP1 and above. 46 #if (_MSC_FULL_VER >= 140050727) 47 # pragma strict_gs_check (on) 48 #endif 49 50 #if CRYPTOPP_MSC_VERSION 51 # pragma warning(disable: 4505 4355) 52 #endif 53 USING_NAMESPACE(CryptoPP)54USING_NAMESPACE(CryptoPP) 55 56 // Shared key ciphers 57 void RegisterFactories4() 58 { 59 RegisterSymmetricCipherDefaultFactories<ECB_Mode<SHACAL2> >(); 60 RegisterSymmetricCipherDefaultFactories<ECB_Mode<ARIA> >(); 61 RegisterSymmetricCipherDefaultFactories<ECB_Mode<HIGHT> >(); 62 RegisterSymmetricCipherDefaultFactories<CBC_Mode<HIGHT> >(); 63 RegisterSymmetricCipherDefaultFactories<CTR_Mode<HIGHT> >(); 64 RegisterSymmetricCipherDefaultFactories<ECB_Mode<Camellia> >(); 65 RegisterSymmetricCipherDefaultFactories<ECB_Mode<TEA> >(); 66 RegisterSymmetricCipherDefaultFactories<ECB_Mode<XTEA> >(); 67 RegisterSymmetricCipherDefaultFactories<ECB_Mode<AES> >(); 68 RegisterSymmetricCipherDefaultFactories<CBC_Mode<AES> >(); 69 RegisterSymmetricCipherDefaultFactories<CFB_Mode<AES> >(); 70 RegisterSymmetricCipherDefaultFactories<OFB_Mode<AES> >(); 71 RegisterSymmetricCipherDefaultFactories<CTR_Mode<AES> >(); 72 RegisterSymmetricCipherDefaultFactories<XTS_Mode<AES> >(); 73 74 RegisterAuthenticatedSymmetricCipherDefaultFactories<CCM<AES> >(); 75 RegisterAuthenticatedSymmetricCipherDefaultFactories<GCM<AES> >(); 76 RegisterAuthenticatedSymmetricCipherDefaultFactories<EAX<AES> >(); 77 RegisterAuthenticatedSymmetricCipherDefaultFactories<ChaCha20Poly1305>(); 78 RegisterAuthenticatedSymmetricCipherDefaultFactories<XChaCha20Poly1305>(); 79 80 RegisterSymmetricCipherDefaultFactories<CBC_Mode<ARIA> >(); // For test vectors 81 RegisterSymmetricCipherDefaultFactories<CTR_Mode<ARIA> >(); 82 RegisterSymmetricCipherDefaultFactories<CTR_Mode<Camellia> >(); 83 RegisterSymmetricCipherDefaultFactories<CTR_Mode<Twofish> >(); 84 RegisterSymmetricCipherDefaultFactories<CTR_Mode<Serpent> >(); 85 RegisterSymmetricCipherDefaultFactories<CTR_Mode<CAST256> >(); 86 RegisterSymmetricCipherDefaultFactories<CTR_Mode<RC6> >(); 87 RegisterSymmetricCipherDefaultFactories<ECB_Mode<MARS> >(); 88 RegisterSymmetricCipherDefaultFactories<CTR_Mode<MARS> >(); 89 RegisterSymmetricCipherDefaultFactories<CTR_Mode<SHACAL2> >(); 90 RegisterSymmetricCipherDefaultFactories<CTR_Mode<DES> >(); 91 RegisterSymmetricCipherDefaultFactories<CTR_Mode<DES_XEX3> >(); 92 RegisterSymmetricCipherDefaultFactories<CTR_Mode<DES_EDE3> >(); 93 RegisterSymmetricCipherDefaultFactories<CTR_Mode<IDEA> >(); 94 RegisterSymmetricCipherDefaultFactories<CTR_Mode<RC5> >(); 95 RegisterSymmetricCipherDefaultFactories<CTR_Mode<TEA> >(); 96 RegisterSymmetricCipherDefaultFactories<CTR_Mode<XTEA> >(); 97 RegisterSymmetricCipherDefaultFactories<CTR_Mode<CAST128> >(); 98 RegisterSymmetricCipherDefaultFactories<ECB_Mode<SKIPJACK> >(); 99 RegisterSymmetricCipherDefaultFactories<CTR_Mode<SKIPJACK> >(); 100 RegisterSymmetricCipherDefaultFactories<CBC_Mode<SKIPJACK> >(); 101 RegisterSymmetricCipherDefaultFactories<CTR_Mode<Blowfish> >(); 102 RegisterSymmetricCipherDefaultFactories<ECB_Mode<SEED> >(); 103 RegisterSymmetricCipherDefaultFactories<CTR_Mode<SEED> >(); 104 105 RegisterSymmetricCipherDefaultFactories<ECB_Mode<Kalyna128> >(); // Test Vectors 106 RegisterSymmetricCipherDefaultFactories<CBC_Mode<Kalyna128> >(); // Test Vectors 107 RegisterSymmetricCipherDefaultFactories<ECB_Mode<Kalyna256> >(); // Test Vectors 108 RegisterSymmetricCipherDefaultFactories<CBC_Mode<Kalyna256> >(); // Test Vectors 109 RegisterSymmetricCipherDefaultFactories<ECB_Mode<Kalyna512> >(); // Test Vectors 110 RegisterSymmetricCipherDefaultFactories<CBC_Mode<Kalyna512> >(); // Test Vectors 111 RegisterSymmetricCipherDefaultFactories<CTR_Mode<Kalyna128> >(); // Benchmarks 112 RegisterSymmetricCipherDefaultFactories<CTR_Mode<Kalyna256> >(); // Benchmarks 113 RegisterSymmetricCipherDefaultFactories<CTR_Mode<Kalyna512> >(); // Benchmarks 114 115 RegisterSymmetricCipherDefaultFactories<ECB_Mode<Threefish256> >(); // Test Vectors 116 RegisterSymmetricCipherDefaultFactories<CBC_Mode<Threefish256> >(); // Test Vectors 117 RegisterSymmetricCipherDefaultFactories<ECB_Mode<Threefish512> >(); // Test Vectors 118 RegisterSymmetricCipherDefaultFactories<CBC_Mode<Threefish512> >(); // Test Vectors 119 RegisterSymmetricCipherDefaultFactories<ECB_Mode<Threefish1024> >(); // Test Vectors 120 RegisterSymmetricCipherDefaultFactories<CBC_Mode<Threefish1024> >(); // Test Vectors 121 RegisterSymmetricCipherDefaultFactories<CTR_Mode<Threefish256> >(); // Benchmarks 122 RegisterSymmetricCipherDefaultFactories<CTR_Mode<Threefish512> >(); // Benchmarks 123 RegisterSymmetricCipherDefaultFactories<CTR_Mode<Threefish1024> >(); // Benchmarks 124 125 RegisterSymmetricCipherDefaultFactories<ECB_Mode<CHAM64> >(); // Test Vectors 126 RegisterSymmetricCipherDefaultFactories<ECB_Mode<CHAM128> >(); // Test Vectors 127 RegisterSymmetricCipherDefaultFactories<CTR_Mode<CHAM64> >(); // Benchmarks 128 RegisterSymmetricCipherDefaultFactories<CTR_Mode<CHAM128> >(); // Benchmarks 129 130 RegisterSymmetricCipherDefaultFactories<ECB_Mode<LEA> >(); // Test Vectors 131 RegisterSymmetricCipherDefaultFactories<CBC_Mode<LEA> >(); // Test Vectors 132 RegisterSymmetricCipherDefaultFactories<CTR_Mode<LEA> >(); // Benchmarks 133 134 RegisterSymmetricCipherDefaultFactories<ECB_Mode<SIMECK32> >(); // Test Vectors 135 RegisterSymmetricCipherDefaultFactories<CTR_Mode<SIMECK32> >(); // Benchmarks 136 RegisterSymmetricCipherDefaultFactories<ECB_Mode<SIMECK64> >(); // Test Vectors 137 RegisterSymmetricCipherDefaultFactories<CTR_Mode<SIMECK64> >(); // Benchmarks 138 139 RegisterSymmetricCipherDefaultFactories<ECB_Mode<SIMON64> >(); // Test Vectors 140 RegisterSymmetricCipherDefaultFactories<CBC_Mode<SIMON64> >(); // Test Vectors 141 RegisterSymmetricCipherDefaultFactories<ECB_Mode<SIMON128> >(); // Test Vectors 142 RegisterSymmetricCipherDefaultFactories<CBC_Mode<SIMON128> >(); // Test Vectors 143 RegisterSymmetricCipherDefaultFactories<CTR_Mode<SIMON64> >(); // Benchmarks 144 RegisterSymmetricCipherDefaultFactories<CTR_Mode<SIMON128> >(); // Benchmarks 145 146 RegisterSymmetricCipherDefaultFactories<ECB_Mode<SPECK64> >(); // Test Vectors 147 RegisterSymmetricCipherDefaultFactories<CBC_Mode<SPECK64> >(); // Test Vectors 148 RegisterSymmetricCipherDefaultFactories<ECB_Mode<SPECK128> >(); // Test Vectors 149 RegisterSymmetricCipherDefaultFactories<CBC_Mode<SPECK128> >(); // Test Vectors 150 RegisterSymmetricCipherDefaultFactories<CTR_Mode<SPECK64> >(); // Benchmarks 151 RegisterSymmetricCipherDefaultFactories<CTR_Mode<SPECK128> >(); // Benchmarks 152 153 RegisterSymmetricCipherDefaultFactories<ECB_Mode<SM4> >(); // Test Vectors 154 RegisterSymmetricCipherDefaultFactories<CBC_Mode<SM4> >(); // Test Vectors 155 RegisterSymmetricCipherDefaultFactories<CTR_Mode<SM4> >(); // Benchmarks 156 } 157