Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
sha256_trace.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4
10
11namespace bb::avm2::tracegen {
12
13class Sha256TraceBuilder final {
14 public:
17
19
20 private:
21 uint32_t row = 1; // Start from 1 to avoid the precomputed row.
22
23 void into_limbs_with_witness(const uint64_t, const uint8_t b, Column c_lhs, Column c_rhs, TraceContainer& trace);
24 uint32_t ror_with_witness(
25 const uint32_t val, const uint8_t shift, Column c_result, Column c_lhs, Column c_rhs, TraceContainer& trace);
26 uint32_t shr_with_witness(
27 const uint32_t val, const uint8_t shift, Column c_result, Column c_lhs, Column c_rhs, TraceContainer& trace);
29 std::array<uint32_t, 8> compute_compression_with_witness(const std::array<uint32_t, 8>& state,
30 uint32_t round_w,
31 uint32_t round_constant,
32 uint32_t row,
35 void set_init_state_cols(const std::array<uint32_t, 8>& init_state, TraceContainer& trace);
36 void set_state_cols(const std::array<uint32_t, 8>& state, TraceContainer& trace);
37 void compute_sha256_output(const std::array<uint32_t, 8>& out_state,
38 const std::array<uint32_t, 8>& init_state,
40};
41
42} // namespace bb::avm2::tracegen
void process(const simulation::EventEmitterInterface< simulation::Sha256CompressionEvent >::Container &events, TraceContainer &trace)
uint32_t shr_with_witness(const uint32_t val, const uint8_t shift, Column c_result, Column c_lhs, Column c_rhs, TraceContainer &trace)
static const InteractionDefinition interactions
void into_limbs_with_witness(const uint64_t, const uint8_t b, Column c_lhs, Column c_rhs, TraceContainer &trace)
std::array< uint32_t, 8 > compute_compression_with_witness(const std::array< uint32_t, 8 > &state, uint32_t round_w, uint32_t round_constant, uint32_t row, TraceContainer &trace)
void compute_sha256_output(const std::array< uint32_t, 8 > &out_state, const std::array< uint32_t, 8 > &init_state, TraceContainer &trace)
uint32_t ror_with_witness(const uint32_t val, const uint8_t shift, Column c_result, Column c_lhs, Column c_rhs, TraceContainer &trace)
void set_state_cols(const std::array< uint32_t, 8 > &state, TraceContainer &trace)
uint32_t compute_w_with_witness(const std::array< uint32_t, 16 > &prev_w_helpers, TraceContainer &trace)
void set_init_state_cols(const std::array< uint32_t, 8 > &init_state, TraceContainer &trace)
void set_helper_cols(const std::array< uint32_t, 16 > &prev_w_helpers, TraceContainer &trace)
TestTraceContainer trace
FF b
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13