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

#include <sha256_components.hpp>

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

Public Member Functions

 sha256_round_function_gadget (protoboard< FieldT > &pb, const pb_linear_combination_array< FieldT > &a, const pb_linear_combination_array< FieldT > &b, const pb_linear_combination_array< FieldT > &c, const pb_linear_combination_array< FieldT > &d, const pb_linear_combination_array< FieldT > &e, const pb_linear_combination_array< FieldT > &f, const pb_linear_combination_array< FieldT > &g, const pb_linear_combination_array< FieldT > &h, const pb_variable< FieldT > &W, const long &K, const pb_linear_combination_array< FieldT > &new_a, const pb_linear_combination_array< FieldT > &new_e, 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

pb_variable< FieldT > sigma0
 
pb_variable< FieldT > sigma1
 
std::shared_ptr< big_sigma_gadget< FieldT > > compute_sigma0
 
std::shared_ptr< big_sigma_gadget< FieldT > > compute_sigma1
 
pb_variable< FieldT > choice
 
pb_variable< FieldT > majority
 
std::shared_ptr< choice_gadget< FieldT > > compute_choice
 
std::shared_ptr< majority_gadget< FieldT > > compute_majority
 
pb_variable< FieldT > packed_d
 
std::shared_ptr< packing_gadget< FieldT > > pack_d
 
pb_variable< FieldT > packed_h
 
std::shared_ptr< packing_gadget< FieldT > > pack_h
 
pb_variable< FieldT > unreduced_new_a
 
pb_variable< FieldT > unreduced_new_e
 
std::shared_ptr< lastbits_gadget< FieldT > > mod_reduce_new_a
 
std::shared_ptr< lastbits_gadget< FieldT > > mod_reduce_new_e
 
pb_variable< FieldT > packed_new_a
 
pb_variable< FieldT > packed_new_e
 
pb_linear_combination_array< FieldT > a
 
pb_linear_combination_array< FieldT > b
 
pb_linear_combination_array< FieldT > c
 
pb_linear_combination_array< FieldT > d
 
pb_linear_combination_array< FieldT > e
 
pb_linear_combination_array< FieldT > f
 
pb_linear_combination_array< FieldT > g
 
pb_linear_combination_array< FieldT > h
 
pb_variable< FieldT > W
 
long K
 
pb_linear_combination_array< FieldT > new_a
 
pb_linear_combination_array< FieldT > new_e
 

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_round_function_gadget< FieldT >

Definition at line 56 of file sha256_components.hpp.

Constructor & Destructor Documentation

◆ sha256_round_function_gadget()

template<typename FieldT >
libsnark::sha256_round_function_gadget< FieldT >::sha256_round_function_gadget ( protoboard< FieldT > &  pb,
const pb_linear_combination_array< FieldT > &  a,
const pb_linear_combination_array< FieldT > &  b,
const pb_linear_combination_array< FieldT > &  c,
const pb_linear_combination_array< FieldT > &  d,
const pb_linear_combination_array< FieldT > &  e,
const pb_linear_combination_array< FieldT > &  f,
const pb_linear_combination_array< FieldT > &  g,
const pb_linear_combination_array< FieldT > &  h,
const pb_variable< FieldT > &  W,
const long &  K,
const pb_linear_combination_array< FieldT > &  new_a,
const pb_linear_combination_array< FieldT > &  new_e,
const std::string &  annotation_prefix 
)

Member Function Documentation

◆ generate_r1cs_constraints()

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

◆ generate_r1cs_witness()

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

Member Data Documentation

◆ a

template<typename FieldT >
pb_linear_combination_array<FieldT> libsnark::sha256_round_function_gadget< FieldT >::a

Definition at line 79 of file sha256_components.hpp.

◆ b

template<typename FieldT >
pb_linear_combination_array<FieldT> libsnark::sha256_round_function_gadget< FieldT >::b

Definition at line 80 of file sha256_components.hpp.

◆ c

template<typename FieldT >
pb_linear_combination_array<FieldT> libsnark::sha256_round_function_gadget< FieldT >::c

Definition at line 81 of file sha256_components.hpp.

◆ choice

template<typename FieldT >
pb_variable<FieldT> libsnark::sha256_round_function_gadget< FieldT >::choice

Definition at line 63 of file sha256_components.hpp.

◆ compute_choice

template<typename FieldT >
std::shared_ptr<choice_gadget<FieldT> > libsnark::sha256_round_function_gadget< FieldT >::compute_choice

Definition at line 65 of file sha256_components.hpp.

◆ compute_majority

template<typename FieldT >
std::shared_ptr<majority_gadget<FieldT> > libsnark::sha256_round_function_gadget< FieldT >::compute_majority

Definition at line 66 of file sha256_components.hpp.

◆ compute_sigma0

template<typename FieldT >
std::shared_ptr<big_sigma_gadget<FieldT> > libsnark::sha256_round_function_gadget< FieldT >::compute_sigma0

Definition at line 61 of file sha256_components.hpp.

◆ compute_sigma1

template<typename FieldT >
std::shared_ptr<big_sigma_gadget<FieldT> > libsnark::sha256_round_function_gadget< FieldT >::compute_sigma1

Definition at line 62 of file sha256_components.hpp.

◆ d

template<typename FieldT >
pb_linear_combination_array<FieldT> libsnark::sha256_round_function_gadget< FieldT >::d

Definition at line 82 of file sha256_components.hpp.

◆ e

template<typename FieldT >
pb_linear_combination_array<FieldT> libsnark::sha256_round_function_gadget< FieldT >::e

Definition at line 83 of file sha256_components.hpp.

◆ f

template<typename FieldT >
pb_linear_combination_array<FieldT> libsnark::sha256_round_function_gadget< FieldT >::f

Definition at line 84 of file sha256_components.hpp.

◆ g

template<typename FieldT >
pb_linear_combination_array<FieldT> libsnark::sha256_round_function_gadget< FieldT >::g

Definition at line 85 of file sha256_components.hpp.

◆ h

template<typename FieldT >
pb_linear_combination_array<FieldT> libsnark::sha256_round_function_gadget< FieldT >::h

Definition at line 86 of file sha256_components.hpp.

◆ K

template<typename FieldT >
long libsnark::sha256_round_function_gadget< FieldT >::K

Definition at line 88 of file sha256_components.hpp.

◆ majority

template<typename FieldT >
pb_variable<FieldT> libsnark::sha256_round_function_gadget< FieldT >::majority

Definition at line 64 of file sha256_components.hpp.

◆ mod_reduce_new_a

template<typename FieldT >
std::shared_ptr<lastbits_gadget<FieldT> > libsnark::sha256_round_function_gadget< FieldT >::mod_reduce_new_a

Definition at line 73 of file sha256_components.hpp.

◆ mod_reduce_new_e

template<typename FieldT >
std::shared_ptr<lastbits_gadget<FieldT> > libsnark::sha256_round_function_gadget< FieldT >::mod_reduce_new_e

Definition at line 74 of file sha256_components.hpp.

◆ new_a

template<typename FieldT >
pb_linear_combination_array<FieldT> libsnark::sha256_round_function_gadget< FieldT >::new_a

Definition at line 89 of file sha256_components.hpp.

◆ new_e

template<typename FieldT >
pb_linear_combination_array<FieldT> libsnark::sha256_round_function_gadget< FieldT >::new_e

Definition at line 90 of file sha256_components.hpp.

◆ pack_d

template<typename FieldT >
std::shared_ptr<packing_gadget<FieldT> > libsnark::sha256_round_function_gadget< FieldT >::pack_d

Definition at line 68 of file sha256_components.hpp.

◆ pack_h

template<typename FieldT >
std::shared_ptr<packing_gadget<FieldT> > libsnark::sha256_round_function_gadget< FieldT >::pack_h

Definition at line 70 of file sha256_components.hpp.

◆ packed_d

template<typename FieldT >
pb_variable<FieldT> libsnark::sha256_round_function_gadget< FieldT >::packed_d

Definition at line 67 of file sha256_components.hpp.

◆ packed_h

template<typename FieldT >
pb_variable<FieldT> libsnark::sha256_round_function_gadget< FieldT >::packed_h

Definition at line 69 of file sha256_components.hpp.

◆ packed_new_a

template<typename FieldT >
pb_variable<FieldT> libsnark::sha256_round_function_gadget< FieldT >::packed_new_a

Definition at line 75 of file sha256_components.hpp.

◆ packed_new_e

template<typename FieldT >
pb_variable<FieldT> libsnark::sha256_round_function_gadget< FieldT >::packed_new_e

Definition at line 76 of file sha256_components.hpp.

◆ sigma0

template<typename FieldT >
pb_variable<FieldT> libsnark::sha256_round_function_gadget< FieldT >::sigma0

Definition at line 59 of file sha256_components.hpp.

◆ sigma1

template<typename FieldT >
pb_variable<FieldT> libsnark::sha256_round_function_gadget< FieldT >::sigma1

Definition at line 60 of file sha256_components.hpp.

◆ unreduced_new_a

template<typename FieldT >
pb_variable<FieldT> libsnark::sha256_round_function_gadget< FieldT >::unreduced_new_a

Definition at line 71 of file sha256_components.hpp.

◆ unreduced_new_e

template<typename FieldT >
pb_variable<FieldT> libsnark::sha256_round_function_gadget< FieldT >::unreduced_new_e

Definition at line 72 of file sha256_components.hpp.

◆ W

template<typename FieldT >
pb_variable<FieldT> libsnark::sha256_round_function_gadget< FieldT >::W

Definition at line 87 of file sha256_components.hpp.


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