sha256_construction.hpp
Go to the documentation of this file.
25 // @file Declaration of interfaces for components for the SHA256 message schedule and round function.
Definition: sha256_aux.hpp:188
Definition: blueprint_linear_combination.hpp:115
Definition: blueprint_linear_combination.hpp:47
void assign(blueprint< field_type > &bp, const snark::linear_combination< field_type > &lc)
Definition: blueprint_linear_combination.hpp:65
void evaluate(blueprint< field_type > &bp) const
Definition: blueprint_linear_combination.hpp:71
Definition: blueprint_variable.hpp:57
Definition: blueprint_variable.hpp:46
Definition: blueprint.hpp:46
Definition: sha256_aux.hpp:237
Definition: component.hpp:37
Definition: sha256_aux.hpp:40
Definition: sha256_aux.hpp:284
Definition: packing.hpp:57
Definition: sha256_construction.hpp:45
blueprint_variable_vector< FieldType > M
Definition: sha256_construction.hpp:58
std::vector< blueprint_variable< FieldType > > sigma0
Definition: sha256_construction.hpp:50
std::vector< std::shared_ptr< packing_component< FieldType > > > pack_W
Definition: sha256_construction.hpp:48
std::vector< std::shared_ptr< lastbits_component< FieldType > > > mod_reduce_W
Definition: sha256_construction.hpp:55
void generate_r1cs_constraints()
Definition: sha256_construction.hpp:110
std::vector< std::shared_ptr< small_sigma_component< FieldType > > > compute_sigma1
Definition: sha256_construction.hpp:53
std::vector< std::shared_ptr< small_sigma_component< FieldType > > > compute_sigma0
Definition: sha256_construction.hpp:52
std::vector< blueprint_variable< FieldType > > unreduced_W
Definition: sha256_construction.hpp:54
void generate_r1cs_witness()
Definition: sha256_construction.hpp:127
std::vector< blueprint_variable< FieldType > > sigma1
Definition: sha256_construction.hpp:51
sha256_message_schedule_component(blueprint< FieldType > &bp, const blueprint_variable_vector< FieldType > &M, const blueprint_variable_vector< FieldType > &packed_W)
Definition: sha256_construction.hpp:60
std::vector< blueprint_variable_vector< FieldType > > W_bits
Definition: sha256_construction.hpp:47
blueprint_variable_vector< FieldType > packed_W
Definition: sha256_construction.hpp:59
Definition: sha256_construction.hpp:146
void generate_r1cs_constraints()
Definition: sha256_construction.hpp:232
blueprint_linear_combination_vector< FieldType > d
Definition: sha256_construction.hpp:171
blueprint_variable< FieldType > W
Definition: sha256_construction.hpp:176
std::shared_ptr< packing_component< FieldType > > pack_d
Definition: sha256_construction.hpp:157
sha256_round_function_component(blueprint< FieldType > &bp, const blueprint_linear_combination_vector< FieldType > &a, const blueprint_linear_combination_vector< FieldType > &b, const blueprint_linear_combination_vector< FieldType > &c, const blueprint_linear_combination_vector< FieldType > &d, const blueprint_linear_combination_vector< FieldType > &e, const blueprint_linear_combination_vector< FieldType > &f, const blueprint_linear_combination_vector< FieldType > &g, const blueprint_linear_combination_vector< FieldType > &h, const blueprint_variable< FieldType > &W, const long &K, const blueprint_linear_combination_vector< FieldType > &new_a, const blueprint_linear_combination_vector< FieldType > &new_e)
Definition: sha256_construction.hpp:181
long K
Definition: sha256_construction.hpp:177
blueprint_variable< FieldType > packed_h
Definition: sha256_construction.hpp:158
blueprint_linear_combination_vector< FieldType > b
Definition: sha256_construction.hpp:169
blueprint_linear_combination_vector< FieldType > h
Definition: sha256_construction.hpp:175
blueprint_variable< FieldType > majority
Definition: sha256_construction.hpp:153
blueprint_linear_combination_vector< FieldType > new_e
Definition: sha256_construction.hpp:179
blueprint_variable< FieldType > packed_d
Definition: sha256_construction.hpp:156
std::shared_ptr< majority_component< FieldType > > compute_majority
Definition: sha256_construction.hpp:155
std::shared_ptr< choice_component< FieldType > > compute_choice
Definition: sha256_construction.hpp:154
blueprint_linear_combination_vector< FieldType > new_a
Definition: sha256_construction.hpp:178
blueprint_variable< FieldType > sigma1
Definition: sha256_construction.hpp:149
blueprint_variable< FieldType > packed_new_a
Definition: sha256_construction.hpp:164
blueprint_linear_combination_vector< FieldType > e
Definition: sha256_construction.hpp:172
blueprint_linear_combination_vector< FieldType > g
Definition: sha256_construction.hpp:174
void generate_r1cs_witness()
Definition: sha256_construction.hpp:252
std::shared_ptr< big_sigma_component< FieldType > > compute_sigma0
Definition: sha256_construction.hpp:150
blueprint_linear_combination_vector< FieldType > f
Definition: sha256_construction.hpp:173
blueprint_variable< FieldType > packed_new_e
Definition: sha256_construction.hpp:165
std::shared_ptr< big_sigma_component< FieldType > > compute_sigma1
Definition: sha256_construction.hpp:151
blueprint_variable< FieldType > sigma0
Definition: sha256_construction.hpp:148
blueprint_linear_combination_vector< FieldType > c
Definition: sha256_construction.hpp:170
blueprint_linear_combination_vector< FieldType > a
Definition: sha256_construction.hpp:168
std::shared_ptr< lastbits_component< FieldType > > mod_reduce_new_e
Definition: sha256_construction.hpp:163
blueprint_variable< FieldType > unreduced_new_e
Definition: sha256_construction.hpp:161
blueprint_variable< FieldType > choice
Definition: sha256_construction.hpp:152
blueprint_variable< FieldType > unreduced_new_a
Definition: sha256_construction.hpp:160
std::shared_ptr< packing_component< FieldType > > pack_h
Definition: sha256_construction.hpp:159
std::shared_ptr< lastbits_component< FieldType > > mod_reduce_new_a
Definition: sha256_construction.hpp:162
Definition: sha256_aux.hpp:139
blueprint_linear_combination_vector< FieldType > SHA256_default_IV(blueprint< FieldType > &bp)
Definition: sha256_construction.hpp:274
Definition: pair.hpp:31
Definition: r1cs.hpp:60