From 5ff8a80163cdeaa097c168e74fed7e479c2ec8e7 Mon Sep 17 00:00:00 2001 From: guipublic Date: Wed, 17 Jul 2024 15:02:39 +0000 Subject: [PATCH] revert #5431: use blackbox for Pedersen --- noir/noir-repo/noir_stdlib/src/hash/mod.nr | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/noir/noir-repo/noir_stdlib/src/hash/mod.nr b/noir/noir-repo/noir_stdlib/src/hash/mod.nr index 22a988adaa5..d1528e2d7e4 100644 --- a/noir/noir-repo/noir_stdlib/src/hash/mod.nr +++ b/noir/noir-repo/noir_stdlib/src/hash/mod.nr @@ -30,7 +30,12 @@ pub fn blake3(input: [u8; N]) -> [u8; 32] // docs:start:pedersen_commitment pub fn pedersen_commitment(input: [Field; N]) -> EmbeddedCurvePoint { // docs:end:pedersen_commitment - pedersen_commitment_with_separator(input, 0) + let value = __pedersen_commitment_with_separator(input, 0); + if (value[0] == 0) & (value[1] == 0) { + EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true } + } else { + EmbeddedCurvePoint { x: value[0], y: value[1], is_infinite: false } + } } fn pedersen_commitment_with_separator(input: [Field; N], separator: u32) -> EmbeddedCurvePoint { @@ -61,7 +66,7 @@ fn pedersen_hash_with_separator(input: [Field; N], separator: u32) - pub fn pedersen_hash(input: [Field; N]) -> Field // docs:end:pedersen_hash { - pedersen_hash_with_separator(input, 0) + __pedersen_hash_with_separator(input, 0) } #[field(bn254)] @@ -71,6 +76,12 @@ fn derive_generators(domain_separator_bytes: [u8; M], st __derive_generators(domain_separator_bytes, starting_index) } +#[foreign(pedersen_hash)] +pub fn __pedersen_hash_with_separator(input: [Field; N], separator: u32) -> Field {} + +#[foreign(pedersen_commitment)] +fn __pedersen_commitment_with_separator(input: [Field; N], separator: u32) -> [Field; 2] {} + #[builtin(derive_pedersen_generators)] #[field(bn254)] fn __derive_generators(