92#if defined(BOTAN_HAS_COMMONCRYPTO)
110#if defined(BOTAN_HAS_AES)
111 if(algo ==
"AES-128") {
112 return std::make_unique<AES_128>();
115 if(algo ==
"AES-192") {
116 return std::make_unique<AES_192>();
119 if(algo ==
"AES-256") {
120 return std::make_unique<AES_256>();
124#if defined(BOTAN_HAS_ARIA)
125 if(algo ==
"ARIA-128") {
126 return std::make_unique<ARIA_128>();
129 if(algo ==
"ARIA-192") {
130 return std::make_unique<ARIA_192>();
133 if(algo ==
"ARIA-256") {
134 return std::make_unique<ARIA_256>();
138#if defined(BOTAN_HAS_SERPENT)
139 if(algo ==
"Serpent") {
140 return std::make_unique<Serpent>();
144#if defined(BOTAN_HAS_SHACAL2)
145 if(algo ==
"SHACAL2") {
146 return std::make_unique<SHACAL2>();
150#if defined(BOTAN_HAS_TWOFISH)
151 if(algo ==
"Twofish") {
152 return std::make_unique<Twofish>();
156#if defined(BOTAN_HAS_THREEFISH_512)
157 if(algo ==
"Threefish-512") {
158 return std::make_unique<Threefish_512>();
162#if defined(BOTAN_HAS_BLOWFISH)
163 if(algo ==
"Blowfish") {
164 return std::make_unique<Blowfish>();
168#if defined(BOTAN_HAS_CAMELLIA)
169 if(algo ==
"Camellia-128") {
170 return std::make_unique<Camellia_128>();
173 if(algo ==
"Camellia-192") {
174 return std::make_unique<Camellia_192>();
177 if(algo ==
"Camellia-256") {
178 return std::make_unique<Camellia_256>();
182#if defined(BOTAN_HAS_DES)
184 return std::make_unique<DES>();
187 if(algo ==
"TripleDES" || algo ==
"3DES" || algo ==
"DES-EDE") {
188 return std::make_unique<TripleDES>();
192#if defined(BOTAN_HAS_NOEKEON)
193 if(algo ==
"Noekeon") {
194 return std::make_unique<Noekeon>();
198#if defined(BOTAN_HAS_CAST_128)
199 if(algo ==
"CAST-128" || algo ==
"CAST5") {
200 return std::make_unique<CAST_128>();
204#if defined(BOTAN_HAS_IDEA)
206 return std::make_unique<IDEA>();
210#if defined(BOTAN_HAS_KUZNYECHIK)
211 if(algo ==
"Kuznyechik") {
212 return std::make_unique<Kuznyechik>();
216#if defined(BOTAN_HAS_SEED)
218 return std::make_unique<SEED>();
222#if defined(BOTAN_HAS_SM4)
224 return std::make_unique<SM4>();
230#if defined(BOTAN_HAS_GOST_28147_89)
232 return std::make_unique<GOST_28147_89>(req.
arg(0,
"R3411_94_TestParam"));
236#if defined(BOTAN_HAS_CASCADE)
242 return std::make_unique<Cascade_Cipher>(std::move(c1), std::move(c2));
247#if defined(BOTAN_HAS_LION)
254 return std::make_unique<Lion>(std::move(hash), std::move(stream),
block_size);