8#ifndef BOTAN_ELGAMAL_H_
9#define BOTAN_ELGAMAL_H_
11#include <botan/pk_keys.h>
29 return (op == PublicKeyOperation::Encryption);
38 std::span<const uint8_t> key_bits);
48 std::vector<uint8_t> public_key_bits()
const override;
52 size_t estimated_strength()
const override;
53 size_t key_length()
const override;
55 std::string
algo_name()
const override {
return "ElGamal"; }
57 const BigInt& get_int_field(std::string_view field)
const override;
59 std::unique_ptr<PK_Ops::Encryption>
61 std::string_view params,
62 std::string_view provider)
const override;
72 std::shared_ptr<const DL_PublicKey> m_public_key;
93 std::span<const uint8_t> key_bits);
109 const BigInt& private_key);
113 std::unique_ptr<Public_Key> public_key()
const override;
119 const BigInt& get_int_field(std::string_view field)
const override;
121 std::unique_ptr<PK_Ops::Decryption>
123 std::string_view params,
124 std::string_view provider)
const override;
126 std::shared_ptr<const DL_PrivateKey> m_private_key;
std::string algo_name() const override
bool supports_operation(PublicKeyOperation op) const override
int(* final)(unsigned char *, CTX *)
#define BOTAN_DIAGNOSTIC_POP
#define BOTAN_DIAGNOSTIC_PUSH
#define BOTAN_DIAGNOSTIC_IGNORE_INHERITED_VIA_DOMINANCE
#define BOTAN_PUBLIC_API(maj, min)
std::vector< T, secure_allocator< T > > secure_vector