aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/engine/gnump/gnump_engine.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/engine/gnump/gnump_engine.h')
-rw-r--r--src/lib/engine/gnump/gnump_engine.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/lib/engine/gnump/gnump_engine.h b/src/lib/engine/gnump/gnump_engine.h
new file mode 100644
index 000000000..ccc723514
--- /dev/null
+++ b/src/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