barretenberg
Loading...
Searching...
No Matches
blake_circuit.hpp
1#pragma once
2#include "barretenberg/stdlib/hash/blake2s/blake2s.hpp"
3#include "barretenberg/stdlib/primitives/field/field.hpp"
4#include "barretenberg/stdlib/primitives/witness/witness.hpp"
5
6using namespace proof_system::plonk;
7using namespace proof_system::plonk::stdlib;
8
10
11template <typename Builder> class BlakeCircuit {
12 public:
16
17 static constexpr size_t NUM_PUBLIC_INPUTS = 4;
18
19 static Builder generate(uint256_t public_inputs[])
20 {
21 Builder builder;
22
23 byte_array_ct input_buffer(&builder);
24 for (size_t i = 0; i < NUM_PUBLIC_INPUTS; ++i) {
25 input_buffer.write(byte_array_ct(field_ct(public_witness_ct(&builder, public_inputs[i]))));
26 }
27
28 stdlib::blake2s<Builder>(input_buffer);
29
30 return builder;
31 }
32};
Definition: blake_circuit.hpp:11
Definition: uint256.hpp:25
Definition: standard_circuit_builder.hpp:12
Definition: byte_array.hpp:9
Definition: field.hpp:10
Definition: widget.bench.cpp:13