8 #ifndef BOTAN_SP800_108_H__
9 #define BOTAN_SP800_108_H__
11 #include <botan/kdf.h>
12 #include <botan/mac.h>
22 std::string
name()
const override {
return "SP800-108-Counter(" + m_prf->name() +
")"; }
43 size_t kdf(uint8_t key[],
size_t key_len,
44 const uint8_t secret[],
size_t secret_len,
45 const uint8_t salt[],
size_t salt_len,
46 const uint8_t label[],
size_t label_len)
const override;
53 std::unique_ptr<MessageAuthenticationCode> m_prf;
62 std::string
name()
const override {
return "SP800-108-Feedback(" + m_prf->name() +
")"; }
83 size_t kdf(uint8_t key[],
size_t key_len,
84 const uint8_t secret[],
size_t secret_len,
85 const uint8_t salt[],
size_t salt_len,
86 const uint8_t label[],
size_t label_len)
const override;
90 std::unique_ptr<MessageAuthenticationCode> m_prf;
99 std::string
name()
const override {
return "SP800-108-Pipeline(" + m_prf->name() +
")"; }
120 size_t kdf(uint8_t key[],
size_t key_len,
121 const uint8_t secret[],
size_t secret_len,
122 const uint8_t salt[],
size_t salt_len,
123 const uint8_t label[],
size_t label_len)
const override;
128 std::unique_ptr<MessageAuthenticationCode> m_prf;
std::string name() const override
std::string name() const override
KDF * clone() const override
KDF * clone() const override
SP800_108_Feedback(MessageAuthenticationCode *mac)
SP800_108_Pipeline(MessageAuthenticationCode *mac)
KDF * clone() const override
SP800_108_Counter(MessageAuthenticationCode *mac)
std::string name() const override