From 12852e514630d4b2fd748131dbf4b8535e2ffcc6 Mon Sep 17 00:00:00 2001 From: Chetany Bhardwaj Date: Fri, 17 Oct 2025 13:12:54 +0530 Subject: [PATCH 1/2] fix: removed message argument from assert --- src/poseidon2/poseidon2.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/poseidon2/poseidon2.zig b/src/poseidon2/poseidon2.zig index 7530656..4bb5993 100644 --- a/src/poseidon2/poseidon2.zig +++ b/src/poseidon2/poseidon2.zig @@ -30,7 +30,7 @@ pub fn Poseidon2( pub const State = [width]F.MontFieldElem; pub fn compress(comptime output_len: comptime_int, input: [width]F.FieldElem) [output_len]F.FieldElem { - assert(output_len <= width, "output_len must be <= width"); + assert(output_len <= width); var state: State = undefined; inline for (0..width) |i| { From 7c046844fa96eca310401412324080e1d5c81f38 Mon Sep 17 00:00:00 2001 From: Chetany Bhardwaj Date: Fri, 17 Oct 2025 13:15:41 +0530 Subject: [PATCH 2/2] fix: correct Montgomery form handling in compress --- build.zig.zon | 1 - src/poseidon2/poseidon2.zig | 12 +++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/build.zig.zon b/build.zig.zon index f93c982..5a9185a 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -15,4 +15,3 @@ "VERSION", }, } - diff --git a/src/poseidon2/poseidon2.zig b/src/poseidon2/poseidon2.zig index 4bb5993..f17d53b 100644 --- a/src/poseidon2/poseidon2.zig +++ b/src/poseidon2/poseidon2.zig @@ -38,10 +38,16 @@ pub fn Poseidon2( } permutation(&state); inline for (0..width) |i| { - F.add(&state[i], state[i], input[i]); - F.fromMontgomery(&state[i], state[i]); + var input_mont: F.MontFieldElem = undefined; + F.toMontgomery(&input_mont, input[i]); + F.add(&state[i], state[i], input_mont); } - return state[0..output_len]; + + var result: [output_len]F.FieldElem = undefined; + inline for (0..output_len) |i| { + result[i] = F.toNormal(state[i]); + } + return result; } pub fn permutation(state: *State) void {