8#ifndef BOTAN_SP800_108_H_
9#define BOTAN_SP800_108_H_
21 std::string
name()
const override;
23 std::unique_ptr<KDF>
new_object()
const override;
42 void kdf(uint8_t key[],
44 const uint8_t secret[],
48 const uint8_t label[],
49 size_t label_len)
const override;
54 explicit SP800_108_Counter(std::unique_ptr<MessageAuthenticationCode> mac) : m_prf(std::move(mac)) {}
57 std::unique_ptr<MessageAuthenticationCode> m_prf;
65 std::string
name()
const override;
67 std::unique_ptr<KDF>
new_object()
const override;
86 void kdf(uint8_t key[],
88 const uint8_t secret[],
92 const uint8_t label[],
93 size_t label_len)
const override;
95 explicit SP800_108_Feedback(std::unique_ptr<MessageAuthenticationCode> mac) : m_prf(std::move(mac)) {}
98 std::unique_ptr<MessageAuthenticationCode> m_prf;
106 std::string
name()
const override;
108 std::unique_ptr<KDF>
new_object()
const override;
127 void kdf(uint8_t key[],
129 const uint8_t secret[],
131 const uint8_t salt[],
133 const uint8_t label[],
134 size_t label_len)
const override;
136 explicit SP800_108_Pipeline(std::unique_ptr<MessageAuthenticationCode> mac) : m_prf(std::move(mac)) {}
139 std::unique_ptr<MessageAuthenticationCode> m_prf;
void kdf(uint8_t key[], size_t key_len, const uint8_t secret[], size_t secret_len, const uint8_t salt[], size_t salt_len, const uint8_t label[], size_t label_len) const override
SP800_108_Counter(std::unique_ptr< MessageAuthenticationCode > mac)
std::string name() const override
std::unique_ptr< KDF > new_object() const override
std::string name() const override
SP800_108_Feedback(std::unique_ptr< MessageAuthenticationCode > mac)
void kdf(uint8_t key[], size_t key_len, const uint8_t secret[], size_t secret_len, const uint8_t salt[], size_t salt_len, const uint8_t label[], size_t label_len) const override
std::unique_ptr< KDF > new_object() const override
std::unique_ptr< KDF > new_object() const override
SP800_108_Pipeline(std::unique_ptr< MessageAuthenticationCode > mac)
std::string name() const override
void kdf(uint8_t key[], size_t key_len, const uint8_t secret[], size_t secret_len, const uint8_t salt[], size_t salt_len, const uint8_t label[], size_t label_len) const override
int(* final)(unsigned char *, CTX *)