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);
size_t arg_as_integer(size_t i, size_t def_value) const
virtual BlockCipher * clone() const =0
const BlockCipher * prototype_block_cipher(const std::string &algo_spec, const std::string &provider="")
virtual HashFunction * clone() const =0
const HashFunction * prototype_hash_function(const std::string &algo_spec, const std::string &provider="")
std::string arg(size_t i) const
virtual StreamCipher * clone() const =0
bool arg_count_between(size_t lower, size_t upper) const
BlockCipher * find_block_cipher(const SCAN_Name &, Algorithm_Factory &) const
std::string algo_name() const
const StreamCipher * prototype_stream_cipher(const std::string &algo_spec, const std::string &provider="")