Skip to content

Commit d9486f2

Browse files
committed
last commit
1 parent bda8275 commit d9486f2

File tree

3 files changed

+44
-42
lines changed

3 files changed

+44
-42
lines changed

barretenberg/cpp/src/barretenberg/boomerang_value_detection/graph.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -496,8 +496,10 @@ inline void Graph_<FF>::process_current_plookup_gate(bb::UltraCircuitBuilder& ul
496496
if (id == bb::plookup::SHA256_WITNESS_SLICE_3 || id == bb::plookup::SHA256_WITNESS_SLICE_7_ROTATE_4 ||
497497
id == bb::plookup::SHA256_WITNESS_SLICE_8_ROTATE_7 ||
498498
id == bb::plookup::SHA256_WITNESS_SLICE_14_ROTATE_1 || id == bb::plookup::SHA256_BASE16_ROTATE2 ||
499-
id == bb::plookup::SHA256_BASE16 || id == bb::plookup::SHA256_BASE28_ROTATE6 ||
500-
id == bb::plookup::SHA256_BASE28_ROTATE3) {
499+
id == bb::plookup::SHA256_BASE16 || id == bb::plookup::SHA256_BASE16_ROTATE6 ||
500+
id == bb::plookup::SHA256_BASE16_ROTATE7 || id == bb::plookup::SHA256_BASE16_ROTATE8 ||
501+
id == bb::plookup::SHA256_BASE28_ROTATE6 || id == bb::plookup::SHA256_BASE28_ROTATE3 ||
502+
id == bb::plookup::SHA256_BASE28) {
501503
uint32_t real_right_idx = to_real(lookup_block.w_r()[gate_index]);
502504
uint32_t real_out_idx = to_real(lookup_block.w_o()[gate_index]);
503505
if (variables_gate_counts[real_out_idx] != 1 || variables_gate_counts[real_right_idx] != 1) {

barretenberg/cpp/src/barretenberg/boomerang_value_detection/variables_gate_counts.sha256.test.cpp

+36-36
Original file line numberDiff line numberDiff line change
@@ -73,42 +73,6 @@ TEST(ultra_circuit_constructor, test_variables_gate_counts_for_sha256_55_bytes)
7373
}
7474
}
7575

76-
HEAVY_TEST(ultra_circuit_constructor, test_variable_gates_count_for_sha256_NIST_vector_five)
77-
{
78-
auto builder = Builder();
79-
80-
packed_byte_array_ct input(
81-
&builder,
82-
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
83-
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
84-
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
85-
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
86-
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
87-
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
88-
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
89-
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
90-
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
91-
"AAAAAAAAAA");
92-
93-
packed_byte_array_ct output_bits = stdlib::sha256(input);
94-
Graph graph = Graph(builder);
95-
std::unordered_set<uint32_t> variables_in_on_gate = graph.show_variables_in_one_gate(builder);
96-
for (const auto& elem : variables_in_on_gate) {
97-
bool result1 = check_in_byte_array(elem, input);
98-
bool result2 = check_in_byte_array(elem, output_bits);
99-
bool result3 = check_in_range_lists(elem, 3, builder);
100-
bool check = (result1 == 1) || (result2 == 1) || (result3 == 1);
101-
if (check == false) {
102-
info("elem == ", elem);
103-
info(result1);
104-
info(result2);
105-
info(result3);
106-
info();
107-
}
108-
EXPECT_EQ(check, true);
109-
}
110-
}
111-
11276
TEST(ultra_circuit_constructor, test_variable_gates_count_for_sha256_NIST_vector_one)
11377
{
11478
auto builder = Builder();
@@ -185,4 +149,40 @@ TEST(ultra_circuit_constructor, test_variable_gates_count_sha256_NIST_vector_fou
185149
bool check = (result1 == 1) || (result2 == 1) || (result3 == 1);
186150
EXPECT_EQ(check, true);
187151
}
152+
}
153+
154+
HEAVY_TEST(ultra_circuit_constructor, test_variable_gates_count_for_sha256_NIST_vector_five)
155+
{
156+
auto builder = Builder();
157+
158+
packed_byte_array_ct input(
159+
&builder,
160+
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
161+
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
162+
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
163+
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
164+
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
165+
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
166+
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
167+
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
168+
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
169+
"AAAAAAAAAA");
170+
171+
packed_byte_array_ct output_bits = stdlib::sha256(input);
172+
Graph graph = Graph(builder);
173+
std::unordered_set<uint32_t> variables_in_on_gate = graph.show_variables_in_one_gate(builder);
174+
for (const auto& elem : variables_in_on_gate) {
175+
bool result1 = check_in_byte_array(elem, input);
176+
bool result2 = check_in_byte_array(elem, output_bits);
177+
bool result3 = check_in_range_lists(elem, 3, builder);
178+
bool check = (result1 == 1) || (result2 == 1) || (result3 == 1);
179+
if (check == false) {
180+
info("elem == ", elem);
181+
info(result1);
182+
info(result2);
183+
info(result3);
184+
info();
185+
}
186+
EXPECT_EQ(check, true);
187+
}
188188
}

barretenberg/cpp/src/barretenberg/stdlib/hash/sha256/sha256_plookup.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -271,15 +271,15 @@ std::array<field_t<Builder>, 8> sha256_block(const std::array<field_t<Builder>,
271271
/**
272272
* Initialize round variables with previous block output
273273
**/
274-
auto a = map_into_maj_sparse_form(h_init[0]);
274+
sparse_value<Builder> a = sparse_value<Builder>(h_init[0]);
275275
auto b = map_into_maj_sparse_form(h_init[1]);
276276
auto c = map_into_maj_sparse_form(h_init[2]);
277277
// auto d = sparse_value<Builder>(h_init[3]);
278-
auto d = map_into_maj_sparse_form(h_init[3]);
279-
auto e = map_into_choose_sparse_form(h_init[4]);
278+
sparse_value<Builder> d = sparse_value<Builder>(h_init[3]);
279+
sparse_value<Builder> e = sparse_value<Builder>(h_init[4]);
280280
auto f = map_into_choose_sparse_form(h_init[5]);
281281
auto g = map_into_choose_sparse_form(h_init[6]);
282-
auto h = map_into_choose_sparse_form(h_init[7]);
282+
sparse_value<Builder> h = sparse_value<Builder>(h_init[7]);
283283

284284
/**
285285
* Extend witness

0 commit comments

Comments
 (0)