93#if defined(BOTAN_HAS_COMMONCRYPTO)
111#if defined(BOTAN_HAS_AES)
112 if(algo ==
"AES-128") {
113 return std::make_unique<AES_128>();
116 if(algo ==
"AES-192") {
117 return std::make_unique<AES_192>();
120 if(algo ==
"AES-256") {
121 return std::make_unique<AES_256>();
125#if defined(BOTAN_HAS_ARIA)
126 if(algo ==
"ARIA-128") {
127 return std::make_unique<ARIA_128>();
130 if(algo ==
"ARIA-192") {
131 return std::make_unique<ARIA_192>();
134 if(algo ==
"ARIA-256") {
135 return std::make_unique<ARIA_256>();
139#if defined(BOTAN_HAS_SERPENT)
140 if(algo ==
"Serpent") {
141 return std::make_unique<Serpent>();
145#if defined(BOTAN_HAS_SHACAL2)
146 if(algo ==
"SHACAL2") {
147 return std::make_unique<SHACAL2>();
151#if defined(BOTAN_HAS_TWOFISH)
152 if(algo ==
"Twofish") {
153 return std::make_unique<Twofish>();
157#if defined(BOTAN_HAS_THREEFISH_512)
158 if(algo ==
"Threefish-512") {
159 return std::make_unique<Threefish_512>();
163#if defined(BOTAN_HAS_BLOWFISH)
164 if(algo ==
"Blowfish") {
165 return std::make_unique<Blowfish>();
169#if defined(BOTAN_HAS_CAMELLIA)
170 if(algo ==
"Camellia-128") {
171 return std::make_unique<Camellia_128>();
174 if(algo ==
"Camellia-192") {
175 return std::make_unique<Camellia_192>();
178 if(algo ==
"Camellia-256") {
179 return std::make_unique<Camellia_256>();
183#if defined(BOTAN_HAS_DES)
185 return std::make_unique<DES>();
188 if(algo ==
"TripleDES" || algo ==
"3DES" || algo ==
"DES-EDE") {
189 return std::make_unique<TripleDES>();
193#if defined(BOTAN_HAS_NOEKEON)
194 if(algo ==
"Noekeon") {
195 return std::make_unique<Noekeon>();
199#if defined(BOTAN_HAS_CAST_128)
200 if(algo ==
"CAST-128" || algo ==
"CAST5") {
201 return std::make_unique<CAST_128>();
205#if defined(BOTAN_HAS_IDEA)
207 return std::make_unique<IDEA>();
211#if defined(BOTAN_HAS_KUZNYECHIK)
212 if(algo ==
"Kuznyechik") {
213 return std::make_unique<Kuznyechik>();
217#if defined(BOTAN_HAS_SEED)
219 return std::make_unique<SEED>();
223#if defined(BOTAN_HAS_SM4)
225 return std::make_unique<SM4>();
231#if defined(BOTAN_HAS_GOST_28147_89)
233 return std::make_unique<GOST_28147_89>(req.
arg(0,
"R3411_94_TestParam"));
237#if defined(BOTAN_HAS_CASCADE)
243 return std::make_unique<Cascade_Cipher>(std::move(c1), std::move(c2));
248#if defined(BOTAN_HAS_LION)
255 return std::make_unique<Lion>(std::move(hash), std::move(stream),
block_size);