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)
int(* final)(unsigned char *, CTX *)
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