12#include <botan/pubkey.h>
16#include <botan/cipher_mode.h>
39 std::unique_ptr<KDF> kdf,
40 std::unique_ptr<MessageAuthenticationCode> mac,
41 size_t mac_key_len = 20);
58 std::unique_ptr<KDF> kdf,
59 std::unique_ptr<Cipher_Mode> cipher,
60 size_t cipher_key_len,
61 std::unique_ptr<MessageAuthenticationCode> mac,
62 size_t mac_key_len = 20);
67 m_other_pub_key = other_pub_key;
77 std::vector<uint8_t> enc(
const uint8_t[],
size_t,
80 size_t maximum_input_size()
const override;
82 size_t ciphertext_length(
size_t ptext_len)
const override;
84 std::vector<uint8_t> m_other_pub_key;
85 std::vector<uint8_t> m_own_pub_key;
87 std::unique_ptr<KDF> m_kdf;
88 std::unique_ptr<Cipher_Mode> m_cipher;
89 const size_t m_cipher_key_len;
90 std::unique_ptr<MessageAuthenticationCode> m_mac;
91 const size_t m_mac_keylen;
114 std::unique_ptr<KDF> kdf,
115 std::unique_ptr<MessageAuthenticationCode> mac,
116 size_t mac_key_len = 20);
133 std::unique_ptr<KDF> kdf,
134 std::unique_ptr<Cipher_Mode> cipher,
135 size_t cipher_key_len,
136 std::unique_ptr<MessageAuthenticationCode> mac,
137 size_t mac_key_len = 20);
147 const uint8_t in[],
size_t in_len)
const override;
149 size_t plaintext_length(
size_t ctext_len)
const override;
151 const size_t m_pub_key_size;
153 std::unique_ptr<KDF> m_kdf;
154 std::unique_ptr<Cipher_Mode> m_cipher;
155 const size_t m_cipher_key_len;
156 std::unique_ptr<MessageAuthenticationCode> m_mac;
157 const size_t m_mac_keylen;
void set_initialization_vector(const InitializationVector &iv)
Set the initialization vector for the data decryption method.
void set_initialization_vector(const InitializationVector &iv)
Set the initialization vector for the data encryption method.
void set_other_key(const std::vector< uint8_t > &other_pub_key)
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
std::vector< T, secure_allocator< T > > secure_vector