nil::crypto3::zk::components::sha256_compression_function_component< FieldType > Class Template Reference

#include <sha256_component.hpp>

+ Inheritance diagram for nil::crypto3::zk::components::sha256_compression_function_component< FieldType >:
+ Collaboration diagram for nil::crypto3::zk::components::sha256_compression_function_component< FieldType >:

Public Member Functions

void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 
 sha256_compression_function_component (blueprint< FieldType > &bp, const blueprint_linear_combination_vector< FieldType > &prev_output, const blueprint_variable_vector< FieldType > &new_block, const digest_variable< FieldType > &output)
 

Public Attributes

std::shared_ptr< sha256_message_schedule_component< FieldType > > message_schedule
 
blueprint_variable_vector< FieldType > new_block
 
digest_variable< FieldType > output
 
blueprint_variable_vector< FieldType > packed_W
 
blueprint_linear_combination_vector< FieldType > prev_output
 
std::vector< lastbits_component< FieldType > > reduce_output
 
blueprint_variable_vector< FieldType > reduced_output
 
std::vector< blueprint_linear_combination_vector< FieldType > > round_a
 
std::vector< blueprint_linear_combination_vector< FieldType > > round_b
 
std::vector< blueprint_linear_combination_vector< FieldType > > round_c
 
std::vector< blueprint_linear_combination_vector< FieldType > > round_d
 
std::vector< blueprint_linear_combination_vector< FieldType > > round_e
 
std::vector< blueprint_linear_combination_vector< FieldType > > round_f
 
std::vector< sha256_round_function_component< FieldType > > round_functions
 
std::vector< blueprint_linear_combination_vector< FieldType > > round_g
 
std::vector< blueprint_linear_combination_vector< FieldType > > round_h
 
blueprint_variable_vector< FieldType > unreduced_output
 

Protected Attributes

blueprint< FieldType > & bp
 

Detailed Description

template<typename FieldType>
class nil::crypto3::zk::components::sha256_compression_function_component< FieldType >

Component for the SHA256 compression function.

Constructor & Destructor Documentation

◆ sha256_compression_function_component()

template<typename FieldType >
nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::sha256_compression_function_component ( blueprint< FieldType > &  bp,
const blueprint_linear_combination_vector< FieldType > &  prev_output,
const blueprint_variable_vector< FieldType > &  new_block,
const digest_variable< FieldType > &  output 
)
inline

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename FieldType >
void nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::generate_r1cs_constraints ( )
inline

◆ generate_r1cs_witness()

template<typename FieldType >
void nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::generate_r1cs_witness ( )
inline

Member Data Documentation

◆ bp

template<typename FieldType >
blueprint<FieldType>& nil::crypto3::zk::components::component< FieldType >::bp
protectedinherited

◆ message_schedule

template<typename FieldType >
std::shared_ptr<sha256_message_schedule_component<FieldType> > nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::message_schedule

◆ new_block

template<typename FieldType >
blueprint_variable_vector<FieldType> nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::new_block

◆ output

template<typename FieldType >
digest_variable<FieldType> nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::output

◆ packed_W

template<typename FieldType >
blueprint_variable_vector<FieldType> nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::packed_W

◆ prev_output

template<typename FieldType >
blueprint_linear_combination_vector<FieldType> nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::prev_output

◆ reduce_output

template<typename FieldType >
std::vector<lastbits_component<FieldType> > nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::reduce_output

◆ reduced_output

template<typename FieldType >
blueprint_variable_vector<FieldType> nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::reduced_output

◆ round_a

template<typename FieldType >
std::vector<blueprint_linear_combination_vector<FieldType> > nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::round_a

◆ round_b

template<typename FieldType >
std::vector<blueprint_linear_combination_vector<FieldType> > nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::round_b

◆ round_c

template<typename FieldType >
std::vector<blueprint_linear_combination_vector<FieldType> > nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::round_c

◆ round_d

template<typename FieldType >
std::vector<blueprint_linear_combination_vector<FieldType> > nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::round_d

◆ round_e

template<typename FieldType >
std::vector<blueprint_linear_combination_vector<FieldType> > nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::round_e

◆ round_f

template<typename FieldType >
std::vector<blueprint_linear_combination_vector<FieldType> > nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::round_f

◆ round_functions

template<typename FieldType >
std::vector<sha256_round_function_component<FieldType> > nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::round_functions

◆ round_g

template<typename FieldType >
std::vector<blueprint_linear_combination_vector<FieldType> > nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::round_g

◆ round_h

template<typename FieldType >
std::vector<blueprint_linear_combination_vector<FieldType> > nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::round_h

◆ unreduced_output

template<typename FieldType >
blueprint_variable_vector<FieldType> nil::crypto3::zk::components::sha256_compression_function_component< FieldType >::unreduced_output

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