97#if defined(BOTAN_HAS_COMMONCRYPTO)
115#if defined(BOTAN_HAS_AES)
116 if(algo ==
"AES-128") {
117 return std::make_unique<AES_128>();
120 if(algo ==
"AES-192") {
121 return std::make_unique<AES_192>();
124 if(algo ==
"AES-256") {
125 return std::make_unique<AES_256>();
129#if defined(BOTAN_HAS_ARIA)
130 if(algo ==
"ARIA-128") {
131 return std::make_unique<ARIA_128>();
134 if(algo ==
"ARIA-192") {
135 return std::make_unique<ARIA_192>();
138 if(algo ==
"ARIA-256") {
139 return std::make_unique<ARIA_256>();
143#if defined(BOTAN_HAS_SERPENT)
144 if(algo ==
"Serpent") {
145 return std::make_unique<Serpent>();
149#if defined(BOTAN_HAS_SHACAL2)
150 if(algo ==
"SHACAL2") {
151 return std::make_unique<SHACAL2>();
155#if defined(BOTAN_HAS_TWOFISH)
156 if(algo ==
"Twofish") {
157 return std::make_unique<Twofish>();
161#if defined(BOTAN_HAS_THREEFISH_512)
162 if(algo ==
"Threefish-512") {
163 return std::make_unique<Threefish_512>();
167#if defined(BOTAN_HAS_BLOWFISH)
168 if(algo ==
"Blowfish") {
169 return std::make_unique<Blowfish>();
173#if defined(BOTAN_HAS_CAMELLIA)
174 if(algo ==
"Camellia-128") {
175 return std::make_unique<Camellia_128>();
178 if(algo ==
"Camellia-192") {
179 return std::make_unique<Camellia_192>();
182 if(algo ==
"Camellia-256") {
183 return std::make_unique<Camellia_256>();
187#if defined(BOTAN_HAS_DES)
189 return std::make_unique<DES>();
192 if(algo ==
"TripleDES" || algo ==
"3DES" || algo ==
"DES-EDE") {
193 return std::make_unique<TripleDES>();
197#if defined(BOTAN_HAS_NOEKEON)
198 if(algo ==
"Noekeon") {
199 return std::make_unique<Noekeon>();
203#if defined(BOTAN_HAS_CAST_128)
204 if(algo ==
"CAST-128" || algo ==
"CAST5") {
205 return std::make_unique<CAST_128>();
209#if defined(BOTAN_HAS_IDEA)
211 return std::make_unique<IDEA>();
215#if defined(BOTAN_HAS_KUZNYECHIK)
216 if(algo ==
"Kuznyechik") {
217 return std::make_unique<Kuznyechik>();
221#if defined(BOTAN_HAS_SEED)
223 return std::make_unique<SEED>();
227#if defined(BOTAN_HAS_SM4)
229 return std::make_unique<SM4>();
235#if defined(BOTAN_HAS_GOST_28147_89)
237 return std::make_unique<GOST_28147_89>(req.
arg(0,
"R3411_94_TestParam"));
241#if defined(BOTAN_HAS_CASCADE)
247 return std::make_unique<Cascade_Cipher>(std::move(c1), std::move(c2));
252#if defined(BOTAN_HAS_LION)
259 return std::make_unique<Lion>(std::move(hash), std::move(stream),
block_size);