8#ifndef BOTAN_TLS_PRF_H_
9#define BOTAN_TLS_PRF_H_
24 std::string
name()
const override {
return "TLS-PRF"; }
28 size_t kdf(uint8_t key[],
size_t key_len,
29 const uint8_t secret[],
size_t secret_len,
30 const uint8_t salt[],
size_t salt_len,
31 const uint8_t label[],
size_t label_len)
const override;
33 TLS_PRF(std::unique_ptr<MessageAuthenticationCode> hmac_md5,
34 std::unique_ptr<MessageAuthenticationCode> hmac_sha1) :
35 m_hmac_md5(
std::move(hmac_md5)),
36 m_hmac_sha1(
std::move(hmac_sha1))
41 std::unique_ptr<MessageAuthenticationCode> m_hmac_md5;
42 std::unique_ptr<MessageAuthenticationCode> m_hmac_sha1;
51 std::string
name()
const override {
return "TLS-12-PRF(" + m_mac->name() +
")"; }
55 size_t kdf(uint8_t key[],
size_t key_len,
56 const uint8_t secret[],
size_t secret_len,
57 const uint8_t salt[],
size_t salt_len,
58 const uint8_t label[],
size_t label_len)
const override;
65 std::unique_ptr<MessageAuthenticationCode> m_mac;
virtual size_t 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 =0
std::string name() const override
TLS_12_PRF(MessageAuthenticationCode *mac)
KDF * clone() const override
TLS_PRF(std::unique_ptr< MessageAuthenticationCode > hmac_md5, std::unique_ptr< MessageAuthenticationCode > hmac_sha1)
KDF * clone() const override
std::string name() const override
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
#define BOTAN_FUTURE_INTERNAL_HEADER(hdr)