nil::crypto3::mac Namespace Reference

Namespaces

 detail
 

Classes

class  ansi_x919_mac
 DES/3DES-based MAC from ANSI X9.19. More...
 
struct  cbc_mac
 CBC-MAC. More...
 
struct  cmac
 CMAC, also known as OMAC1. More...
 
class  gmac
 GMAC. More...
 
struct  hmac
 
struct  mac_key
 Mac key - a key that can be used to create and verify MAC. More...
 
struct  mac_key< hmac< Hash > >
 
struct  nop_padding
 
class  poly_1305
 DJB's Poly1305. More...
 
struct  processing_policies
 
class  siphash
 

Typedefs

using BlockCipher = boost::accumulators::accumulator_set< mac::digest< MessageAuthenticationCode::input_block_bits >, boost::accumulators::features< accumulators::tag::mac< MessageAuthenticationCode > >>
 
template<typename ProcessingPolicy >
using computation_accumulator_set = boost::accumulators::accumulator_set< typename ProcessingPolicy::result_type, boost::accumulators::features< accumulators::tag::mac< ProcessingPolicy > >>
 
template<typename Mac , template< typename > class Padding = nop_padding>
using computation_policy = typename processing_policies< Mac, Padding >::computation_policy
 
template<typename BlockCipher >
using omac1 = cmac< BlockCipher >
 

Functions

template<typename MessageAuthenticationCode , typename OutputRange , typename SinglePassRange >
OutputRange verify (const SinglePassRange &rng)
 
template<typename MessageAuthenticationCode , typename SinglePassRange , typename OutputIterator >
OutputIterator verify (const SinglePassRange &rng, OutputIterator out)
 
template<typename MessageAuthenticationCode , typename InputIterator , typename OutputIterator >
OutputIterator verify (InputIterator first, InputIterator last, OutputIterator out)
 

Typedef Documentation

◆ BlockCipher

using nil::crypto3::mac::BlockCipher = typedef boost::accumulators::accumulator_set< mac::digest<MessageAuthenticationCode::input_block_bits>, boost::accumulators::features<accumulators::tag::mac<MessageAuthenticationCode> >>

◆ computation_accumulator_set

template<typename ProcessingPolicy >
using nil::crypto3::mac::computation_accumulator_set = typedef boost::accumulators::accumulator_set< typename ProcessingPolicy::result_type, boost::accumulators::features<accumulators::tag::mac<ProcessingPolicy> >>

◆ computation_policy

template<typename Mac , template< typename > class Padding = nop_padding>
using nil::crypto3::mac::computation_policy = typedef typename processing_policies<Mac, Padding>::computation_policy

◆ omac1

template<typename BlockCipher >
using nil::crypto3::mac::omac1 = typedef cmac<BlockCipher>

Function Documentation

◆ verify() [1/3]

template<typename MessageAuthenticationCode , typename OutputRange , typename SinglePassRange >
OutputRange nil::crypto3::mac::verify ( const SinglePassRange &  rng)
Template Parameters
MessageAuthenticationCode
OutputRange
SinglePassRange
Parameters
rng
Returns

◆ verify() [2/3]

template<typename MessageAuthenticationCode , typename SinglePassRange , typename OutputIterator >
OutputIterator nil::crypto3::mac::verify ( const SinglePassRange &  rng,
OutputIterator  out 
)
Template Parameters
MessageAuthenticationCode
SinglePassRange
OutputIterator
Parameters
rng
out
Returns

◆ verify() [3/3]

template<typename MessageAuthenticationCode , typename InputIterator , typename OutputIterator >
OutputIterator nil::crypto3::mac::verify ( InputIterator  first,
InputIterator  last,
OutputIterator  out 
)
Template Parameters
MessageAuthenticationCode
InputIterator
OutputIterator
Parameters
first
last
out
Returns