Botan 3.7.1
Crypto and TLS for C&
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, std::span< const uint8_t > other_key, std::span< const uint8_t > salt) override
 
virtual size_t agreed_value_size () const =0
 
 ~Key_Agreement_with_KDF () override
 

Protected Member Functions

 Key_Agreement_with_KDF (std::string_view kdf)
 

Detailed Description

Definition at line 106 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 73 of file pk_ops.cpp.

73 {
74 if(kdf != "Raw") {
75 m_kdf = KDF::create_or_throw(kdf);
76 }
77}
static std::unique_ptr< KDF > create_or_throw(std::string_view algo_spec, std::string_view provider="")
Definition kdf.cpp:202

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,
std::span< const uint8_t > other_key,
std::span< const uint8_t > salt )
overridevirtual

Implements Botan::PK_Ops::Key_Agreement.

Definition at line 81 of file pk_ops.cpp.

83 {
84 if(!salt.empty() && m_kdf == nullptr) {
85 throw Invalid_Argument("PK_Key_Agreement::derive_key requires a KDF to use a salt");
86 }
87
88 secure_vector<uint8_t> z = raw_agree(other_key.data(), other_key.size());
89 if(m_kdf) {
90 return m_kdf->derive_key(key_len, z, salt.data(), salt.size());
91 }
92 return z;
93}
std::vector< T, secure_allocator< T > > secure_vector
Definition secmem.h:61

◆ 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: