25      explicit HKDF(std::unique_ptr<MessageAuthenticationCode> prf) : m_prf(std::move(prf)) {}
 
   27      std::unique_ptr<KDF> 
new_object() 
const override;
 
   29      std::string 
name() 
const override;
 
   32      void perform_kdf(std::span<uint8_t> key,
 
   33                       std::span<const uint8_t> secret,
 
   34                       std::span<const uint8_t> salt,
 
   35                       std::span<const uint8_t> label) 
const override;
 
   38      std::unique_ptr<MessageAuthenticationCode> m_prf;
 
 
   49      explicit HKDF_Extract(std::unique_ptr<MessageAuthenticationCode> prf) : m_prf(std::move(prf)) {}
 
   51      std::unique_ptr<KDF> 
new_object() 
const override;
 
   53      std::string 
name() 
const override;
 
   56      void perform_kdf(std::span<uint8_t> key,
 
   57                       std::span<const uint8_t> secret,
 
   58                       std::span<const uint8_t> salt,
 
   59                       std::span<const uint8_t> label) 
const override;
 
   62      std::unique_ptr<MessageAuthenticationCode> m_prf;
 
 
   73      explicit HKDF_Expand(std::unique_ptr<MessageAuthenticationCode> prf) : m_prf(std::move(prf)) {}
 
   75      std::unique_ptr<KDF> 
new_object() 
const override;
 
   77      std::string 
name() 
const override;
 
   80      void perform_kdf(std::span<uint8_t> key,
 
   81                       std::span<const uint8_t> secret,
 
   82                       std::span<const uint8_t> salt,
 
   83                       std::span<const uint8_t> label) 
const override;
 
   86      std::unique_ptr<MessageAuthenticationCode> m_prf;
 
 
   99                                                        std::span<const uint8_t> secret,
 
  100                                                        std::string_view label,
 
  101                                                        std::span<const uint8_t> hash_val,
 
std::string name() const override
 
std::unique_ptr< KDF > new_object() const override
 
HKDF_Expand(std::unique_ptr< MessageAuthenticationCode > prf)
 
std::string name() const override
 
std::unique_ptr< KDF > new_object() const override
 
HKDF(std::unique_ptr< MessageAuthenticationCode > prf)
 
secure_vector< uint8_t > hkdf_expand_label(std::string_view hash_fn, std::span< const uint8_t > secret, std::string_view label, std::span< const uint8_t > hash_val, size_t length)
 
std::vector< T, secure_allocator< T > > secure_vector