38 std::unique_ptr<KDF> kdf,
39 std::unique_ptr<MessageAuthenticationCode> mac,
40 size_t mac_key_len = 20);
57 std::unique_ptr<KDF> kdf,
58 std::unique_ptr<Cipher_Mode> cipher,
59 size_t cipher_key_len,
60 std::unique_ptr<MessageAuthenticationCode> mac,
61 size_t mac_key_len = 20);
64 inline void set_other_key(
const std::vector<uint8_t>& other_pub_key) { m_other_pub_key = other_pub_key; }
72 size_t maximum_input_size()
const override;
74 size_t ciphertext_length(
size_t ptext_len)
const override;
76 std::vector<uint8_t> m_other_pub_key;
77 std::vector<uint8_t> m_own_pub_key;
79 std::unique_ptr<KDF> m_kdf;
80 std::unique_ptr<Cipher_Mode> m_cipher;
81 const size_t m_cipher_key_len;
82 std::unique_ptr<MessageAuthenticationCode> m_mac;
83 const size_t m_mac_keylen;
105 std::unique_ptr<KDF> kdf,
106 std::unique_ptr<MessageAuthenticationCode> mac,
107 size_t mac_key_len = 20);
124 std::unique_ptr<KDF> kdf,
125 std::unique_ptr<Cipher_Mode> cipher,
126 size_t cipher_key_len,
127 std::unique_ptr<MessageAuthenticationCode> mac,
128 size_t mac_key_len = 20);
136 size_t plaintext_length(
size_t ctext_len)
const override;
138 const size_t m_pub_key_size;
140 std::unique_ptr<KDF> m_kdf;
141 std::unique_ptr<Cipher_Mode> m_cipher;
142 const size_t m_cipher_key_len;
143 std::unique_ptr<MessageAuthenticationCode> m_mac;
144 const size_t m_mac_keylen;