diff options
Diffstat (limited to 'lib/engine/gnump/gnump_engine.h')
-rw-r--r-- | lib/engine/gnump/gnump_engine.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/engine/gnump/gnump_engine.h b/lib/engine/gnump/gnump_engine.h new file mode 100644 index 000000000..ccc723514 --- /dev/null +++ b/lib/engine/gnump/gnump_engine.h @@ -0,0 +1,44 @@ +/* +* GMP Engine +* (C) 1999-2007 Jack Lloyd +* +* Distributed under the terms of the Botan license +*/ + +#ifndef BOTAN_ENGINE_GMP_H__ +#define BOTAN_ENGINE_GMP_H__ + +#include <botan/engine.h> + +namespace Botan { + +/** +* Engine using GNU MP +*/ +class GMP_Engine : public Engine + { + public: + GMP_Engine(); + ~GMP_Engine(); + + std::string provider_name() const override { return "gmp"; } + + PK_Ops::Key_Agreement* + get_key_agreement_op(const Private_Key& key, RandomNumberGenerator&) const override; + + PK_Ops::Signature* + get_signature_op(const Private_Key& key, RandomNumberGenerator&) const override; + + PK_Ops::Verification* get_verify_op(const Public_Key& key, RandomNumberGenerator&) const override; + + PK_Ops::Encryption* get_encryption_op(const Public_Key& key, RandomNumberGenerator&) const override; + + PK_Ops::Decryption* get_decryption_op(const Private_Key& key, RandomNumberGenerator&) const override; + + Modular_Exponentiator* mod_exp(const BigInt&, + Power_Mod::Usage_Hints) const override; + }; + +} + +#endif |