From b6583db44514a75c1579f972588fab21cffa593e Mon Sep 17 00:00:00 2001 From: guipublic Date: Wed, 5 Feb 2025 10:33:43 +0000 Subject: [PATCH 1/3] Do not differentiate variable vs fixed length for Poseidon2 --- .../barretenberg/stdlib/hash/poseidon2/sponge/sponge.hpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/sponge/sponge.hpp b/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/sponge/sponge.hpp index a812ec7811e..e3c73513325 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/sponge/sponge.hpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/sponge/sponge.hpp @@ -145,13 +145,6 @@ template output; for (size_t i = 0; i < out_len; ++i) { output[i] = sponge.squeeze(); From 81da4c95cb275cf602f32073c6f370db76535445 Mon Sep 17 00:00:00 2001 From: guipublic Date: Thu, 6 Feb 2025 11:28:03 +0000 Subject: [PATCH 2/3] remove variable/fixed length variants of Poseidon2 --- .../stdlib/hash/poseidon2/poseidon2.cpp | 2 +- .../stdlib/hash/poseidon2/sponge/sponge.hpp | 21 +++---------------- 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/poseidon2.cpp b/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/poseidon2.cpp index 82aa0ffc054..2e41a8ceae8 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/poseidon2.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/poseidon2.cpp @@ -14,7 +14,7 @@ template field_t poseidon2::hash(C& builder, const std::vecto * This should just call the sponge variable length hash function * */ - return Sponge::hash_fixed_length(builder, inputs); + return Sponge::hash_internal(builder, inputs); } /** diff --git a/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/sponge/sponge.hpp b/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/sponge/sponge.hpp index e3c73513325..72d9df6cd35 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/sponge/sponge.hpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/sponge/sponge.hpp @@ -134,7 +134,7 @@ template */ - template + template static std::array hash_internal(Builder& builder, std::span input) { size_t in_len = input.size(); @@ -152,24 +152,9 @@ template - static std::array hash_fixed_length(Builder& builder, std::span input) - { - return hash_internal(builder, input); - } - static field_t hash_fixed_length(Builder& builder, std::span input) - { - return hash_fixed_length<1>(builder, input)[0]; - } - - template - static std::array hash_variable_length(Builder& builder, std::span input) - { - return hash_internal(builder, input); - } - static field_t hash_variable_length(Builder& builder, std::span input) + static field_t hash_internal(Builder& builder, std::span input) { - return hash_variable_length<1>(builder, input)[0]; + return hash_internal<1>(builder, input)[0]; } }; } // namespace bb::stdlib \ No newline at end of file From ba826c65833292dd3cce0a250d714a8a76cfda06 Mon Sep 17 00:00:00 2001 From: guipublic Date: Thu, 6 Feb 2025 12:34:48 +0000 Subject: [PATCH 3/3] remove fixed/variable size poseidon2 variants also from crypto folder --- .../crypto/poseidon2/poseidon2.cpp | 2 +- .../crypto/poseidon2/sponge/sponge.hpp | 23 ++----------------- 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/crypto/poseidon2/poseidon2.cpp b/barretenberg/cpp/src/barretenberg/crypto/poseidon2/poseidon2.cpp index dad8ea1d3b1..bb2f920a152 100644 --- a/barretenberg/cpp/src/barretenberg/crypto/poseidon2/poseidon2.cpp +++ b/barretenberg/cpp/src/barretenberg/crypto/poseidon2/poseidon2.cpp @@ -7,7 +7,7 @@ namespace bb::crypto { template typename Poseidon2::FF Poseidon2::hash(const std::vector::FF>& input) { - return Sponge::hash_fixed_length(input); + return Sponge::hash_internal(input); } /** diff --git a/barretenberg/cpp/src/barretenberg/crypto/poseidon2/sponge/sponge.hpp b/barretenberg/cpp/src/barretenberg/crypto/poseidon2/sponge/sponge.hpp index eb89c96e471..72324c2654b 100644 --- a/barretenberg/cpp/src/barretenberg/crypto/poseidon2/sponge/sponge.hpp +++ b/barretenberg/cpp/src/barretenberg/crypto/poseidon2/sponge/sponge.hpp @@ -125,12 +125,10 @@ template */ - template - static std::array hash_internal(std::span input) + template static std::array hash_internal(std::span input) { size_t in_len = input.size(); const uint256_t iv = (static_cast(in_len) << 64) + out_len - 1; @@ -140,13 +138,6 @@ template output; for (size_t i = 0; i < out_len; ++i) { output[i] = sponge.squeeze(); @@ -154,16 +145,6 @@ template static std::array hash_fixed_length(std::span input) - { - return hash_internal(input); - } - static FF hash_fixed_length(std::span input) { return hash_fixed_length<1>(input)[0]; } - - template static std::array hash_variable_length(std::span input) - { - return hash_internal(input); - } - static FF hash_variable_length(std::span input) { return hash_variable_length<1>(input)[0]; } + static FF hash_internal(std::span input) { return hash_internal<1>(input)[0]; } }; } // namespace bb::crypto \ No newline at end of file