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

#include <dlies.h>

Inheritance diagram for Botan::DLIES_Encryptor:
Botan::PK_Encryptor

Public Member Functions

 DLIES_Encryptor (const DH_PrivateKey &own_priv_key, RandomNumberGenerator &rng, std::unique_ptr< KDF > kdf, std::unique_ptr< Cipher_Mode > cipher, size_t cipher_key_len, std::unique_ptr< MessageAuthenticationCode > mac, size_t mac_key_len=20)
 
 DLIES_Encryptor (const DH_PrivateKey &own_priv_key, RandomNumberGenerator &rng, std::unique_ptr< KDF > kdf, std::unique_ptr< MessageAuthenticationCode > mac, size_t mac_key_len=20)
 
std::vector< uint8_t > encrypt (const uint8_t in[], size_t length, RandomNumberGenerator &rng) const
 
std::vector< uint8_t > encrypt (std::span< const uint8_t > in, RandomNumberGenerator &rng) const
 
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)
 

Detailed Description

DLIES Encryption

Definition at line 23 of file dlies.h.

Constructor & Destructor Documentation

◆ DLIES_Encryptor() [1/2]

Botan::DLIES_Encryptor::DLIES_Encryptor ( const DH_PrivateKey own_priv_key,
RandomNumberGenerator rng,
std::unique_ptr< KDF kdf,
std::unique_ptr< MessageAuthenticationCode mac,
size_t  mac_key_len = 20 
)

Stream mode: use KDF to provide a stream of bytes to xor with the message

Parameters
own_priv_keyown (ephemeral) DH private key
rngthe RNG to use
kdfthe KDF that should be used
macthe MAC function that should be used
mac_key_lenkey length of the MAC function. Default = 20 bytes

output = (ephemeral) public key + ciphertext + tag

Definition at line 14 of file dlies.cpp.

18 :
19 DLIES_Encryptor(own_priv_key, rng, std::move(kdf), nullptr, 0, std::move(mac), mac_key_length)
20 {
21 }
DLIES_Encryptor(const DH_PrivateKey &own_priv_key, RandomNumberGenerator &rng, std::unique_ptr< KDF > kdf, std::unique_ptr< MessageAuthenticationCode > mac, size_t mac_key_len=20)
Definition: dlies.cpp:14

◆ DLIES_Encryptor() [2/2]

Botan::DLIES_Encryptor::DLIES_Encryptor ( const DH_PrivateKey own_priv_key,
RandomNumberGenerator rng,
std::unique_ptr< KDF kdf,
std::unique_ptr< Cipher_Mode cipher,
size_t  cipher_key_len,
std::unique_ptr< MessageAuthenticationCode mac,
size_t  mac_key_len = 20 
)

Block cipher mode

Parameters
own_priv_keyown (ephemeral) DH private key
rngthe RNG to use
kdfthe KDF that should be used
cipherthe block cipher that should be used
cipher_key_lenthe key length of the block cipher
macthe MAC function that should be used
mac_key_lenkey length of the MAC function. Default = 20 bytes

output = (ephemeral) public key + ciphertext + tag

Definition at line 23 of file dlies.cpp.

29 :
30 m_other_pub_key(),
31 m_own_pub_key(own_priv_key.public_value()),
32 m_ka(own_priv_key, rng, "Raw"),
33 m_kdf(std::move(kdf)),
34 m_cipher(std::move(cipher)),
35 m_cipher_key_len(cipher_key_len),
36 m_mac(std::move(mac)),
37 m_mac_keylen(mac_key_length),
38 m_iv()
39 {
42 }
#define BOTAN_ASSERT_NONNULL(ptr)
Definition: assert.h:106

References BOTAN_ASSERT_NONNULL.

Member Function Documentation

◆ encrypt() [1/2]

std::vector< uint8_t > Botan::PK_Encryptor::encrypt ( const uint8_t  in[],
size_t  length,
RandomNumberGenerator rng 
) const
inlineinherited

Encrypt a message.

Parameters
inthe message as a byte array
lengththe length of the above byte array
rngthe random number source to use
Returns
encrypted message

Definition at line 38 of file pubkey.h.

40 {
41 return enc(in, length, rng);
42 }

Referenced by Botan::KeyPair::encryption_consistency_check().

◆ encrypt() [2/2]

std::vector< uint8_t > Botan::PK_Encryptor::encrypt ( std::span< const uint8_t >  in,
RandomNumberGenerator rng 
) const
inlineinherited

Encrypt a message.

Parameters
inthe message
rngthe random number source to use
Returns
encrypted message

Definition at line 50 of file pubkey.h.

52 {
53 return enc(in.data(), in.size(), rng);
54 }

◆ set_initialization_vector()

void Botan::DLIES_Encryptor::set_initialization_vector ( const InitializationVector iv)
inline

Set the initialization vector for the data encryption method.

Definition at line 71 of file dlies.h.

72 {
73 m_iv = iv;
74 }

◆ set_other_key()

void Botan::DLIES_Encryptor::set_other_key ( const std::vector< uint8_t > &  other_pub_key)
inline

Definition at line 65 of file dlies.h.

66 {
67 m_other_pub_key = other_pub_key;
68 }

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