#include <hmac.hpp>

+ Collaboration diagram for nil::crypto3::mac::mac_key< hmac< Hash > >:

Public Types

typedef policy_type::digest_type digest_type
 
typedef policy_type::hash_type hash_type
 
typedef accumulator_set< hash_typeinternal_accumulator_type
 
typedef hmac< Hash > policy_type
 
typedef policy_type::schedule_key_type schedule_key_type
 

Public Member Functions

digest_type compute (internal_accumulator_type &i_acc) const
 
void init_accumulator (internal_accumulator_type &i_acc) const
 
template<typename KeyRange >
 mac_key (const KeyRange &key)
 
template<typename InputIterator >
void update (internal_accumulator_type &i_acc, InputIterator first, InputIterator last) const
 
template<typename InputRange >
void update (internal_accumulator_type &i_acc, InputRange range) const
 

Static Public Attributes

constexpr static const std::size_t block_octets = policy_type::block_octets
 

Static Protected Member Functions

template<typename KeyRange , typename policy_type::template is_key_type< KeyRange > = true>
static schedule_key_type process_schedule_key (const KeyRange &key)
 

Protected Attributes

schedule_key_type schedule_key
 

Member Typedef Documentation

◆ digest_type

template<typename Hash >
typedef policy_type::digest_type nil::crypto3::mac::mac_key< hmac< Hash > >::digest_type

◆ hash_type

template<typename Hash >
typedef policy_type::hash_type nil::crypto3::mac::mac_key< hmac< Hash > >::hash_type

◆ internal_accumulator_type

◆ policy_type

template<typename Hash >
typedef hmac<Hash> nil::crypto3::mac::mac_key< hmac< Hash > >::policy_type

◆ schedule_key_type

Constructor & Destructor Documentation

◆ mac_key()

template<typename Hash >
template<typename KeyRange >
nil::crypto3::mac::mac_key< hmac< Hash > >::mac_key ( const KeyRange &  key)
inline

Member Function Documentation

◆ compute()

template<typename Hash >
digest_type nil::crypto3::mac::mac_key< hmac< Hash > >::compute ( internal_accumulator_type i_acc) const
inline

◆ init_accumulator()

template<typename Hash >
void nil::crypto3::mac::mac_key< hmac< Hash > >::init_accumulator ( internal_accumulator_type i_acc) const
inline

◆ process_schedule_key()

template<typename Hash >
template<typename KeyRange , typename policy_type::template is_key_type< KeyRange > = true>
static schedule_key_type nil::crypto3::mac::mac_key< hmac< Hash > >::process_schedule_key ( const KeyRange &  key)
inlinestaticprotected

◆ update() [1/2]

template<typename Hash >
template<typename InputIterator >
void nil::crypto3::mac::mac_key< hmac< Hash > >::update ( internal_accumulator_type i_acc,
InputIterator  first,
InputIterator  last 
) const
inline

◆ update() [2/2]

template<typename Hash >
template<typename InputRange >
void nil::crypto3::mac::mac_key< hmac< Hash > >::update ( internal_accumulator_type i_acc,
InputRange  range 
) const
inline

Member Data Documentation

◆ block_octets

template<typename Hash >
constexpr static const std::size_t nil::crypto3::mac::mac_key< hmac< Hash > >::block_octets = policy_type::block_octets
staticconstexpr

◆ schedule_key

template<typename Hash >
schedule_key_type nil::crypto3::mac::mac_key< hmac< Hash > >::schedule_key
protected

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