11#ifndef BOTAN_TLS_13_HYBRID_KEM_PUBLIC_KEY_H_
12#define BOTAN_TLS_13_HYBRID_KEM_PUBLIC_KEY_H_
14#include <botan/pubkey.h>
16#include <botan/tls_algos.h>
42 static std::unique_ptr<Hybrid_KEM_PublicKey> load_for_group(
Group_Params group,
43 std::span<const uint8_t> concatenated_public_values);
54 std::string algo_name()
const override;
55 size_t estimated_strength()
const override;
56 size_t key_length()
const override;
59 std::vector<uint8_t> raw_public_key_bits()
const override;
60 std::vector<uint8_t> public_key_bits()
const override;
65 std::unique_ptr<PK_Ops::KEM_Encryption> create_kem_encryption_op(
66 std::string_view kdf, std::string_view provider =
"base")
const override;
75 size_t m_estimated_strength;
98 std::unique_ptr<Public_Key> public_key()
const override;
102 std::unique_ptr<PK_Ops::KEM_Decryption> create_kem_decryption_op(
103 RandomNumberGenerator& rng, std::string_view kdf, std::string_view provider =
"base")
const override;
108 std::vector<std::unique_ptr<Private_Key>> m_private_keys;
const auto & private_keys() const
Hybrid_KEM_PublicKey(Hybrid_KEM_PublicKey &&)=default
~Hybrid_KEM_PublicKey()=default
std::vector< std::unique_ptr< Public_Key > > m_public_keys
const auto & public_keys() const
Hybrid_KEM_PublicKey(const Hybrid_KEM_PublicKey &)=delete
Hybrid_KEM_PublicKey & operator=(const Hybrid_KEM_PublicKey &)=delete
Hybrid_KEM_PublicKey & operator=(Hybrid_KEM_PublicKey &&)=default
int(* final)(unsigned char *, CTX *)
#define BOTAN_DIAGNOSTIC_POP
#define BOTAN_DIAGNOSTIC_PUSH
#define BOTAN_DIAGNOSTIC_IGNORE_INHERITED_VIA_DOMINANCE
std::vector< T, secure_allocator< T > > secure_vector