8 #include <botan/internal/core_engine.h> 9 #include <botan/scan_name.h> 10 #include <botan/algo_factory.h> 13 #if defined(BOTAN_HAS_ADLER32) 14 #include <botan/adler32.h> 17 #if defined(BOTAN_HAS_CRC24) 18 #include <botan/crc24.h> 21 #if defined(BOTAN_HAS_CRC32) 22 #include <botan/crc32.h> 25 #if defined(BOTAN_HAS_BMW_512) 26 #include <botan/bmw_512.h> 29 #if defined(BOTAN_HAS_GOST_34_11) 30 #include <botan/gost_3411.h> 33 #if defined(BOTAN_HAS_HAS_160) 34 #include <botan/has160.h> 37 #if defined(BOTAN_HAS_KECCAK) 38 #include <botan/keccak.h> 41 #if defined(BOTAN_HAS_MD2) 42 #include <botan/md2.h> 45 #if defined(BOTAN_HAS_MD4) 46 #include <botan/md4.h> 49 #if defined(BOTAN_HAS_MD5) 50 #include <botan/md5.h> 53 #if defined(BOTAN_HAS_RIPEMD_128) 54 #include <botan/rmd128.h> 57 #if defined(BOTAN_HAS_RIPEMD_160) 58 #include <botan/rmd160.h> 61 #if defined(BOTAN_HAS_SHA1) 62 #include <botan/sha160.h> 65 #if defined(BOTAN_HAS_SHA2_32) 66 #include <botan/sha2_32.h> 69 #if defined(BOTAN_HAS_SHA2_64) 70 #include <botan/sha2_64.h> 73 #if defined(BOTAN_HAS_SKEIN_512) 74 #include <botan/skein_512.h> 77 #if defined(BOTAN_HAS_TIGER) 78 #include <botan/tiger.h> 81 #if defined(BOTAN_HAS_WHIRLPOOL) 82 #include <botan/whrlpool.h> 85 #if defined(BOTAN_HAS_PARALLEL_HASH) 86 #include <botan/par_hash.h> 89 #if defined(BOTAN_HAS_COMB4P) 90 #include <botan/comb4p.h> 101 #if defined(BOTAN_HAS_ADLER32) 106 #if defined(BOTAN_HAS_CRC24) 111 #if defined(BOTAN_HAS_CRC32) 116 #if defined(BOTAN_HAS_BMW_512) 121 #if defined(BOTAN_HAS_GOST_34_11) 126 #if defined(BOTAN_HAS_HAS_160) 131 #if defined(BOTAN_HAS_KECCAK) 136 #if defined(BOTAN_HAS_MD2) 141 #if defined(BOTAN_HAS_MD4) 146 #if defined(BOTAN_HAS_MD5) 151 #if defined(BOTAN_HAS_RIPEMD_128) 156 #if defined(BOTAN_HAS_RIPEMD_160) 161 #if defined(BOTAN_HAS_SHA1) 166 #if defined(BOTAN_HAS_SHA2_32) 173 #if defined(BOTAN_HAS_SHA2_64) 180 #if defined(BOTAN_HAS_TIGER) 186 #if defined(BOTAN_HAS_SKEIN_512) 192 #if defined(BOTAN_HAS_WHIRLPOOL) 197 #if defined(BOTAN_HAS_COMB4P) 208 #if defined(BOTAN_HAS_PARALLEL_HASH) 212 std::vector<const HashFunction*> hash_prototypes;
217 for(
size_t i = 0; i != request.
arg_count(); ++i)
223 hash_prototypes.push_back(hash);
226 std::vector<HashFunction*> hashes;
227 for(
size_t i = 0; i != hash_prototypes.size(); ++i)
228 hashes.push_back(hash_prototypes[i]->clone());
size_t arg_as_integer(size_t i, size_t def_value) const
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
std::string algo_name() const
HashFunction * find_hash(const SCAN_Name &request, Algorithm_Factory &) const