10#ifndef BOTAN_KYBER_R3_ENCAPSULATION_H_
11#define BOTAN_KYBER_R3_ENCAPSULATION_H_
15#include <botan/internal/kyber_encaps_base.h>
16#include <botan/internal/kyber_keys.h>
33 std::shared_ptr<const Kyber_PublicKeyInternal> m_public_key;
39 std::shared_ptr<const Kyber_PublicKeyInternal> public_key,
40 std::string_view kdf) :
42 m_public_key(std::move(public_key)),
43 m_private_key(std::move(private_key)) {}
52 std::shared_ptr<const Kyber_PublicKeyInternal> m_public_key;
53 std::shared_ptr<const Kyber_PrivateKeyInternal> m_private_key;
KyberInternalKeypair decode_keypair(std::span< const uint8_t > buffer, KyberConstants mode) const override
secure_vector< uint8_t > encode_keypair(KyberInternalKeypair private_key) const override
Kyber_KEM_Decryptor(std::shared_ptr< const Kyber_PrivateKeyInternal > private_key, std::shared_ptr< const Kyber_PublicKeyInternal > public_key, std::string_view kdf)
const KyberConstants & mode() const override
void decapsulate(StrongSpan< KyberSharedSecret > out_shared_key, StrongSpan< const KyberCompressedCiphertext > encapsulated_key) override
Kyber_KEM_Encryptor(std::shared_ptr< const Kyber_PublicKeyInternal > key, std::string_view kdf)
void encapsulate(StrongSpan< KyberCompressedCiphertext > out_encapsulated_key, StrongSpan< KyberSharedSecret > out_shared_key, RandomNumberGenerator &rng) override
const KyberConstants & mode() const override
int(* final)(unsigned char *, CTX *)
std::pair< std::shared_ptr< Kyber_PublicKeyInternal >, std::shared_ptr< Kyber_PrivateKeyInternal > > KyberInternalKeypair
std::vector< T, secure_allocator< T > > secure_vector