nil::crypto3::zk::components::hmac_component< FieldType, Hash1, Hash2 > Class Template Reference

#include <hmac_component.hpp>

+ Inheritance diagram for nil::crypto3::zk::components::hmac_component< FieldType, Hash1, Hash2 >:
+ Collaboration diagram for nil::crypto3::zk::components::hmac_component< FieldType, Hash1, Hash2 >:

Public Member Functions

void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 
 hmac_component (blueprint< FieldType > &bp, const block_variable< FieldType > &key, const block_variable< FieldType > &message, const typename Hash2::hash_variable_type &output)
 

Static Public Member Functions

static Hash2::hash_value_type get_hmac (const std::vector< bool > &key, const std::vector< bool > &message)
 

Public Attributes

std::shared_ptr< Hash1 > hash1
 
std::shared_ptr< digest_variable< FieldType > > hash1_result
 
std::shared_ptr< Hash2 > hash2
 
blueprint_variable_vector< FieldType > key_xor_ipad
 
blueprint_variable_vector< FieldType > key_xor_opad
 
blueprint_variable_vector< FieldType > padded_key
 
blueprint_variable< FieldType > zero
 

Constructor & Destructor Documentation

◆ hmac_component()

template<typename FieldType , typename Hash1 , typename Hash2 = Hash1>
nil::crypto3::zk::components::hmac_component< FieldType, Hash1, Hash2 >::hmac_component ( blueprint< FieldType > &  bp,
const block_variable< FieldType > &  key,
const block_variable< FieldType > &  message,
const typename Hash2::hash_variable_type &  output 
)
inline

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename FieldType , typename Hash1 , typename Hash2 = Hash1>
void nil::crypto3::zk::components::hmac_component< FieldType, Hash1, Hash2 >::generate_r1cs_constraints ( )
inline

◆ generate_r1cs_witness()

template<typename FieldType , typename Hash1 , typename Hash2 = Hash1>
void nil::crypto3::zk::components::hmac_component< FieldType, Hash1, Hash2 >::generate_r1cs_witness ( )
inline

◆ get_hmac()

template<typename FieldType , typename Hash1 , typename Hash2 = Hash1>
static Hash2::hash_value_type nil::crypto3::zk::components::hmac_component< FieldType, Hash1, Hash2 >::get_hmac ( const std::vector< bool > &  key,
const std::vector< bool > &  message 
)
inlinestatic

Member Data Documentation

◆ hash1

template<typename FieldType , typename Hash1 , typename Hash2 = Hash1>
std::shared_ptr<Hash1> nil::crypto3::zk::components::hmac_component< FieldType, Hash1, Hash2 >::hash1

◆ hash1_result

template<typename FieldType , typename Hash1 , typename Hash2 = Hash1>
std::shared_ptr<digest_variable<FieldType> > nil::crypto3::zk::components::hmac_component< FieldType, Hash1, Hash2 >::hash1_result

◆ hash2

template<typename FieldType , typename Hash1 , typename Hash2 = Hash1>
std::shared_ptr<Hash2> nil::crypto3::zk::components::hmac_component< FieldType, Hash1, Hash2 >::hash2

◆ key_xor_ipad

template<typename FieldType , typename Hash1 , typename Hash2 = Hash1>
blueprint_variable_vector<FieldType> nil::crypto3::zk::components::hmac_component< FieldType, Hash1, Hash2 >::key_xor_ipad

◆ key_xor_opad

template<typename FieldType , typename Hash1 , typename Hash2 = Hash1>
blueprint_variable_vector<FieldType> nil::crypto3::zk::components::hmac_component< FieldType, Hash1, Hash2 >::key_xor_opad

◆ padded_key

template<typename FieldType , typename Hash1 , typename Hash2 = Hash1>
blueprint_variable_vector<FieldType> nil::crypto3::zk::components::hmac_component< FieldType, Hash1, Hash2 >::padded_key

◆ zero

template<typename FieldType , typename Hash1 , typename Hash2 = Hash1>
blueprint_variable<FieldType> nil::crypto3::zk::components::hmac_component< FieldType, Hash1, Hash2 >::zero

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