nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode > Class Template Reference

#include <hkdf.hpp>

+ Collaboration diagram for nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >:

Public Types

typedef policy_type::digest_type digest_type
 
typedef Hash hash_type
 
typedef policy_type::key_type key_type
 
typedef policy_type::label_type label_type
 
typedef MessageAuthenticationCode mac_type
 
typedef policy_type::salt_type salt_type
 
typedef policy_type::secret_type secret_type
 

Public Member Functions

 hkdf (const secret_type &secret, const salt_type &salt=salt_type())
 
digest_type process (const key_type &key)
 
void process (digest_type &digest, const key_type &key)
 

Static Public Attributes

constexpr static const std::size_t digest_bits = policy_type::digest_bits
 
constexpr static const std::size_t label_bits = policy_type::label_bits
 
constexpr static const std::size_t max_key_bits = policy_type::max_key_bits
 
constexpr static const std::size_t min_key_bits = policy_type::min_key_bits
 
constexpr static const std::size_t salt_bits = policy_type::salt_bits
 
constexpr static const std::size_t secret_bits = policy_type::secret_bits
 

Protected Attributes

mac_type expand_mac
 
mac_type extract_mac
 

Detailed Description

template<typename Hash, typename MessageAuthenticationCode = mac::hmac<Hash>>
class nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >

Template Parameters
Hash
MessageAuthenticationCode

Member Typedef Documentation

◆ digest_type

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
typedef policy_type::digest_type nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::digest_type

◆ hash_type

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
typedef Hash nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::hash_type

◆ key_type

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
typedef policy_type::key_type nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::key_type

◆ label_type

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
typedef policy_type::label_type nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::label_type

◆ mac_type

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
typedef MessageAuthenticationCode nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::mac_type

◆ salt_type

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
typedef policy_type::salt_type nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::salt_type

◆ secret_type

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
typedef policy_type::secret_type nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::secret_type

Constructor & Destructor Documentation

◆ hkdf()

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::hkdf ( const secret_type secret,
const salt_type salt = salt_type() 
)
inline

Member Function Documentation

◆ process() [1/2]

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
digest_type nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::process ( const key_type key)
inline

◆ process() [2/2]

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
void nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::process ( digest_type digest,
const key_type key 
)
inline

Member Data Documentation

◆ digest_bits

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
constexpr static const std::size_t nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::digest_bits = policy_type::digest_bits
staticconstexpr

◆ expand_mac

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
mac_type nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::expand_mac
protected

◆ extract_mac

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
mac_type nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::extract_mac
protected

◆ label_bits

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
constexpr static const std::size_t nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::label_bits = policy_type::label_bits
staticconstexpr

◆ max_key_bits

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
constexpr static const std::size_t nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::max_key_bits = policy_type::max_key_bits
staticconstexpr

◆ min_key_bits

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
constexpr static const std::size_t nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::min_key_bits = policy_type::min_key_bits
staticconstexpr

◆ salt_bits

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
constexpr static const std::size_t nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::salt_bits = policy_type::salt_bits
staticconstexpr

◆ secret_bits

template<typename Hash , typename MessageAuthenticationCode = mac::hmac<Hash>>
constexpr static const std::size_t nil::crypto3::kdf::hkdf< Hash, MessageAuthenticationCode >::secret_bits = policy_type::secret_bits
staticconstexpr

The documentation for this class was generated from the following file: