From 776b9d197df3f333bbba9b965daf7e36b58c7d1a Mon Sep 17 00:00:00 2001 From: Khashayar Barooti Date: Fri, 30 May 2025 09:41:54 +0000 Subject: [PATCH 1/9] added an assert to reject inputs of size larger than 1024 bytes --- .../cpp/src/barretenberg/dsl/acir_format/blake3_constraint.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/blake3_constraint.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/blake3_constraint.cpp index b0c333f87db1..54256420d6d5 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/blake3_constraint.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/blake3_constraint.cpp @@ -27,7 +27,7 @@ template void create_blake3_constraints(Builder& builder, con // XXX: The implementation requires us to truncate the element to the nearest byte and not bit auto num_bytes = round_to_nearest_byte(num_bits); - + ASSERT(num_bytes <= 1024, "barretenberg does not support blake3 inputs with more than 1024 bytes"); field_ct element = to_field_ct(witness_index, builder); byte_array_ct element_bytes(element, num_bytes); From f6d05092ec9d8273e51eb9320ce358dec290c87b Mon Sep 17 00:00:00 2001 From: Khashayar Barooti Date: Tue, 3 Jun 2025 10:06:30 +0000 Subject: [PATCH 2/9] added assertions in stdlib and crypto --- avm-transpiler/Cargo.lock | 87 ++++--------------- .../crypto/blake3s_full/blake3s.cpp | 2 + .../stdlib/hash/blake3s/blake3s.cpp | 2 + 3 files changed, 22 insertions(+), 69 deletions(-) diff --git a/avm-transpiler/Cargo.lock b/avm-transpiler/Cargo.lock index a1c16ce6a30a..77e90dd1fb4a 100644 --- a/avm-transpiler/Cargo.lock +++ b/avm-transpiler/Cargo.lock @@ -4,7 +4,7 @@ version = 4 [[package]] name = "acir" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" dependencies = [ "acir_field", "base64 0.21.7", @@ -13,7 +13,6 @@ dependencies = [ "color-eyre", "flate2", "noir_protobuf", - "num_enum", "prost", "prost-build", "protoc-prebuilt", @@ -27,7 +26,7 @@ dependencies = [ [[package]] name = "acir_field" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" dependencies = [ "ark-bn254", "ark-ff", @@ -40,7 +39,7 @@ dependencies = [ [[package]] name = "acvm" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" dependencies = [ "acir", "acvm_blackbox_solver", @@ -54,7 +53,7 @@ dependencies = [ [[package]] name = "acvm_blackbox_solver" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" dependencies = [ "acir", "blake2", @@ -454,7 +453,7 @@ dependencies = [ [[package]] name = "bn254_blackbox_solver" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" dependencies = [ "acir", "acvm_blackbox_solver", @@ -478,7 +477,7 @@ dependencies = [ [[package]] name = "brillig" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" dependencies = [ "acir_field", "serde", @@ -486,7 +485,7 @@ dependencies = [ [[package]] name = "brillig_vm" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" dependencies = [ "acir", "acvm_blackbox_solver", @@ -926,7 +925,7 @@ dependencies = [ [[package]] name = "fm" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" dependencies = [ "codespan-reporting", "iter-extended", @@ -1266,7 +1265,7 @@ checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" [[package]] name = "iter-extended" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" [[package]] name = "itertools" @@ -1374,7 +1373,7 @@ checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" [[package]] name = "noir_protobuf" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" dependencies = [ "color-eyre", "prost", @@ -1382,7 +1381,7 @@ dependencies = [ [[package]] name = "noirc_abi" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" dependencies = [ "acvm", "iter-extended", @@ -1397,11 +1396,11 @@ dependencies = [ [[package]] name = "noirc_arena" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" [[package]] name = "noirc_errors" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" dependencies = [ "acvm", "base64 0.21.7", @@ -1418,7 +1417,7 @@ dependencies = [ [[package]] name = "noirc_evaluator" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" dependencies = [ "acvm", "bn254_blackbox_solver", @@ -1446,7 +1445,7 @@ dependencies = [ [[package]] name = "noirc_frontend" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" dependencies = [ "acvm", "bn254_blackbox_solver", @@ -1475,7 +1474,7 @@ dependencies = [ [[package]] name = "noirc_printable_type" -version = "1.0.0-beta.6" +version = "1.0.0-beta.5" dependencies = [ "acvm", "iter-extended", @@ -1517,27 +1516,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "num_enum" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.87", -] - [[package]] name = "object" version = "0.32.2" @@ -1659,15 +1637,6 @@ dependencies = [ "elliptic-curve", ] -[[package]] -name = "proc-macro-crate" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" -dependencies = [ - "toml_edit 0.22.24", -] - [[package]] name = "proc-macro2" version = "1.0.86" @@ -2311,7 +2280,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.19.15", + "toml_edit", ] [[package]] @@ -2333,18 +2302,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" -dependencies = [ - "indexmap 2.8.0", - "toml_datetime", - "winnow 0.7.10", + "winnow", ] [[package]] @@ -2673,15 +2631,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winnow" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" -dependencies = [ - "memchr", -] - [[package]] name = "write16" version = "1.0.0" diff --git a/barretenberg/cpp/src/barretenberg/crypto/blake3s_full/blake3s.cpp b/barretenberg/cpp/src/barretenberg/crypto/blake3s_full/blake3s.cpp index d02388fe5ee7..48f2b203eff3 100644 --- a/barretenberg/cpp/src/barretenberg/crypto/blake3s_full/blake3s.cpp +++ b/barretenberg/cpp/src/barretenberg/crypto/blake3s_full/blake3s.cpp @@ -28,6 +28,7 @@ #include #include +#include "barretenberg/common/assert.hpp" #include "blake3-impl.hpp" namespace blake3_full { @@ -865,6 +866,7 @@ std::vector blake3s(std::vector const& input, // Initialize the hasher. blake3_hasher hasher; blake3_hasher_init(&hasher); + ASSERT(input.size() <= 1024, "Barretenberg does not support blake3s with input lengths greater than 1024 bytes."); switch (mode_id) { case HASH_MODE: diff --git a/barretenberg/cpp/src/barretenberg/stdlib/hash/blake3s/blake3s.cpp b/barretenberg/cpp/src/barretenberg/stdlib/hash/blake3s/blake3s.cpp index 4df21cf013af..df9a388feaec 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/hash/blake3s/blake3s.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/hash/blake3s/blake3s.cpp @@ -246,6 +246,8 @@ using namespace blake3_internal; template byte_array blake3s(const byte_array& input) { + ASSERT(input.size() <= 1024, "Barretenberg does not support blake3s with input lengths greater than 1024 bytes."); + if constexpr (HasPlookup) { return blake3s_plookup::blake3s(input); } From 584efa2547ec4eb19d5ea4d9efce1cdb2c0a58f6 Mon Sep 17 00:00:00 2001 From: Khashayar Barooti Date: Tue, 3 Jun 2025 10:11:20 +0000 Subject: [PATCH 3/9] put the assertion in crypto dir in the correct place --- barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.tcc | 2 ++ .../cpp/src/barretenberg/crypto/blake3s_full/blake3s.cpp | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.tcc b/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.tcc index 9e2a5ef61263..9c95a86c59b7 100644 --- a/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.tcc +++ b/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.tcc @@ -32,6 +32,7 @@ #include #include +#include "barretenberg/common/assert.hpp" #include "blake3s.hpp" namespace blake3 { @@ -240,6 +241,7 @@ constexpr void blake3_hasher_finalize(const blake3_hasher* self, uint8_t* out) std::vector blake3s(std::vector const& input) { + ASSERT(input.size() <= 1024, "Barretenberg does not support blake3s with input lengths greater than 1024 bytes."); blake3_hasher hasher; blake3_hasher_init(&hasher); blake3_hasher_update(&hasher, static_cast(input.data()), input.size()); diff --git a/barretenberg/cpp/src/barretenberg/crypto/blake3s_full/blake3s.cpp b/barretenberg/cpp/src/barretenberg/crypto/blake3s_full/blake3s.cpp index 48f2b203eff3..fe11e38f8702 100644 --- a/barretenberg/cpp/src/barretenberg/crypto/blake3s_full/blake3s.cpp +++ b/barretenberg/cpp/src/barretenberg/crypto/blake3s_full/blake3s.cpp @@ -28,7 +28,6 @@ #include #include -#include "barretenberg/common/assert.hpp" #include "blake3-impl.hpp" namespace blake3_full { @@ -866,8 +865,6 @@ std::vector blake3s(std::vector const& input, // Initialize the hasher. blake3_hasher hasher; blake3_hasher_init(&hasher); - ASSERT(input.size() <= 1024, "Barretenberg does not support blake3s with input lengths greater than 1024 bytes."); - switch (mode_id) { case HASH_MODE: blake3_hasher_init(&hasher); From c88ad045479ea9bc528857fab1e78341c2f9504b Mon Sep 17 00:00:00 2001 From: Khashayar Barooti Date: Wed, 4 Jun 2025 13:55:33 +0000 Subject: [PATCH 4/9] added the tests in stdlib and crypto --- .../cpp/src/barretenberg/crypto/blake3s/blake3s.tcc | 6 ++++-- .../src/barretenberg/crypto/blake3s/blake3s.test.cpp | 6 ++++++ .../barretenberg/stdlib/hash/blake3s/blake3s.test.cpp | 10 ++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.tcc b/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.tcc index 9c95a86c59b7..dacfb5596d31 100644 --- a/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.tcc +++ b/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.tcc @@ -32,7 +32,6 @@ #include #include -#include "barretenberg/common/assert.hpp" #include "blake3s.hpp" namespace blake3 { @@ -241,7 +240,10 @@ constexpr void blake3_hasher_finalize(const blake3_hasher* self, uint8_t* out) std::vector blake3s(std::vector const& input) { - ASSERT(input.size() <= 1024, "Barretenberg does not support blake3s with input lengths greater than 1024 bytes."); + if (input.size() > 1024) { + throw std::runtime_error("Barretenberg does not support blake3s with input lengths greater than 1024 bytes."); + } + blake3_hasher hasher; blake3_hasher_init(&hasher); blake3_hasher_update(&hasher, static_cast(input.data()), input.size()); diff --git a/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.test.cpp b/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.test.cpp index 7f38889e02c3..32cb596c8109 100644 --- a/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.test.cpp +++ b/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.test.cpp @@ -414,3 +414,9 @@ TEST(MiscBlake3s, TestVectors) static_assert(result_constexpr == v.output); }); } + +TEST(MiscBlake3s, TooLargeInputTest) +{ + std::vector input(1025, 0); + EXPECT_THROW(blake3::blake3s(input), std::runtime_error); +} diff --git a/barretenberg/cpp/src/barretenberg/stdlib/hash/blake3s/blake3s.test.cpp b/barretenberg/cpp/src/barretenberg/stdlib/hash/blake3s/blake3s.test.cpp index de327c2e2439..1725e2b36e26 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/hash/blake3s/blake3s.test.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/hash/blake3s/blake3s.test.cpp @@ -48,3 +48,13 @@ TEST(stdlib_blake3s, test_double_block_plookup) bool proof_result = CircuitChecker::check(builder); EXPECT_EQ(proof_result, true); } + +TEST(stdlib_blake3s, test_too_large_input_plookup) +{ + auto builder = UltraBuilder(); + + std::vector input_v(1025, 0); + + byte_array_plookup input_arr(&builder, input_v); + EXPECT_DEATH(stdlib::blake3s(input_arr), "ASSERTION"); +} From 78e4083bb3879e5e474207c8f48166ebdde3fc6c Mon Sep 17 00:00:00 2001 From: Khashayar Barooti Date: Wed, 4 Jun 2025 14:11:07 +0000 Subject: [PATCH 5/9] fixed the bad change done to the transpiler cargo lock --- avm-transpiler/Cargo.lock | 87 +++++++++++++++++++++++++++++++-------- 1 file changed, 69 insertions(+), 18 deletions(-) diff --git a/avm-transpiler/Cargo.lock b/avm-transpiler/Cargo.lock index 77e90dd1fb4a..a1c16ce6a30a 100644 --- a/avm-transpiler/Cargo.lock +++ b/avm-transpiler/Cargo.lock @@ -4,7 +4,7 @@ version = 4 [[package]] name = "acir" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" dependencies = [ "acir_field", "base64 0.21.7", @@ -13,6 +13,7 @@ dependencies = [ "color-eyre", "flate2", "noir_protobuf", + "num_enum", "prost", "prost-build", "protoc-prebuilt", @@ -26,7 +27,7 @@ dependencies = [ [[package]] name = "acir_field" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" dependencies = [ "ark-bn254", "ark-ff", @@ -39,7 +40,7 @@ dependencies = [ [[package]] name = "acvm" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" dependencies = [ "acir", "acvm_blackbox_solver", @@ -53,7 +54,7 @@ dependencies = [ [[package]] name = "acvm_blackbox_solver" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" dependencies = [ "acir", "blake2", @@ -453,7 +454,7 @@ dependencies = [ [[package]] name = "bn254_blackbox_solver" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" dependencies = [ "acir", "acvm_blackbox_solver", @@ -477,7 +478,7 @@ dependencies = [ [[package]] name = "brillig" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" dependencies = [ "acir_field", "serde", @@ -485,7 +486,7 @@ dependencies = [ [[package]] name = "brillig_vm" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" dependencies = [ "acir", "acvm_blackbox_solver", @@ -925,7 +926,7 @@ dependencies = [ [[package]] name = "fm" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" dependencies = [ "codespan-reporting", "iter-extended", @@ -1265,7 +1266,7 @@ checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" [[package]] name = "iter-extended" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" [[package]] name = "itertools" @@ -1373,7 +1374,7 @@ checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" [[package]] name = "noir_protobuf" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" dependencies = [ "color-eyre", "prost", @@ -1381,7 +1382,7 @@ dependencies = [ [[package]] name = "noirc_abi" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" dependencies = [ "acvm", "iter-extended", @@ -1396,11 +1397,11 @@ dependencies = [ [[package]] name = "noirc_arena" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" [[package]] name = "noirc_errors" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" dependencies = [ "acvm", "base64 0.21.7", @@ -1417,7 +1418,7 @@ dependencies = [ [[package]] name = "noirc_evaluator" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" dependencies = [ "acvm", "bn254_blackbox_solver", @@ -1445,7 +1446,7 @@ dependencies = [ [[package]] name = "noirc_frontend" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" dependencies = [ "acvm", "bn254_blackbox_solver", @@ -1474,7 +1475,7 @@ dependencies = [ [[package]] name = "noirc_printable_type" -version = "1.0.0-beta.5" +version = "1.0.0-beta.6" dependencies = [ "acvm", "iter-extended", @@ -1516,6 +1517,27 @@ dependencies = [ "autocfg", ] +[[package]] +name = "num_enum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "object" version = "0.32.2" @@ -1637,6 +1659,15 @@ dependencies = [ "elliptic-curve", ] +[[package]] +name = "proc-macro-crate" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +dependencies = [ + "toml_edit 0.22.24", +] + [[package]] name = "proc-macro2" version = "1.0.86" @@ -2280,7 +2311,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_edit 0.19.15", ] [[package]] @@ -2302,7 +2333,18 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +dependencies = [ + "indexmap 2.8.0", + "toml_datetime", + "winnow 0.7.10", ] [[package]] @@ -2631,6 +2673,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" +dependencies = [ + "memchr", +] + [[package]] name = "write16" version = "1.0.0" From d5fce3830b1a8c65db75aafeb6f8ff3b388463f0 Mon Sep 17 00:00:00 2001 From: Khashayar Barooti Date: Thu, 5 Jun 2025 14:29:49 +0000 Subject: [PATCH 6/9] added a debug option --- .../cpp/src/barretenberg/crypto/blake3s/blake3s.test.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.test.cpp b/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.test.cpp index 32cb596c8109..22996b38d3ca 100644 --- a/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.test.cpp +++ b/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.test.cpp @@ -415,8 +415,10 @@ TEST(MiscBlake3s, TestVectors) }); } +#if NDEBUG TEST(MiscBlake3s, TooLargeInputTest) { std::vector input(1025, 0); EXPECT_THROW(blake3::blake3s(input), std::runtime_error); } +#endif // NDEBUG From 845d91a80ccdb12a6382e4262be82227e850de87 Mon Sep 17 00:00:00 2001 From: Khashayar Barooti Date: Thu, 5 Jun 2025 15:02:42 +0000 Subject: [PATCH 7/9] linked common --- .../cpp/src/barretenberg/crypto/blake3s/CMakeLists.txt | 2 +- barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.tcc | 5 ++--- .../cpp/src/barretenberg/crypto/blake3s/blake3s.test.cpp | 4 +--- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/crypto/blake3s/CMakeLists.txt b/barretenberg/cpp/src/barretenberg/crypto/blake3s/CMakeLists.txt index 8fad42d253f3..edca59338cc8 100644 --- a/barretenberg/cpp/src/barretenberg/crypto/blake3s/CMakeLists.txt +++ b/barretenberg/cpp/src/barretenberg/crypto/blake3s/CMakeLists.txt @@ -1 +1 @@ -barretenberg_module(crypto_blake3s) \ No newline at end of file +barretenberg_module(crypto_blake3s common) diff --git a/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.tcc b/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.tcc index dacfb5596d31..3444028b8c87 100644 --- a/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.tcc +++ b/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.tcc @@ -32,6 +32,7 @@ #include #include +#include "barretenberg/common/assert.hpp" #include "blake3s.hpp" namespace blake3 { @@ -240,9 +241,7 @@ constexpr void blake3_hasher_finalize(const blake3_hasher* self, uint8_t* out) std::vector blake3s(std::vector const& input) { - if (input.size() > 1024) { - throw std::runtime_error("Barretenberg does not support blake3s with input lengths greater than 1024 bytes."); - } + ASSERT(input.size() <= 1024, "Barretenberg does not support blake3s with input lengths greater than 1024 bytes."); blake3_hasher hasher; blake3_hasher_init(&hasher); diff --git a/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.test.cpp b/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.test.cpp index 22996b38d3ca..be0a8d896d29 100644 --- a/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.test.cpp +++ b/barretenberg/cpp/src/barretenberg/crypto/blake3s/blake3s.test.cpp @@ -415,10 +415,8 @@ TEST(MiscBlake3s, TestVectors) }); } -#if NDEBUG TEST(MiscBlake3s, TooLargeInputTest) { std::vector input(1025, 0); - EXPECT_THROW(blake3::blake3s(input), std::runtime_error); + EXPECT_DEATH(blake3::blake3s(input), "Assertion failed"); } -#endif // NDEBUG From 0f5a206d90d06d8ede07b420b8bd192e957402f1 Mon Sep 17 00:00:00 2001 From: Khashayar Barooti Date: Thu, 5 Jun 2025 15:17:29 +0000 Subject: [PATCH 8/9] nargo formatter --- barretenberg/noir/bb_proof_verification/src/lib.nr | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/barretenberg/noir/bb_proof_verification/src/lib.nr b/barretenberg/noir/bb_proof_verification/src/lib.nr index 4f2fe753d8b0..64f1a93f080f 100644 --- a/barretenberg/noir/bb_proof_verification/src/lib.nr +++ b/barretenberg/noir/bb_proof_verification/src/lib.nr @@ -1,6 +1,6 @@ // Constants for UltraHonk recursive verifier inputs pub global PROOF_TYPE_HONK: u32 = 1; // identifier for UltraHonk verfier -pub global RECURSIVE_PROOF_LENGTH: u32 = 456; +pub global RECURSIVE_PROOF_LENGTH: u32 = 456; pub global HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS: u32 = 112; pub type UltraHonkProof = [Field; RECURSIVE_PROOF_LENGTH]; @@ -10,7 +10,8 @@ pub type UltraHonkVerificationKey = [Field; HONK_VERIFICATION_KEY_LENGTH_IN_FIEL pub global PROOF_TYPE_ROLLUP_HONK: u32 = 5; // identifier for rollup-UltraHonk verfier pub global IPA_CLAIM_SIZE: u32 = 10; pub global IPA_PROOF_LENGTH: u32 = 69; -pub global RECURSIVE_ROLLUP_HONK_PROOF_LENGTH: u32 = RECURSIVE_PROOF_LENGTH + IPA_CLAIM_SIZE + IPA_PROOF_LENGTH; +pub global RECURSIVE_ROLLUP_HONK_PROOF_LENGTH: u32 = + RECURSIVE_PROOF_LENGTH + IPA_CLAIM_SIZE + IPA_PROOF_LENGTH; pub global ROLLUP_HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS: u32 = 113; pub type RollupHonkProof = [Field; RECURSIVE_ROLLUP_HONK_PROOF_LENGTH]; From 9f0a87bbb2dc52002e0c5132b7e0d0fa46f6597a Mon Sep 17 00:00:00 2001 From: Khashayar Barooti Date: Thu, 5 Jun 2025 15:40:59 +0000 Subject: [PATCH 9/9] fixed the assertion message --- .../cpp/src/barretenberg/stdlib/hash/blake3s/blake3s.test.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/barretenberg/cpp/src/barretenberg/stdlib/hash/blake3s/blake3s.test.cpp b/barretenberg/cpp/src/barretenberg/stdlib/hash/blake3s/blake3s.test.cpp index 1725e2b36e26..5bc7da4869fd 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/hash/blake3s/blake3s.test.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/hash/blake3s/blake3s.test.cpp @@ -56,5 +56,6 @@ TEST(stdlib_blake3s, test_too_large_input_plookup) std::vector input_v(1025, 0); byte_array_plookup input_arr(&builder, input_v); - EXPECT_DEATH(stdlib::blake3s(input_arr), "ASSERTION"); + EXPECT_DEATH(stdlib::blake3s(input_arr), + "Barretenberg does not support blake3s with input lengths greater than 1024 bytes."); }