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;
30 SP800_108_Counter(std::unique_ptr<MessageAuthenticationCode> mac,
size_t r,
size_t L);
46 void perform_kdf(std::span<uint8_t> key,
47 std::span<const uint8_t> secret,
48 std::span<const uint8_t> salt,
49 std::span<const uint8_t> label)
const override;
52 std::unique_ptr<MessageAuthenticationCode> m_prf;
53 size_t m_counter_bits;
54 size_t m_output_length_bits;
62 std::string
name()
const override;
64 std::unique_ptr<KDF>
new_object()
const override;
71 SP800_108_Feedback(std::unique_ptr<MessageAuthenticationCode> mac,
size_t r,
size_t L);
87 void perform_kdf(std::span<uint8_t> key,
88 std::span<const uint8_t> secret,
89 std::span<const uint8_t> salt,
90 std::span<const uint8_t> label)
const override;
93 std::unique_ptr<MessageAuthenticationCode> m_prf;
94 size_t m_counter_bits;
95 size_t m_output_length_bits;
103 std::string
name()
const override;
105 std::unique_ptr<KDF>
new_object()
const override;
112 SP800_108_Pipeline(std::unique_ptr<MessageAuthenticationCode> mac,
size_t r,
size_t L);
128 void perform_kdf(std::span<uint8_t> key,
129 std::span<const uint8_t> secret,
130 std::span<const uint8_t> salt,
131 std::span<const uint8_t> label)
const override;
134 std::unique_ptr<MessageAuthenticationCode> m_prf;
135 size_t m_counter_bits;
136 size_t m_output_length_bits;
SP800_108_Counter(std::unique_ptr< MessageAuthenticationCode > mac, size_t r, size_t L)
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, size_t r, size_t L)
std::unique_ptr< KDF > new_object() const override
std::unique_ptr< KDF > new_object() const override
std::string name() const override
SP800_108_Pipeline(std::unique_ptr< MessageAuthenticationCode > mac, size_t r, size_t L)
int(* final)(unsigned char *, CTX *)