Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
sha256_constraint.test.cpp
Go to the documentation of this file.
1
#include "
sha256_constraint.hpp
"
2
#include "
acir_format.hpp
"
3
#include "
acir_format_mocks.hpp
"
4
#include "
barretenberg/ultra_honk/ultra_prover.hpp
"
5
6
#include "
barretenberg/stdlib/primitives/curves/secp256k1.hpp
"
7
8
#include <gtest/gtest.h>
9
#include <vector>
10
11
namespace
acir_format::tests
{
12
using
curve_ct
=
bb::stdlib::secp256k1<Builder>
;
13
14
class
Sha256Tests
:
public
::testing::Test {
15
protected
:
16
static
void
SetUpTestSuite
() {
bb::srs::init_file_crs_factory
(
bb::srs::bb_crs_path
()); }
17
};
18
19
TEST_F
(
Sha256Tests
, TestSha256Compression)
20
{
21
22
std::array<WitnessOrConstant<bb::fr>
, 16> inputs;
23
for
(
size_t
i = 0; i < 16; ++i) {
24
inputs[i] =
WitnessOrConstant<bb::fr>::from_index
(
static_cast<
uint32_t
>
(i + 1));
25
}
26
std::array<WitnessOrConstant<bb::fr>
, 8> hash_values;
27
for
(
size_t
i = 0; i < 8; ++i) {
28
hash_values[i] =
WitnessOrConstant<bb::fr>::from_index
(
static_cast<
uint32_t
>
(i + 17));
29
}
30
Sha256Compression
sha256_compression{
31
.
inputs
= inputs,
32
.hash_values = hash_values,
33
.result = { 25, 26, 27, 28, 29, 30, 31, 32 },
34
};
35
36
AcirFormat
constraint_system{
37
.
varnum
= 34,
38
.num_acir_opcodes = 1,
39
.public_inputs = {},
40
.sha256_compression = { sha256_compression },
41
.original_opcode_indices =
create_empty_original_opcode_indices
(),
42
};
43
mock_opcode_indices
(constraint_system);
44
45
WitnessVector
witness{ 0,
46
0,
47
1,
48
2,
49
3,
50
4,
51
5,
52
6,
53
7,
54
8,
55
9,
56
10,
57
11,
58
12,
59
13,
60
14,
61
15,
62
0,
63
1,
64
2,
65
3,
66
4,
67
5,
68
6,
69
7,
70
static_cast<
uint32_t
>
(3349900789),
71
1645852969,
72
static_cast<
uint32_t
>
(3630270619),
73
1004429770,
74
739824817,
75
static_cast<
uint32_t
>
(3544323979),
76
557795688,
77
static_cast<
uint32_t
>
(3481642555) };
78
79
AcirProgram
program{ constraint_system, witness };
80
auto
builder
=
create_circuit
(program);
81
EXPECT_TRUE(
CircuitChecker::check
(
builder
));
82
}
83
}
// namespace acir_format::tests
acir_format.hpp
create_empty_original_opcode_indices
acir_format::AcirFormatOriginalOpcodeIndices create_empty_original_opcode_indices()
Definition
acir_format_mocks.cpp:9
mock_opcode_indices
void mock_opcode_indices(acir_format::AcirFormat &constraint_system)
Definition
acir_format_mocks.cpp:38
acir_format_mocks.hpp
acir_format::tests::Sha256Tests
Definition
sha256_constraint.test.cpp:14
acir_format::tests::Sha256Tests::SetUpTestSuite
static void SetUpTestSuite()
Definition
sha256_constraint.test.cpp:16
bb::TranslatorCircuitChecker::check
static bool check(const Builder &circuit)
Check the witness satisifies the circuit.
Definition
translator_circuit_checker.cpp:20
builder
AluTraceBuilder builder
Definition
alu.test.cpp:123
acir_format::tests
Definition
bigint_constraint.test.cpp:12
acir_format::tests::curve_ct
bb::stdlib::secp256k1< Builder > curve_ct
Definition
ec_operations.test.cpp:14
acir_format::create_circuit
UltraCircuitBuilder create_circuit(AcirProgram &program, const ProgramMetadata &metadata)
Specialization for creating an Ultra circuit from an acir program.
Definition
acir_format.cpp:675
acir_format::WitnessVector
bb::SlabVector< bb::fr > WitnessVector
Definition
acir_format.hpp:166
bb::srs::bb_crs_path
std::filesystem::path bb_crs_path()
Definition
global_crs.cpp:14
bb::srs::init_file_crs_factory
void init_file_crs_factory(const std::filesystem::path &path)
Definition
global_crs.hpp:14
bb::TEST_F
TEST_F(IPATest, ChallengesAreZero)
Definition
ipa.test.cpp:123
std::get
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition
tuple.hpp:13
sha256_constraint.hpp
secp256k1.hpp
acir_format::AcirFormat
Definition
acir_format.hpp:73
acir_format::AcirFormat::varnum
uint32_t varnum
Definition
acir_format.hpp:75
acir_format::AcirProgram
Definition
acir_format.hpp:169
acir_format::Sha256Compression
Definition
sha256_constraint.hpp:25
acir_format::Sha256Compression::inputs
std::array< WitnessOrConstant< bb::fr >, 16 > inputs
Definition
sha256_constraint.hpp:26
acir_format::WitnessOrConstant::from_index
static WitnessOrConstant from_index(uint32_t index)
Definition
witness_constant.hpp:20
bb::stdlib::secp256k1
Definition
secp256k1.hpp:17
ultra_prover.hpp
src
barretenberg
dsl
acir_format
sha256_constraint.test.cpp
Generated by
1.9.8