12 #include <botan/mac.h> 13 #include <botan/kdf.h> 30 std::string
name()
const override {
return "HKDF(" + m_prf->name() +
")"; }
32 size_t kdf(uint8_t key[],
size_t key_len,
33 const uint8_t secret[],
size_t secret_len,
34 const uint8_t salt[],
size_t salt_len,
35 const uint8_t label[],
size_t label_len)
const override;
38 std::unique_ptr<MessageAuthenticationCode> m_prf;
54 std::string
name()
const override {
return "HKDF-Extract(" + m_prf->name() +
")"; }
56 size_t kdf(uint8_t key[],
size_t key_len,
57 const uint8_t secret[],
size_t secret_len,
58 const uint8_t salt[],
size_t salt_len,
59 const uint8_t label[],
size_t label_len)
const override;
62 std::unique_ptr<MessageAuthenticationCode> m_prf;
78 std::string
name()
const override {
return "HKDF-Expand(" + m_prf->name() +
")"; }
80 size_t kdf(uint8_t key[],
size_t key_len,
81 const uint8_t secret[],
size_t secret_len,
82 const uint8_t salt[],
size_t salt_len,
83 const uint8_t label[],
size_t label_len)
const override;
86 std::unique_ptr<MessageAuthenticationCode> m_prf;
100 secure_vector<uint8_t>
102 const
std::
string& hash_fn,
103 const uint8_t secret[],
size_t secret_len,
104 const
std::
string& label,
105 const uint8_t hash_val[],
size_t hash_val_len,
std::string name() const override
int(* final)(unsigned char *, CTX *)
std::string name() const override
#define BOTAN_PUBLIC_API(maj, min)
KDF * clone() const override
KDF * clone() const override
secure_vector< uint8_t > hkdf_expand_label(const std::string &hash_fn, const uint8_t secret[], size_t secret_len, const std::string &label, const uint8_t hash_val[], size_t hash_val_len, size_t length)
HKDF(MessageAuthenticationCode *prf)
HKDF_Expand(MessageAuthenticationCode *prf)