Botan
1.10.9
|
#include <algo_factory.h>
Classes | |
class | Engine_Iterator |
Public Member Functions | |
void | add_block_cipher (BlockCipher *algo, const std::string &provider) |
void | add_engine (Engine *engine) |
void | add_hash_function (HashFunction *algo, 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) |
Algorithm_Factory (Mutex_Factory &mf) | |
void | clear_caches () |
BlockCipher * | make_block_cipher (const std::string &algo_spec, const std::string &provider="") |
HashFunction * | make_hash_function (const std::string &algo_spec, const std::string &provider="") |
MessageAuthenticationCode * | make_mac (const std::string &algo_spec, const std::string &provider="") |
PBKDF * | make_pbkdf (const std::string &algo_spec, const std::string &provider="") |
StreamCipher * | make_stream_cipher (const std::string &algo_spec, const std::string &provider="") |
const BlockCipher * | prototype_block_cipher (const std::string &algo_spec, const std::string &provider="") |
const HashFunction * | prototype_hash_function (const std::string &algo_spec, const std::string &provider="") |
const MessageAuthenticationCode * | prototype_mac (const std::string &algo_spec, 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="") |
std::vector< std::string > | providers_of (const std::string &algo_spec) |
void | set_preferred_provider (const std::string &algo_spec, const std::string &provider) |
~Algorithm_Factory () | |
Friends | |
class | Engine_Iterator |
Algorithm Factory
Definition at line 34 of file algo_factory.h.
Botan::Algorithm_Factory::Algorithm_Factory | ( | Mutex_Factory & | mf | ) |
Constructor
mf | a mutex factory |
Definition at line 97 of file algo_factory.cpp.
References Botan::Mutex_Factory::make().
Botan::Algorithm_Factory::~Algorithm_Factory | ( | ) |
Destructor
Definition at line 109 of file algo_factory.cpp.
void Botan::Algorithm_Factory::add_block_cipher | ( | BlockCipher * | algo, |
const std::string & | provider | ||
) |
algo | the algorithm to add |
provider | the provider of this algorithm |
Definition at line 309 of file algo_factory.cpp.
References Botan::Algorithm::name().
void Botan::Algorithm_Factory::add_engine | ( | Engine * | engine | ) |
engine | to add (Algorithm_Factory takes ownership) |
Definition at line 129 of file algo_factory.cpp.
References clear_caches().
Referenced by Botan::Library_State::initialize().
void Botan::Algorithm_Factory::add_hash_function | ( | HashFunction * | algo, |
const std::string & | provider | ||
) |
algo | the algorithm to add |
provider | the provider of this algorithm |
Definition at line 327 of file algo_factory.cpp.
References Botan::Algorithm::name().
void Botan::Algorithm_Factory::add_mac | ( | MessageAuthenticationCode * | algo, |
const std::string & | provider | ||
) |
algo | the algorithm to add |
provider | the provider of this algorithm |
Definition at line 336 of file algo_factory.cpp.
References Botan::MessageAuthenticationCode::name().
void Botan::Algorithm_Factory::add_pbkdf | ( | PBKDF * | algo, |
const std::string & | provider | ||
) |
algo | the algorithm to add |
provider | the provider of this algorithm |
Definition at line 345 of file algo_factory.cpp.
References Botan::Algorithm::name().
void Botan::Algorithm_Factory::add_stream_cipher | ( | StreamCipher * | algo, |
const std::string & | provider | ||
) |
algo | the algorithm to add |
provider | the provider of this algorithm |
Definition at line 318 of file algo_factory.cpp.
References Botan::Algorithm::name().
void Botan::Algorithm_Factory::clear_caches | ( | ) |
Clear out any cached objects
Definition at line 120 of file algo_factory.cpp.
Referenced by add_engine().
BlockCipher * Botan::Algorithm_Factory::make_block_cipher | ( | const std::string & | algo_spec, |
const std::string & | provider = "" |
||
) |
algo_spec | the algorithm we want |
provider | the provider we would like to use |
Definition at line 250 of file algo_factory.cpp.
References Botan::BlockCipher::clone(), and prototype_block_cipher().
Referenced by Botan::Core_Engine::find_mac(), and Botan::get_block_cipher().
HashFunction * Botan::Algorithm_Factory::make_hash_function | ( | const std::string & | algo_spec, |
const std::string & | provider = "" |
||
) |
algo_spec | the algorithm we want |
provider | the provider we would like to use |
Definition at line 274 of file algo_factory.cpp.
References Botan::HashFunction::clone(), and prototype_hash_function().
Referenced by Botan::Core_Engine::find_mac(), Botan::Core_Engine::find_pbkdf(), Botan::generate_dsa_primes(), Botan::get_eme(), Botan::get_emsa(), Botan::get_hash(), Botan::get_kdf(), and Botan::Hash_Filter::Hash_Filter().
MessageAuthenticationCode * Botan::Algorithm_Factory::make_mac | ( | const std::string & | algo_spec, |
const std::string & | provider = "" |
||
) |
algo_spec | the algorithm we want |
provider | the provider we would like to use |
Definition at line 286 of file algo_factory.cpp.
References Botan::MessageAuthenticationCode::clone(), and prototype_mac().
Referenced by Botan::Core_Engine::find_pbkdf(), Botan::get_mac(), Botan::MAC_Filter::MAC_Filter(), Botan::Record_Writer::set_keys(), and Botan::Record_Reader::set_keys().
PBKDF * Botan::Algorithm_Factory::make_pbkdf | ( | const std::string & | algo_spec, |
const std::string & | provider = "" |
||
) |
algo_spec | the algorithm we want |
provider | the provider we would like to use |
Definition at line 298 of file algo_factory.cpp.
References Botan::PBKDF::clone(), and prototype_pbkdf().
Referenced by Botan::get_pbkdf().
StreamCipher * Botan::Algorithm_Factory::make_stream_cipher | ( | const std::string & | algo_spec, |
const std::string & | provider = "" |
||
) |
algo_spec | the algorithm we want |
provider | the provider we would like to use |
Definition at line 262 of file algo_factory.cpp.
References Botan::StreamCipher::clone(), and prototype_stream_cipher().
Referenced by Botan::get_stream_cipher(), and Botan::StreamCipher_Filter::StreamCipher_Filter().
const BlockCipher * Botan::Algorithm_Factory::prototype_block_cipher | ( | const std::string & | algo_spec, |
const std::string & | provider = "" |
||
) |
algo_spec | the algorithm we want |
provider | the provider we would like to use |
Definition at line 193 of file algo_factory.cpp.
Referenced by Botan::algorithm_benchmark(), Botan::algorithm_kat(), Botan::block_size_of(), Botan::Core_Engine::find_block_cipher(), Botan::Core_Engine::get_cipher(), Botan::get_pbe(), Botan::have_algorithm(), Botan::have_block_cipher(), Botan::keylength_multiple_of(), make_block_cipher(), Botan::max_keylength_of(), Botan::min_keylength_of(), providers_of(), Botan::retrieve_block_cipher(), and set_preferred_provider().
const HashFunction * Botan::Algorithm_Factory::prototype_hash_function | ( | const std::string & | algo_spec, |
const std::string & | provider = "" |
||
) |
algo_spec | the algorithm we want |
provider | the provider we would like to use |
Definition at line 215 of file algo_factory.cpp.
Referenced by Botan::algorithm_benchmark(), Botan::algorithm_kat(), Botan::block_size_of(), Botan::Core_Engine::find_block_cipher(), Botan::Core_Engine::find_hash(), Botan::get_pbe(), Botan::have_algorithm(), Botan::have_hash(), make_hash_function(), Botan::output_length_of(), providers_of(), Botan::retrieve_hash(), and set_preferred_provider().
const MessageAuthenticationCode * Botan::Algorithm_Factory::prototype_mac | ( | const std::string & | algo_spec, |
const std::string & | provider = "" |
||
) |
algo_spec | the algorithm we want |
provider | the provider we would like to use |
Definition at line 226 of file algo_factory.cpp.
Referenced by Botan::algorithm_benchmark(), Botan::algorithm_kat(), Botan::Core_Engine::find_pbkdf(), Botan::have_algorithm(), Botan::have_mac(), Botan::keylength_multiple_of(), make_mac(), Botan::max_keylength_of(), Botan::min_keylength_of(), Botan::output_length_of(), providers_of(), Botan::retrieve_mac(), and set_preferred_provider().
const PBKDF * Botan::Algorithm_Factory::prototype_pbkdf | ( | const std::string & | algo_spec, |
const std::string & | provider = "" |
||
) |
algo_spec | the algorithm we want |
provider | the provider we would like to use |
Definition at line 238 of file algo_factory.cpp.
Referenced by make_pbkdf(), providers_of(), and set_preferred_provider().
const StreamCipher * Botan::Algorithm_Factory::prototype_stream_cipher | ( | const std::string & | algo_spec, |
const std::string & | provider = "" |
||
) |
algo_spec | the algorithm we want |
provider | the provider we would like to use |
Definition at line 204 of file algo_factory.cpp.
Referenced by Botan::algorithm_benchmark(), Botan::algorithm_kat(), Botan::Core_Engine::find_block_cipher(), Botan::Core_Engine::get_cipher(), Botan::have_algorithm(), Botan::have_stream_cipher(), Botan::keylength_multiple_of(), make_stream_cipher(), Botan::max_keylength_of(), Botan::min_keylength_of(), providers_of(), Botan::retrieve_stream_cipher(), and set_preferred_provider().
std::vector< std::string > Botan::Algorithm_Factory::providers_of | ( | const std::string & | algo_spec | ) |
algo_spec | the algorithm we are querying |
Definition at line 168 of file algo_factory.cpp.
References prototype_block_cipher(), prototype_hash_function(), prototype_mac(), prototype_pbkdf(), and prototype_stream_cipher().
Referenced by Botan::algorithm_benchmark(), and Botan::algorithm_kat().
void Botan::Algorithm_Factory::set_preferred_provider | ( | const std::string & | algo_spec, |
const std::string & | provider | ||
) |
algo_spec | the algorithm we are setting a provider for |
provider | the provider we would like to use |
Definition at line 138 of file algo_factory.cpp.
References prototype_block_cipher(), prototype_hash_function(), prototype_mac(), prototype_pbkdf(), and prototype_stream_cipher().
|
friend |
Definition at line 207 of file algo_factory.h.