Botan 3.4.0
Crypto and TLS for C&
Public Member Functions | Protected Member Functions | List of all members
Botan::PK_Ops::Key_Agreement_with_KDF Class Referenceabstract

#include <pk_ops_impl.h>

Inheritance diagram for Botan::PK_Ops::Key_Agreement_with_KDF:
Botan::PK_Ops::Key_Agreement

Public Member Functions

secure_vector< uint8_t > agree (size_t key_len, const uint8_t other_key[], size_t other_key_len, const uint8_t salt[], size_t salt_len) override
 
virtual size_t agreed_value_size () const =0
 
 ~Key_Agreement_with_KDF () override=default
 

Protected Member Functions

 Key_Agreement_with_KDF (std::string_view kdf)
 

Detailed Description

Definition at line 103 of file pk_ops_impl.h.

Constructor & Destructor Documentation

◆ ~Key_Agreement_with_KDF()

Botan::PK_Ops::Key_Agreement_with_KDF::~Key_Agreement_with_KDF ( )
overridedefault

◆ Key_Agreement_with_KDF()

Botan::PK_Ops::Key_Agreement_with_KDF::Key_Agreement_with_KDF ( std::string_view kdf)
explicitprotected

Definition at line 51 of file pk_ops.cpp.

51 {
52 if(kdf != "Raw") {
53 m_kdf = KDF::create_or_throw(kdf);
54 }
55}
static std::unique_ptr< KDF > create_or_throw(std::string_view algo_spec, std::string_view provider="")
Definition kdf.cpp:193

References Botan::KDF::create_or_throw().

Member Function Documentation

◆ agree()

secure_vector< uint8_t > Botan::PK_Ops::Key_Agreement_with_KDF::agree ( size_t key_len,
const uint8_t other_key[],
size_t other_key_len,
const uint8_t salt[],
size_t salt_len )
overridevirtual

Implements Botan::PK_Ops::Key_Agreement.

Definition at line 57 of file pk_ops.cpp.

58 {
59 if(salt_len > 0 && m_kdf == nullptr) {
60 throw Invalid_Argument("PK_Key_Agreement::derive_key requires a KDF to use a salt");
61 }
62
63 secure_vector<uint8_t> z = raw_agree(w, w_len);
64 if(m_kdf) {
65 return m_kdf->derive_key(key_len, z, salt, salt_len);
66 }
67 return z;
68}

◆ agreed_value_size()

virtual size_t Botan::PK_Ops::Key_Agreement::agreed_value_size ( ) const
pure virtualinherited

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