Botan 3.0.0-alpha0
Crypto and TLS for C&
Public Member Functions | List of all members
Botan::PK_KEM_Encryptor Class Referencefinal

#include <pubkey.h>

Public Member Functions

void encrypt (secure_vector< uint8_t > &out_encapsulated_key, secure_vector< uint8_t > &out_shared_key, size_t desired_shared_key_len, Botan::RandomNumberGenerator &rng)
 
template<typename Alloc >
void encrypt (secure_vector< uint8_t > &out_encapsulated_key, secure_vector< uint8_t > &out_shared_key, size_t desired_shared_key_len, Botan::RandomNumberGenerator &rng, const std::vector< uint8_t, Alloc > &salt)
 
void encrypt (secure_vector< uint8_t > &out_encapsulated_key, secure_vector< uint8_t > &out_shared_key, size_t desired_shared_key_len, Botan::RandomNumberGenerator &rng, const uint8_t salt[], size_t salt_len)
 
PK_KEM_Encryptoroperator= (const PK_KEM_Encryptor &)=delete
 
PK_KEM_Encryptoroperator= (PK_KEM_Encryptor &&)=delete
 
 PK_KEM_Encryptor (const PK_KEM_Encryptor &)=delete
 
 PK_KEM_Encryptor (const Public_Key &key, RandomNumberGenerator &rng, const std::string &kem_param="", const std::string &provider="")
 
 PK_KEM_Encryptor (PK_KEM_Encryptor &&)=delete
 
 ~PK_KEM_Encryptor ()
 

Detailed Description

Public Key Key Encapsulation Mechanism Encryption.

Definition at line 572 of file pubkey.h.

Constructor & Destructor Documentation

◆ PK_KEM_Encryptor() [1/3]

Botan::PK_KEM_Encryptor::PK_KEM_Encryptor ( const Public_Key key,
RandomNumberGenerator rng,
const std::string &  kem_param = "",
const std::string &  provider = "" 
)

Construct an instance.

Parameters
keythe key to use inside the encryptor
rngthe RNG to use
kem_paramadditional KEM parameters
providerthe provider to use

Definition at line 138 of file pubkey.cpp.

142 {
143 m_op = key.create_kem_encryption_op(rng, param, provider);
144 if(!m_op)
145 throw Invalid_Argument("Key type " + key.algo_name() + " does not support KEM encryption");
146 }

References Botan::Public_Key::algo_name(), and Botan::Public_Key::create_kem_encryption_op().

◆ ~PK_KEM_Encryptor()

Botan::PK_KEM_Encryptor::~PK_KEM_Encryptor ( )
default

◆ PK_KEM_Encryptor() [2/3]

Botan::PK_KEM_Encryptor::PK_KEM_Encryptor ( const PK_KEM_Encryptor )
delete

◆ PK_KEM_Encryptor() [3/3]

Botan::PK_KEM_Encryptor::PK_KEM_Encryptor ( PK_KEM_Encryptor &&  )
delete

Member Function Documentation

◆ encrypt() [1/3]

void Botan::PK_KEM_Encryptor::encrypt ( secure_vector< uint8_t > &  out_encapsulated_key,
secure_vector< uint8_t > &  out_shared_key,
size_t  desired_shared_key_len,
Botan::RandomNumberGenerator rng 
)
inline

Generate a shared key for data encryption.

Parameters
out_encapsulated_keythe generated encapsulated key
out_shared_keythe generated shared key
desired_shared_key_lendesired size of the shared key in bytes
rngthe RNG to use

Definition at line 640 of file pubkey.h.

644 {
645 this->encrypt(out_encapsulated_key,
646 out_shared_key,
647 desired_shared_key_len,
648 rng,
649 nullptr,
650 0);
651 }
void encrypt(secure_vector< uint8_t > &out_encapsulated_key, secure_vector< uint8_t > &out_shared_key, size_t desired_shared_key_len, Botan::RandomNumberGenerator &rng, const uint8_t salt[], size_t salt_len)
Definition: pubkey.cpp:150

References Botan::CryptoBox::encrypt().

◆ encrypt() [2/3]

template<typename Alloc >
void Botan::PK_KEM_Encryptor::encrypt ( secure_vector< uint8_t > &  out_encapsulated_key,
secure_vector< uint8_t > &  out_shared_key,
size_t  desired_shared_key_len,
Botan::RandomNumberGenerator rng,
const std::vector< uint8_t, Alloc > &  salt 
)
inline

Generate a shared key for data encryption.

Parameters
out_encapsulated_keythe generated encapsulated key
out_shared_keythe generated shared key
desired_shared_key_lendesired size of the shared key in bytes
rngthe RNG to use
salta salt value used in the KDF

Definition at line 619 of file pubkey.h.

624 {
625 this->encrypt(out_encapsulated_key,
626 out_shared_key,
627 desired_shared_key_len,
628 rng,
629 salt.data(), salt.size());
630 }

References Botan::CryptoBox::encrypt().

◆ encrypt() [3/3]

void Botan::PK_KEM_Encryptor::encrypt ( secure_vector< uint8_t > &  out_encapsulated_key,
secure_vector< uint8_t > &  out_shared_key,
size_t  desired_shared_key_len,
Botan::RandomNumberGenerator rng,
const uint8_t  salt[],
size_t  salt_len 
)

Generate a shared key for data encryption.

Parameters
out_encapsulated_keythe generated encapsulated key
out_shared_keythe generated shared key
desired_shared_key_lendesired size of the shared key in bytes
rngthe RNG to use
salta salt value used in the KDF
salt_lensize of the salt value in bytes

Definition at line 150 of file pubkey.cpp.

156 {
157 m_op->kem_encrypt(out_encapsulated_key,
158 out_shared_key,
159 desired_shared_key_len,
160 rng,
161 salt,
162 salt_len);
163 }
size_t salt_len
Definition: x509_obj.cpp:25

References salt_len.

◆ operator=() [1/2]

PK_KEM_Encryptor & Botan::PK_KEM_Encryptor::operator= ( const PK_KEM_Encryptor )
delete

◆ operator=() [2/2]

PK_KEM_Encryptor & Botan::PK_KEM_Encryptor::operator= ( PK_KEM_Encryptor &&  )
delete

The documentation for this class was generated from the following files: