2#include "barretenberg/stdlib/primitives/byte_array/byte_array.hpp"
3#include "barretenberg/stdlib/primitives/circuit_builders/circuit_builders_fwd.hpp"
4#include "barretenberg/stdlib/primitives/packed_byte_array/packed_byte_array.hpp"
5#include "barretenberg/stdlib/primitives/uint/uint.hpp"
6#include "sha256_plookup.hpp"
12template <
typename Builder>
class bit_array;
14template <
typename Builder>
15std::array<uint32<Builder>, 8> sha256_block(
const std::array<uint32<Builder>, 8>& h_init,
16 const std::array<uint32<Builder>, 16>& input);
18template <
typename Builder> byte_array<Builder> sha256_block(
const byte_array<Builder>& input);
19template <
typename Builder> packed_byte_array<Builder> sha256(
const packed_byte_array<Builder>& input);
21template <
typename Builder>
field_t<Builder> sha256_to_field(
const packed_byte_array<Builder>& input)
23 std::vector<field_t<Builder>> slices = stdlib::sha256<Builder>(input).to_unverified_byte_slices(16);
24 return slices[1] + (slices[0] * (
uint256_t(1) << 128));
27#define SHA256_BLOCK(circuit_type) byte_array<circuit_type> sha256_block(const byte_array<circuit_type>& input)
28#define SHA256(circuit_type) packed_byte_array<circuit_type> sha256(const packed_byte_array<circuit_type>& input)
30EXTERN_STDLIB_METHOD(SHA256_BLOCK)
31EXTERN_STDLIB_METHOD(SHA256)
Definition: uint256.hpp:25
Definition: widget.bench.cpp:13