Botan 1.10.17

core_engine.h
Go to the documentation of this file.
1 /*
2 * Core Engine
3 * (C) 1999-2007 Jack Lloyd
4 *
5 * Distributed under the terms of the Botan license
6 */
7
8 #ifndef BOTAN_CORE_ENGINE_H__
9 #define BOTAN_CORE_ENGINE_H__
10
11 #include <botan/engine.h>
12
13 namespace Botan {
14
15 /**
16 * Core Engine
17 */
18 class Core_Engine : public Engine
19 {
20 public:
21 std::string provider_name() const { return "core"; }
22
23 PK_Ops::Key_Agreement*
24 get_key_agreement_op(const Private_Key& key) const;
25
26 PK_Ops::Signature*
27 get_signature_op(const Private_Key& key) const;
28
29 PK_Ops::Verification* get_verify_op(const Public_Key& key) const;
30
31 PK_Ops::Encryption* get_encryption_op(const Public_Key& key) const;
32
33 PK_Ops::Decryption* get_decryption_op(const Private_Key& key) const;
34
35 Modular_Exponentiator* mod_exp(const BigInt& n,
36 Power_Mod::Usage_Hints) const;
37
38 Keyed_Filter* get_cipher(const std::string&, Cipher_Dir,
39 Algorithm_Factory&);
40
41 BlockCipher* find_block_cipher(const SCAN_Name&,
42 Algorithm_Factory&) const;
43
44 StreamCipher* find_stream_cipher(const SCAN_Name&,
45 Algorithm_Factory&) const;
46
47 HashFunction* find_hash(const SCAN_Name& request,
48 Algorithm_Factory&) const;
49
50 MessageAuthenticationCode* find_mac(const SCAN_Name& request,
51 Algorithm_Factory&) const;
52
53 PBKDF* find_pbkdf(const SCAN_Name& algo_spec,
54 Algorithm_Factory& af) const;
55 };
56
57 /**
58 * Create a cipher mode filter object
59 * @param block_cipher a block cipher object
60 * @param direction are we encrypting or decrypting?
61 * @param mode the name of the cipher mode to use
62 * @param padding the mode padding to use (only used for ECB, CBC)
63 */
64 Keyed_Filter* get_cipher_mode(const BlockCipher* block_cipher,
65 Cipher_Dir direction,
66 const std::string& mode,
67 const std::string& padding);
68
69 }
70
71 #endif
Botan::Core_Engine::get_verify_op
PK_Ops::Verification * get_verify_op(const Public_Key &key) const
Definition: def_pk_ops.cpp:134
Botan::Core_Engine::get_cipher
Keyed_Filter * get_cipher(const std::string &, Cipher_Dir, Algorithm_Factory &)
Definition: core_modes.cpp:181
Botan::Core_Engine::provider_name
std::string provider_name() const
Definition: core_engine.h:21
Botan::Core_Engine::get_decryption_op
PK_Ops::Decryption * get_decryption_op(const Private_Key &key) const
Definition: def_pk_ops.cpp:65
Botan::Algorithm_Factory
Definition: algo_factory.h:34
Botan::BigInt
Definition: bigint.h:22
Botan::Core_Engine::get_signature_op
PK_Ops::Signature * get_signature_op(const Private_Key &key) const
Definition: def_pk_ops.cpp:97
Botan::Keyed_Filter
Definition: key_filt.h:20
Botan::Private_Key
Definition: pk_keys.h:86
Botan::Core_Engine::find_stream_cipher
StreamCipher * find_stream_cipher(const SCAN_Name &, Algorithm_Factory &) const
Definition: lookup_stream.cpp:33
Botan::PK_Ops::Signature
Definition: pk_ops.h:49
Botan::MessageAuthenticationCode
Definition: mac.h:20
Botan::Core_Engine::find_pbkdf
PBKDF * find_pbkdf(const SCAN_Name &algo_spec, Algorithm_Factory &af) const
Definition: lookup_pbkdf.cpp:26
Botan::Engine
Definition: engine.h:32
Botan::Core_Engine::get_key_agreement_op
PK_Ops::Key_Agreement * get_key_agreement_op(const Private_Key &key) const
Definition: def_pk_ops.cpp:81
Botan::StreamCipher
Definition: stream_cipher.h:18
Botan::Core_Engine::mod_exp
Modular_Exponentiator * mod_exp(const BigInt &n, Power_Mod::Usage_Hints) const
Definition: def_powm.cpp:17
Botan::Core_Engine::find_mac
MessageAuthenticationCode * find_mac(const SCAN_Name &request, Algorithm_Factory &) const
Definition: lookup_mac.cpp:38
Botan
Definition: algo_base.h:14
Botan::Core_Engine::get_encryption_op
PK_Ops::Encryption * get_encryption_op(const Public_Key &key) const
Definition: def_pk_ops.cpp:49
Botan::PK_Ops::Key_Agreement
Definition: pk_ops.h:145
Botan::SCAN_Name
Definition: scan_name.h:21
Botan::Public_Key
Definition: pk_keys.h:21
Botan::HashFunction
Definition: hash.h:20
Botan::Power_Mod::Usage_Hints
Usage_Hints
Definition: pow_mod.h:35
Botan::Cipher_Dir
Cipher_Dir
Definition: sym_algo.h:87
Botan::PK_Ops::Decryption
Definition: pk_ops.h:35
Botan::PK_Ops::Encryption
Definition: pk_ops.h:21
Botan::get_cipher_mode
Keyed_Filter * get_cipher_mode(const BlockCipher *block_cipher, Cipher_Dir direction, const std::string &mode, const std::string &padding)
Definition: core_modes.cpp:77
Botan::Core_Engine
Definition: core_engine.h:18
Botan::PK_Ops::Verification
Definition: pk_ops.h:85
Botan::Core_Engine::find_block_cipher
BlockCipher * find_block_cipher(const SCAN_Name &, Algorithm_Factory &) const
Definition: lookup_block.cpp:119
Botan::BlockCipher
Definition: block_cipher.h:18
Botan::PBKDF
Definition: pbkdf.h:21
Botan::Modular_Exponentiator
Definition: pow_mod.h:18
Botan::Core_Engine::find_hash
HashFunction * find_hash(const SCAN_Name &request, Algorithm_Factory &) const
Definition: lookup_hash.cpp:98