8#ifndef BOTAN_ALGORITHM_FACTORY_H__
9#define BOTAN_ALGORITHM_FACTORY_H__
11#include <botan/types.h>
62 std::vector<std::string>
providers_of(
const std::string& algo_spec);
69 const std::string& provider);
78 const std::string& provider =
"");
86 const std::string& provider =
"");
101 const std::string& provider =
"");
109 const std::string& provider =
"");
124 const std::string& provider =
"");
132 const std::string& provider =
"");
147 const std::string& provider =
"");
155 const std::string& provider =
"");
162 const std::string& provider);
170 const std::string& provider =
"");
178 const std::string& provider =
"");
214 Engine* get_engine_n(
size_t n)
const;
216 std::vector<Engine*> engines;
218 Algorithm_Cache<BlockCipher>* block_cipher_cache;
219 Algorithm_Cache<StreamCipher>* stream_cipher_cache;
220 Algorithm_Cache<HashFunction>* hash_cache;
221 Algorithm_Cache<MessageAuthenticationCode>* mac_cache;
222 Algorithm_Cache<PBKDF>* pbkdf_cache;
Engine_Iterator(const Algorithm_Factory &a)
StreamCipher * make_stream_cipher(const std::string &algo_spec, const std::string &provider="")
void add_hash_function(HashFunction *algo, const std::string &provider)
std::vector< std::string > providers_of(const std::string &algo_spec)
PBKDF * make_pbkdf(const std::string &algo_spec, const std::string &provider="")
void set_preferred_provider(const std::string &algo_spec, const std::string &provider)
const HashFunction * prototype_hash_function(const std::string &algo_spec, const std::string &provider="")
HashFunction * make_hash_function(const std::string &algo_spec, const std::string &provider="")
void add_mac(MessageAuthenticationCode *algo, const std::string &provider)
void add_pbkdf(PBKDF *algo, const std::string &provider)
void add_stream_cipher(StreamCipher *algo, const std::string &provider)
void add_engine(Engine *engine)
MessageAuthenticationCode * make_mac(const std::string &algo_spec, const std::string &provider="")
const BlockCipher * prototype_block_cipher(const std::string &algo_spec, const std::string &provider="")
const MessageAuthenticationCode * prototype_mac(const std::string &algo_spec, const std::string &provider="")
void add_block_cipher(BlockCipher *algo, const std::string &provider)
const PBKDF * prototype_pbkdf(const std::string &algo_spec, const std::string &provider="")
const StreamCipher * prototype_stream_cipher(const std::string &algo_spec, const std::string &provider="")
Algorithm_Factory(Mutex_Factory &mf)
BlockCipher * make_block_cipher(const std::string &algo_spec, const std::string &provider="")