Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Member Functions | Public Attributes | List of all members
libsnark::sha256_compression_function_gadget< FieldT > Class Template Reference

#include <sha256_gadget.hpp>

Inheritance diagram for libsnark::sha256_compression_function_gadget< FieldT >:
Inheritance graph
[legend]
Collaboration diagram for libsnark::sha256_compression_function_gadget< FieldT >:
Collaboration graph
[legend]

Public Member Functions

 sha256_compression_function_gadget (protoboard< FieldT > &pb, const pb_linear_combination_array< FieldT > &prev_output, const pb_variable_array< FieldT > &new_block, const digest_variable< FieldT > &output, const std::string &annotation_prefix)
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 
- Public Member Functions inherited from libsnark::gadget< FieldT >
 gadget (protoboard< FieldT > &pb, const std::string &annotation_prefix)
 

Public Attributes

std::vector< pb_linear_combination_array< FieldT > > round_a
 
std::vector< pb_linear_combination_array< FieldT > > round_b
 
std::vector< pb_linear_combination_array< FieldT > > round_c
 
std::vector< pb_linear_combination_array< FieldT > > round_d
 
std::vector< pb_linear_combination_array< FieldT > > round_e
 
std::vector< pb_linear_combination_array< FieldT > > round_f
 
std::vector< pb_linear_combination_array< FieldT > > round_g
 
std::vector< pb_linear_combination_array< FieldT > > round_h
 
pb_variable_array< FieldT > packed_W
 
std::shared_ptr< sha256_message_schedule_gadget< FieldT > > message_schedule
 
std::vector< sha256_round_function_gadget< FieldT > > round_functions
 
pb_variable_array< FieldT > unreduced_output
 
pb_variable_array< FieldT > reduced_output
 
std::vector< lastbits_gadget< FieldT > > reduce_output
 
pb_linear_combination_array< FieldT > prev_output
 
pb_variable_array< FieldT > new_block
 
digest_variable< FieldT > output
 

Additional Inherited Members

- Protected Attributes inherited from libsnark::gadget< FieldT >
protoboard< FieldT > & pb
 
const std::string annotation_prefix
 

Detailed Description

template<typename FieldT>
class libsnark::sha256_compression_function_gadget< FieldT >

Gadget for the SHA256 compression function.

Definition at line 27 of file sha256_gadget.hpp.

Constructor & Destructor Documentation

◆ sha256_compression_function_gadget()

template<typename FieldT >
libsnark::sha256_compression_function_gadget< FieldT >::sha256_compression_function_gadget ( protoboard< FieldT > &  pb,
const pb_linear_combination_array< FieldT > &  prev_output,
const pb_variable_array< FieldT > &  new_block,
const digest_variable< FieldT > &  output,
const std::string &  annotation_prefix 
)

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename FieldT >
void libsnark::sha256_compression_function_gadget< FieldT >::generate_r1cs_constraints ( )

◆ generate_r1cs_witness()

template<typename FieldT >
void libsnark::sha256_compression_function_gadget< FieldT >::generate_r1cs_witness ( )

Member Data Documentation

◆ message_schedule

template<typename FieldT >
std::shared_ptr<sha256_message_schedule_gadget<FieldT> > libsnark::sha256_compression_function_gadget< FieldT >::message_schedule

Definition at line 40 of file sha256_gadget.hpp.

◆ new_block

template<typename FieldT >
pb_variable_array<FieldT> libsnark::sha256_compression_function_gadget< FieldT >::new_block

Definition at line 49 of file sha256_gadget.hpp.

◆ output

template<typename FieldT >
digest_variable<FieldT> libsnark::sha256_compression_function_gadget< FieldT >::output

Definition at line 50 of file sha256_gadget.hpp.

◆ packed_W

template<typename FieldT >
pb_variable_array<FieldT> libsnark::sha256_compression_function_gadget< FieldT >::packed_W

Definition at line 39 of file sha256_gadget.hpp.

◆ prev_output

template<typename FieldT >
pb_linear_combination_array<FieldT> libsnark::sha256_compression_function_gadget< FieldT >::prev_output

Definition at line 48 of file sha256_gadget.hpp.

◆ reduce_output

template<typename FieldT >
std::vector<lastbits_gadget<FieldT> > libsnark::sha256_compression_function_gadget< FieldT >::reduce_output

Definition at line 45 of file sha256_gadget.hpp.

◆ reduced_output

template<typename FieldT >
pb_variable_array<FieldT> libsnark::sha256_compression_function_gadget< FieldT >::reduced_output

Definition at line 44 of file sha256_gadget.hpp.

◆ round_a

template<typename FieldT >
std::vector<pb_linear_combination_array<FieldT> > libsnark::sha256_compression_function_gadget< FieldT >::round_a

Definition at line 30 of file sha256_gadget.hpp.

◆ round_b

template<typename FieldT >
std::vector<pb_linear_combination_array<FieldT> > libsnark::sha256_compression_function_gadget< FieldT >::round_b

Definition at line 31 of file sha256_gadget.hpp.

◆ round_c

template<typename FieldT >
std::vector<pb_linear_combination_array<FieldT> > libsnark::sha256_compression_function_gadget< FieldT >::round_c

Definition at line 32 of file sha256_gadget.hpp.

◆ round_d

template<typename FieldT >
std::vector<pb_linear_combination_array<FieldT> > libsnark::sha256_compression_function_gadget< FieldT >::round_d

Definition at line 33 of file sha256_gadget.hpp.

◆ round_e

template<typename FieldT >
std::vector<pb_linear_combination_array<FieldT> > libsnark::sha256_compression_function_gadget< FieldT >::round_e

Definition at line 34 of file sha256_gadget.hpp.

◆ round_f

template<typename FieldT >
std::vector<pb_linear_combination_array<FieldT> > libsnark::sha256_compression_function_gadget< FieldT >::round_f

Definition at line 35 of file sha256_gadget.hpp.

◆ round_functions

template<typename FieldT >
std::vector<sha256_round_function_gadget<FieldT> > libsnark::sha256_compression_function_gadget< FieldT >::round_functions

Definition at line 41 of file sha256_gadget.hpp.

◆ round_g

template<typename FieldT >
std::vector<pb_linear_combination_array<FieldT> > libsnark::sha256_compression_function_gadget< FieldT >::round_g

Definition at line 36 of file sha256_gadget.hpp.

◆ round_h

template<typename FieldT >
std::vector<pb_linear_combination_array<FieldT> > libsnark::sha256_compression_function_gadget< FieldT >::round_h

Definition at line 37 of file sha256_gadget.hpp.

◆ unreduced_output

template<typename FieldT >
pb_variable_array<FieldT> libsnark::sha256_compression_function_gadget< FieldT >::unreduced_output

Definition at line 43 of file sha256_gadget.hpp.


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