nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 > Class Template Reference

PRF used in TLS 1.0/1.1 with no MAC selection option. More...

#include <prf_tls.hpp>

+ Collaboration diagram for nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >:

Public Types

typedef policy_type::label_type label_type
 
typedef policy_type::mac_type1 mac_type1
 
typedef policy_type::mac_type2 mac_type2
 
typedef policy_type::salt_type salt_type
 
typedef policy_type::secret_type secret_type
 

Public Member Functions

 prf_tls (const secret_type &secret)
 

Static Public Member Functions

static void process ()
 

Static Public Attributes

constexpr static const std::size_t label_bits = policy_type::label_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
 
constexpr static const std::size_t version = policy_type::version
 

Protected Attributes

mac_type1 mac1
 
mac_type2 mac2
 

Detailed Description

template<typename MessageAuthenticationCode1, typename MessageAuthenticationCode2>
class nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >

PRF used in TLS 1.0/1.1 with no MAC selection option.

Template Parameters
MessageAuthenticationCode1TLS 1.0/1.1 requires for this type to be a HMAC(SHA1).
MessageAuthenticationCode2TLS 1.0/1.1 requires for this type to be a HMAC(MD5).
Note
Default-defined message authentication code types are not recommended to be changed in case of TLS 1.0/1.1 compatibility is required. Explicitly TLS 1.0/1.1-compliant version is defined below.

Member Typedef Documentation

◆ label_type

template<typename MessageAuthenticationCode1 , typename MessageAuthenticationCode2 >
typedef policy_type::label_type nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >::label_type

◆ mac_type1

template<typename MessageAuthenticationCode1 , typename MessageAuthenticationCode2 >
typedef policy_type::mac_type1 nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >::mac_type1

◆ mac_type2

template<typename MessageAuthenticationCode1 , typename MessageAuthenticationCode2 >
typedef policy_type::mac_type2 nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >::mac_type2

◆ salt_type

template<typename MessageAuthenticationCode1 , typename MessageAuthenticationCode2 >
typedef policy_type::salt_type nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >::salt_type

◆ secret_type

template<typename MessageAuthenticationCode1 , typename MessageAuthenticationCode2 >
typedef policy_type::secret_type nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >::secret_type

Constructor & Destructor Documentation

◆ prf_tls()

template<typename MessageAuthenticationCode1 , typename MessageAuthenticationCode2 >
nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >::prf_tls ( const secret_type secret)
inline

Member Function Documentation

◆ process()

template<typename MessageAuthenticationCode1 , typename MessageAuthenticationCode2 >
static void nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >::process ( )
inlinestatic

Member Data Documentation

◆ label_bits

template<typename MessageAuthenticationCode1 , typename MessageAuthenticationCode2 >
constexpr static const std::size_t nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >::label_bits = policy_type::label_bits
staticconstexpr

◆ mac1

template<typename MessageAuthenticationCode1 , typename MessageAuthenticationCode2 >
mac_type1 nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >::mac1
protected

◆ mac2

template<typename MessageAuthenticationCode1 , typename MessageAuthenticationCode2 >
mac_type2 nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >::mac2
protected

◆ salt_bits

template<typename MessageAuthenticationCode1 , typename MessageAuthenticationCode2 >
constexpr static const std::size_t nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >::salt_bits = policy_type::salt_bits
staticconstexpr

◆ secret_bits

template<typename MessageAuthenticationCode1 , typename MessageAuthenticationCode2 >
constexpr static const std::size_t nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >::secret_bits = policy_type::secret_bits
staticconstexpr

◆ version

template<typename MessageAuthenticationCode1 , typename MessageAuthenticationCode2 >
constexpr static const std::size_t nil::crypto3::kdf::prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >::version = policy_type::version
staticconstexpr

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