8#include <botan/internal/core_engine.h>
9#include <botan/scan_name.h>
10#include <botan/algo_factory.h>
12#if defined(BOTAN_HAS_AES)
13 #include <botan/aes.h>
16#if defined(BOTAN_HAS_BLOWFISH)
17 #include <botan/blowfish.h>
20#if defined(BOTAN_HAS_CAMELLIA)
21 #include <botan/camellia.h>
24#if defined(BOTAN_HAS_CAST)
25 #include <botan/cast128.h>
26 #include <botan/cast256.h>
29#if defined(BOTAN_HAS_CASCADE)
30 #include <botan/cascade.h>
33#if defined(BOTAN_HAS_DES)
34 #include <botan/des.h>
35 #include <botan/desx.h>
38#if defined(BOTAN_HAS_GOST_28147_89)
39 #include <botan/gost_28147.h>
42#if defined(BOTAN_HAS_IDEA)
43 #include <botan/idea.h>
46#if defined(BOTAN_HAS_KASUMI)
47 #include <botan/kasumi.h>
50#if defined(BOTAN_HAS_LION)
51 #include <botan/lion.h>
54#if defined(BOTAN_HAS_LUBY_RACKOFF)
55 #include <botan/lubyrack.h>
58#if defined(BOTAN_HAS_MARS)
59 #include <botan/mars.h>
62#if defined(BOTAN_HAS_MISTY1)
63 #include <botan/misty1.h>
66#if defined(BOTAN_HAS_NOEKEON)
67 #include <botan/noekeon.h>
70#if defined(BOTAN_HAS_RC2)
71 #include <botan/rc2.h>
74#if defined(BOTAN_HAS_RC5)
75 #include <botan/rc5.h>
78#if defined(BOTAN_HAS_RC6)
79 #include <botan/rc6.h>
82#if defined(BOTAN_HAS_SAFER)
83 #include <botan/safer_sk.h>
86#if defined(BOTAN_HAS_SEED)
87 #include <botan/seed.h>
90#if defined(BOTAN_HAS_SERPENT)
91 #include <botan/serpent.h>
94#if defined(BOTAN_HAS_SKIPJACK)
95 #include <botan/skipjack.h>
98#if defined(BOTAN_HAS_SQUARE)
99 #include <botan/square.h>
102#if defined(BOTAN_HAS_TEA)
103 #include <botan/tea.h>
106#if defined(BOTAN_HAS_TWOFISH)
107 #include <botan/twofish.h>
110#if defined(BOTAN_HAS_XTEA)
111 #include <botan/xtea.h>
123#if defined(BOTAN_HAS_AES)
132#if defined(BOTAN_HAS_BLOWFISH)
137#if defined(BOTAN_HAS_CAMELLIA)
138 if(request.
algo_name() ==
"Camellia-128")
140 if(request.
algo_name() ==
"Camellia-192")
142 if(request.
algo_name() ==
"Camellia-256")
146#if defined(BOTAN_HAS_CAST)
153#if defined(BOTAN_HAS_DES)
162#if defined(BOTAN_HAS_GOST_28147_89)
163 if(request.
algo_name() ==
"GOST-28147-89")
167#if defined(BOTAN_HAS_IDEA)
172#if defined(BOTAN_HAS_KASUMI)
177#if defined(BOTAN_HAS_MARS)
182#if defined(BOTAN_HAS_MISTY1)
187#if defined(BOTAN_HAS_NOEKEON)
192#if defined(BOTAN_HAS_RC2)
197#if defined(BOTAN_HAS_RC5)
202#if defined(BOTAN_HAS_RC6)
207#if defined(BOTAN_HAS_SAFER)
212#if defined(BOTAN_HAS_SEED)
217#if defined(BOTAN_HAS_SERPENT)
222#if defined(BOTAN_HAS_SKIPJACK)
227#if defined(BOTAN_HAS_SQUARE)
232#if defined(BOTAN_HAS_TEA)
237#if defined(BOTAN_HAS_TWOFISH)
242#if defined(BOTAN_HAS_XTEA)
247#if defined(BOTAN_HAS_LUBY_RACKOFF)
257#if defined(BOTAN_HAS_CASCADE)
268#if defined(BOTAN_HAS_LION)
279 if(!hash || !stream_cipher)
282 return new Lion(hash->
clone(), stream_cipher->
clone(), block_size);
const HashFunction * prototype_hash_function(const std::string &algo_spec, const std::string &provider="")
const BlockCipher * prototype_block_cipher(const std::string &algo_spec, const std::string &provider="")
const StreamCipher * prototype_stream_cipher(const std::string &algo_spec, const std::string &provider="")
virtual BlockCipher * clone() const =0
Cascade_Cipher(BlockCipher *cipher1, BlockCipher *cipher2)
BlockCipher * find_block_cipher(const SCAN_Name &, Algorithm_Factory &) const
GOST_28147_89(const GOST_28147_89_Params ¶ms)
virtual HashFunction * clone() const =0
Lion(HashFunction *hash, StreamCipher *cipher, size_t block_size)
LubyRackoff(HashFunction *hash)
std::string arg(size_t i) const
std::string algo_name() const
size_t arg_as_integer(size_t i, size_t def_value) const
bool arg_count_between(size_t lower, size_t upper) const
virtual StreamCipher * clone() const =0