nil::crypto3::kdf Namespace Reference

Namespaces

 detail
 
 mode
 

Classes

class  hkdf
 
class  kdf1
 KDF1, from IEEE 1363. More...
 
class  kdf1_18033
 KDF1 from ISO 18033-2. More...
 
class  kdf2
 KDF2 from IEEE 1363. More...
 
class  prf_tls
 
class  prf_tls< 1, mac::hmac< hashes::sha1 >, mac::hmac< hashes::md5 > >
 Explicitly TLS 1.0/1.1-compliant PRF version. More...
 
class  prf_tls< 1, MessageAuthenticationCode1, MessageAuthenticationCode2 >
 PRF used in TLS 1.0/1.1 with no MAC selection option. More...
 
class  prf_tls< 2, MessageAuthenticationCode, MessageAuthenticationCode >
 PRF used in TLS 1.2. More...
 
class  sp800_108
 NIST SP 800-108 KDF. More...
 
class  sp800_56a
 KDF defined in NIST SP 800-56a revision 2 (Single-step key-derivation function) More...
 
class  sp800_56a< Hash, typename std::enable_if< is_hash< Hash >::value >::type >
 Hash version of SP 800-56a KDF. More...
 
class  sp800_56a< mac::hmac< Hash >, typename std::enable_if< is_mac< mac::hmac< Hash > >::value >::type >
 Strictly standard-compliant SP 800-56a version. More...
 
class  sp800_56a< MessageAuthenticationCode, typename std::enable_if< is_mac< MessageAuthenticationCode >::value >::type >
 MAC version of SP 800-56a KDF. More...
 
class  sp800_56c
 NIST SP 800-56C KDF. More...
 
class  x942_prf
 PRF from ANSI X9.42. More...
 

Typedefs

template<typename KeyDerivationFunction >
using accumulator_set = boost::accumulators::accumulator_set< digest< KeyDerivationFunction::input_block_bits >, boost::accumulators::features< accumulators::tag::hash< typename KeyDerivationFunction::hash_type >, accumulators::tag::kdf< KeyDerivationFunction > >>
 

Functions

template<typename Kdf , typename SinglePassRange , typename KdfAccumulator = typename kdf::accumulator_set<Kdf>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< KdfAccumulator >::value, KdfAccumulator >::type & derive (const SinglePassRange &rng, KdfAccumulator &kdf)
 
template<typename Kdf , typename SinglePassRange , typename OutputIterator >
OutputIterator derive (const SinglePassRange &rng, OutputIterator out)
 
template<typename Kdf , typename InputIterator , typename KdfAccumulator = typename kdf::accumulator_set<Kdf>>
std::enable_if< boost::accumulators::detail::is_accumulator_set< KdfAccumulator >::value, KdfAccumulator >::type & derive (InputIterator first, InputIterator last, KdfAccumulator &acc)
 
template<typename Kdf , typename InputIterator , typename OutputIterator >
std::enable_if<!boost::accumulators::detail::is_accumulator_set< OutputIterator >::value, OutputIterator >::type derive (InputIterator first, InputIterator last, OutputIterator out)
 

Typedef Documentation

◆ accumulator_set

template<typename KeyDerivationFunction >
using nil::crypto3::kdf::accumulator_set = typedef boost::accumulators::accumulator_set< digest<KeyDerivationFunction::input_block_bits>, boost::accumulators::features<accumulators::tag::hash<typename KeyDerivationFunction::hash_type>, accumulators::tag::kdf<KeyDerivationFunction> >>