aboutsummaryrefslogtreecommitdiffstats
path: root/lib/engine/openssl/openssl_engine.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/engine/openssl/openssl_engine.h')
-rw-r--r--lib/engine/openssl/openssl_engine.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/engine/openssl/openssl_engine.h b/lib/engine/openssl/openssl_engine.h
new file mode 100644
index 000000000..90f315c00
--- /dev/null
+++ b/lib/engine/openssl/openssl_engine.h
@@ -0,0 +1,49 @@
+/*
+* OpenSSL Engine
+* (C) 1999-2007 Jack Lloyd
+*
+* Distributed under the terms of the Botan license
+*/
+
+#ifndef BOTAN_ENGINE_OPENSSL_H__
+#define BOTAN_ENGINE_OPENSSL_H__
+
+#include <botan/engine.h>
+
+namespace Botan {
+
+/**
+* OpenSSL Engine
+*/
+class OpenSSL_Engine : public Engine
+ {
+ public:
+ std::string provider_name() const override { return "openssl"; }
+
+ PK_Ops::Key_Agreement*
+ get_key_agreement_op(const Private_Key& key, RandomNumberGenerator& rng) const override;
+
+ PK_Ops::Signature*
+ get_signature_op(const Private_Key& key, RandomNumberGenerator& rng) const override;
+
+ PK_Ops::Verification* get_verify_op(const Public_Key& key, RandomNumberGenerator& rng) const override;
+
+ PK_Ops::Encryption* get_encryption_op(const Public_Key& key, RandomNumberGenerator& rng) const override;
+
+ PK_Ops::Decryption* get_decryption_op(const Private_Key& key, RandomNumberGenerator& rng) const override;
+
+ Modular_Exponentiator* mod_exp(const BigInt&,
+ Power_Mod::Usage_Hints) const override;
+
+ BlockCipher* find_block_cipher(const SCAN_Name&,
+ Algorithm_Factory&) const override;
+
+ StreamCipher* find_stream_cipher(const SCAN_Name&,
+ Algorithm_Factory&) const override;
+
+ HashFunction* find_hash(const SCAN_Name&, Algorithm_Factory&) const override;
+ };
+
+}
+
+#endif