9#ifndef BOTAN_SP800_56A_H_
10#define BOTAN_SP800_56A_H_
12#include <botan/hash.h>
24 std::string
name()
const override;
26 std::unique_ptr<KDF>
new_object()
const override;
45 void kdf(uint8_t key[],
47 const uint8_t secret[],
51 const uint8_t label[],
52 size_t label_len)
const override;
57 explicit SP800_56A_Hash(std::unique_ptr<HashFunction> hash) : m_hash(std::move(hash)) {}
60 std::unique_ptr<HashFunction> m_hash;
68 std::string
name()
const override;
70 std::unique_ptr<KDF>
new_object()
const override;
89 void kdf(uint8_t key[],
91 const uint8_t secret[],
95 const uint8_t label[],
96 size_t label_len)
const override;
101 explicit SP800_56A_HMAC(std::unique_ptr<MessageAuthenticationCode> mac);
104 std::unique_ptr<MessageAuthenticationCode> m_mac;
SP800_56A_HMAC(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
std::unique_ptr< KDF > new_object() const override
SP800_56A_Hash(std::unique_ptr< HashFunction > hash)
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::string name() const override
std::unique_ptr< KDF > new_object() const override
int(* final)(unsigned char *, CTX *)