aboutsummaryrefslogtreecommitdiffstats
path: root/include/engine.h
diff options
context:
space:
mode:
authorlloyd <[email protected]>2008-09-29 00:15:14 +0000
committerlloyd <[email protected]>2008-09-29 00:15:14 +0000
commit68d3d539ad7752dc80c20c1a2ade909b1a4c4a6e (patch)
treec7e588d28427960c95eca9900844d5bf36c079df /include/engine.h
parent8269e2897e0a652bbd949d38b74873976a98adeb (diff)
Move what is left of the uncategorized library to 'core'. There is still
a lot of public key stuff in here that needs to be extracted however, and probably 2-3 other modules worth of stuff to split off (engines, etc)
Diffstat (limited to 'include/engine.h')
-rw-r--r--include/engine.h123
1 files changed, 0 insertions, 123 deletions
diff --git a/include/engine.h b/include/engine.h
deleted file mode 100644
index 13007e662..000000000
--- a/include/engine.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*************************************************
-* Engine Header File *
-* (C) 1999-2007 Jack Lloyd *
-*************************************************/
-
-#ifndef BOTAN_ENGINE_H__
-#define BOTAN_ENGINE_H__
-
-#include <botan/base.h>
-#include <botan/mutex.h>
-#include <botan/pk_ops.h>
-#include <botan/pow_mod.h>
-#include <botan/basefilt.h>
-#include <botan/enums.h>
-#include <utility>
-#include <map>
-
-namespace Botan {
-
-/*************************************************
-* Engine Base Class *
-*************************************************/
-class BOTAN_DLL Engine
- {
- public:
- template<typename T>
- class BOTAN_DLL Algorithm_Cache
- {
- public:
- virtual T* get(const std::string&) const = 0;
- virtual void add(T* algo, const std::string& = "") const = 0;
- virtual ~Algorithm_Cache() {}
- };
-
- virtual IF_Operation* if_op(const BigInt&, const BigInt&, const BigInt&,
- const BigInt&, const BigInt&, const BigInt&,
- const BigInt&, const BigInt&) const;
- virtual DSA_Operation* dsa_op(const DL_Group&, const BigInt&,
- const BigInt&) const;
- virtual NR_Operation* nr_op(const DL_Group&, const BigInt&,
- const BigInt&) const;
- virtual ELG_Operation* elg_op(const DL_Group&, const BigInt&,
- const BigInt&) const;
- virtual DH_Operation* dh_op(const DL_Group&, const BigInt&) const;
-
- virtual Modular_Exponentiator* mod_exp(const BigInt&,
- Power_Mod::Usage_Hints) const;
-
- virtual Keyed_Filter* get_cipher(const std::string&, Cipher_Dir);
-
- const BlockCipher* block_cipher(const std::string&) const;
- 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;
-
- void add_algorithm(BlockCipher*) const;
- 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();
- virtual ~Engine();
- private:
- virtual BlockCipher* find_block_cipher(const std::string&) const;
- virtual StreamCipher* find_stream_cipher(const std::string&) const;
- virtual HashFunction* find_hash(const std::string&) const;
- virtual MessageAuthenticationCode* find_mac(const std::string&) const;
- virtual class S2K* find_s2k(const std::string&) const;
- virtual class BlockCipherModePaddingMethod*
- find_bc_pad(const std::string&) const;
-
- template<typename T>
- const T* lookup_algo(const Algorithm_Cache<T>* cache,
- const std::string& name,
- const Engine* engine,
- T* (Engine::*find)(const std::string&) const) const
- {
- T* algo = cache->get(name);
- if(!algo)
- {
- algo = (engine->*find)(name);
- if(algo)
- cache->add(algo, name);
- }
- return algo;
- }
-
- Algorithm_Cache<BlockCipher>* cache_of_bc;
- Algorithm_Cache<StreamCipher>* cache_of_sc;
- 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 {
-
-/*************************************************
-* Get an operation from an Engine *
-*************************************************/
-Modular_Exponentiator* mod_exp(const BigInt&, Power_Mod::Usage_Hints);
-
-IF_Operation* if_op(const BigInt&, const BigInt&, const BigInt&,
- const BigInt&, const BigInt&, const BigInt&,
- const BigInt&, const BigInt&);
-
-DSA_Operation* dsa_op(const DL_Group&, const BigInt&, const BigInt&);
-NR_Operation* nr_op(const DL_Group&, const BigInt&, const BigInt&);
-
-ELG_Operation* elg_op(const DL_Group&, const BigInt&, const BigInt&);
-
-DH_Operation* dh_op(const DL_Group&, const BigInt&);
-
-}
-
-}
-
-#endif