diff options
-rw-r--r-- | src/libstate/engine/def_engine/def_eng.h | 1 | ||||
-rw-r--r-- | src/libstate/engine/def_engine/info.txt | 1 | ||||
-rw-r--r-- | src/libstate/engine/def_engine/lookup_s2k.cpp | 50 | ||||
-rw-r--r-- | src/libstate/engine/engine.cpp | 20 | ||||
-rw-r--r-- | src/libstate/engine/engine.h | 6 | ||||
-rw-r--r-- | src/libstate/get_enc.cpp | 40 | ||||
-rw-r--r-- | src/libstate/lookup.cpp | 29 | ||||
-rw-r--r-- | src/libstate/lookup.h | 2 |
8 files changed, 39 insertions, 110 deletions
diff --git a/src/libstate/engine/def_engine/def_eng.h b/src/libstate/engine/def_engine/def_eng.h index 3d3fba809..4f1bd89a7 100644 --- a/src/libstate/engine/def_engine/def_eng.h +++ b/src/libstate/engine/def_engine/def_eng.h @@ -64,7 +64,6 @@ class BOTAN_DLL Default_Engine : public Engine HashFunction* find_hash(const std::string&) const; MessageAuthenticationCode* find_mac(const std::string&) const; - class S2K* find_s2k(const std::string&) const; class BlockCipherModePaddingMethod* find_bc_pad(const std::string&) const; }; diff --git a/src/libstate/engine/def_engine/info.txt b/src/libstate/engine/def_engine/info.txt index 823df1559..da2683bb7 100644 --- a/src/libstate/engine/def_engine/info.txt +++ b/src/libstate/engine/def_engine/info.txt @@ -13,6 +13,5 @@ lookup_bc_pad.cpp lookup_block.cpp lookup_hash.cpp lookup_mac.cpp -lookup_s2k.cpp lookup_stream.cpp </add> diff --git a/src/libstate/engine/def_engine/lookup_s2k.cpp b/src/libstate/engine/def_engine/lookup_s2k.cpp deleted file mode 100644 index 73f012b18..000000000 --- a/src/libstate/engine/def_engine/lookup_s2k.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/************************************************* -* S2K Lookup * -* (C) 1999-2007 Jack Lloyd * -*************************************************/ - -#include <botan/def_eng.h> -#include <botan/lookup.h> -#include <botan/scan_name.h> - -#if defined(BOTAN_HAS_PBKDF1) - #include <botan/pbkdf1.h> -#endif - -#if defined(BOTAN_HAS_PBKDF2) - #include <botan/pbkdf2.h> - #include <botan/hmac.h> -#endif - -#if defined(BOTAN_HAS_PGPS2K) - #include <botan/pgp_s2k.h> -#endif - -namespace Botan { - -/************************************************* -* Look for an algorithm with this name * -*************************************************/ -S2K* Default_Engine::find_s2k(const std::string& algo_spec) const - { - SCAN_Name request(algo_spec); - -#if defined(BOTAN_HAS_PBKDF1) - if(request.algo_name() == "PBKDF1" && request.arg_count() == 1) - return new PKCS5_PBKDF1(get_hash(request.argument(0))); -#endif - -#if defined(BOTAN_HAS_PBKDF2) - if(request.algo_name() == "PBKDF2" && request.arg_count() == 1) - return new PKCS5_PBKDF2(new HMAC(get_hash(request.argument(0)))); -#endif - -#if defined(BOTAN_HAS_PGPS2K) - if(request.algo_name() == "OpenPGP-S2K" && request.arg_count() == 1) - return new OpenPGP_S2K(get_hash(request.argument(0))); -#endif - - return 0; - } - -} diff --git a/src/libstate/engine/engine.cpp b/src/libstate/engine/engine.cpp index 59621a7d3..b5d48a0ca 100644 --- a/src/libstate/engine/engine.cpp +++ b/src/libstate/engine/engine.cpp @@ -7,7 +7,6 @@ #include <botan/libstate.h> #include <botan/stl_util.h> #include <botan/mode_pad.h> -#include <botan/s2k.h> namespace Botan { @@ -101,15 +100,6 @@ const MessageAuthenticationCode* Engine::mac(const std::string& name) const } /************************************************* -* Acquire a S2K object * -*************************************************/ -const S2K* Engine::s2k(const std::string& name) const - { - return lookup_algo(cache_of_s2k, global_state().deref_alias(name), - this, &Engine::find_s2k); - } - -/************************************************* * Acquire a cipher padding object * *************************************************/ const BlockCipherModePaddingMethod* @@ -152,14 +142,6 @@ void Engine::add_algorithm(MessageAuthenticationCode* algo) const } /************************************************* -* Add a S2K to the lookup table * -*************************************************/ -void Engine::add_algorithm(S2K* algo) const - { - cache_of_s2k->add(algo); - } - -/************************************************* * Add a cipher pad method to the lookup table * *************************************************/ void Engine::add_algorithm(BlockCipherModePaddingMethod* algo) const @@ -176,7 +158,6 @@ Engine::Engine() cache_of_sc = new Algorithm_Cache_Impl<StreamCipher>(); cache_of_hf = new Algorithm_Cache_Impl<HashFunction>(); cache_of_mac = new Algorithm_Cache_Impl<MessageAuthenticationCode>(); - cache_of_s2k = new Algorithm_Cache_Impl<S2K>(); cache_of_bc_pad = new Algorithm_Cache_Impl<BlockCipherModePaddingMethod>(); } @@ -190,7 +171,6 @@ Engine::~Engine() delete cache_of_sc; delete cache_of_hf; delete cache_of_mac; - delete cache_of_s2k; delete cache_of_bc_pad; } diff --git a/src/libstate/engine/engine.h b/src/libstate/engine/engine.h index 5073b6d0d..584219045 100644 --- a/src/libstate/engine/engine.h +++ b/src/libstate/engine/engine.h @@ -119,7 +119,6 @@ class BOTAN_DLL Engine const StreamCipher* stream_cipher(const std::string&) const; const HashFunction* hash(const std::string&) const; const MessageAuthenticationCode* mac(const std::string&) const; - const class S2K* s2k(const std::string&) const; const class BlockCipherModePaddingMethod* bc_pad(const std::string&) const; @@ -129,7 +128,6 @@ class BOTAN_DLL Engine void add_algorithm(StreamCipher*) const; void add_algorithm(HashFunction*) const; void add_algorithm(MessageAuthenticationCode*) const; - void add_algorithm(class S2K*) const; void add_algorithm(class BlockCipherModePaddingMethod*) const; Engine(); @@ -147,9 +145,6 @@ class BOTAN_DLL Engine virtual MessageAuthenticationCode* find_mac(const std::string&) const { return 0; } - virtual class S2K* find_s2k(const std::string&) const - { return 0; } - virtual class BlockCipherModePaddingMethod* find_bc_pad(const std::string&) const { return 0; } @@ -175,7 +170,6 @@ class BOTAN_DLL Engine Algorithm_Cache<HashFunction>* cache_of_hf; Algorithm_Cache<MessageAuthenticationCode>* cache_of_mac; Algorithm_Cache<BlockCipherModePaddingMethod>* cache_of_bc_pad; - Algorithm_Cache<S2K>* cache_of_s2k; }; namespace Engine_Core { diff --git a/src/libstate/get_enc.cpp b/src/libstate/get_enc.cpp index f93ecb703..f2398e318 100644 --- a/src/libstate/get_enc.cpp +++ b/src/libstate/get_enc.cpp @@ -1,5 +1,5 @@ /************************************************* -* EMSA/EME/KDF/MGF Retrieval Source File * +* PBKDF/EMSA/EME/KDF/MGF Retrieval Source File * * (C) 1999-2007 Jack Lloyd * *************************************************/ @@ -7,6 +7,19 @@ #include <botan/libstate.h> #include <botan/scan_name.h> +#if defined(BOTAN_HAS_PBKDF1) + #include <botan/pbkdf1.h> +#endif + +#if defined(BOTAN_HAS_PBKDF2) + #include <botan/pbkdf2.h> + #include <botan/hmac.h> +#endif + +#if defined(BOTAN_HAS_PGPS2K) + #include <botan/pgp_s2k.h> +#endif + #if defined(BOTAN_HAS_MGF1) #include <botan/mgf1.h> #endif @@ -66,6 +79,31 @@ namespace Botan { /************************************************* +* Get a S2K algorithm by name * +*************************************************/ +S2K* get_s2k(const std::string& algo_spec) + { + SCAN_Name request(algo_spec); + +#if defined(BOTAN_HAS_PBKDF1) + if(request.algo_name() == "PBKDF1" && request.arg_count() == 1) + return new PKCS5_PBKDF1(get_hash(request.argument(0))); +#endif + +#if defined(BOTAN_HAS_PBKDF2) + if(request.algo_name() == "PBKDF2" && request.arg_count() == 1) + return new PKCS5_PBKDF2(new HMAC(get_hash(request.argument(0)))); +#endif + +#if defined(BOTAN_HAS_PGPS2K) + if(request.algo_name() == "OpenPGP-S2K" && request.arg_count() == 1) + return new OpenPGP_S2K(get_hash(request.argument(0))); +#endif + + throw Algorithm_Not_Found(algo_spec); + } + +/************************************************* * Get an EMSA by name * *************************************************/ EMSA* get_emsa(const std::string& algo_spec) diff --git a/src/libstate/lookup.cpp b/src/libstate/lookup.cpp index b34a532e3..700a62a7a 100644 --- a/src/libstate/lookup.cpp +++ b/src/libstate/lookup.cpp @@ -54,17 +54,6 @@ MessageAuthenticationCode* get_mac(const std::string& name) } /************************************************* -* Get a S2K algorithm by name * -*************************************************/ -S2K* get_s2k(const std::string& name) - { - const S2K* s2k = retrieve_s2k(global_state(), name); - if(s2k) - return s2k->clone(); - throw Algorithm_Not_Found(name); - } - -/************************************************* * Get a block cipher padding method by name * *************************************************/ const BlockCipherModePaddingMethod* get_bc_pad(const std::string& name) @@ -311,24 +300,6 @@ const MessageAuthenticationCode* retrieve_mac(Library_State& libstate, } /************************************************* -* Acquire a string-to-key algorithm * -*************************************************/ -const S2K* retrieve_s2k(Library_State& libstate, - const std::string& name) - { - Library_State::Engine_Iterator i(libstate); - - while(const Engine* engine = i.next()) - { - const S2K* algo = engine->s2k(name); - if(algo) - return algo; - } - - return 0; - } - -/************************************************* * Retrieve a block cipher padding method * *************************************************/ const BlockCipherModePaddingMethod* retrieve_bc_pad(Library_State& libstate, diff --git a/src/libstate/lookup.h b/src/libstate/lookup.h index 4a97a2aeb..34618a835 100644 --- a/src/libstate/lookup.h +++ b/src/libstate/lookup.h @@ -39,8 +39,6 @@ retrieve_hash(Library_State&, const std::string&); BOTAN_DLL const MessageAuthenticationCode* retrieve_mac(Library_State&, const std::string&); -BOTAN_DLL const S2K* retrieve_s2k(Library_State&, const std::string&); - BOTAN_DLL const BlockCipherModePaddingMethod* retrieve_bc_pad(Library_State&, const std::string&); |