From 7405b313781db96d0a533435d05afa1fa1771872 Mon Sep 17 00:00:00 2001 From: David Rusu Date: Tue, 28 May 2024 23:26:53 +0400 Subject: [PATCH] crypto: make sure prf returns field elements, fix ECC math in pedcom --- coordination-layer/crypto.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/coordination-layer/crypto.py b/coordination-layer/crypto.py index 9e545fa..c642c4b 100644 --- a/coordination-layer/crypto.py +++ b/coordination-layer/crypto.py @@ -51,8 +51,10 @@ def poseidon_grumpkin_field(): POSEIDON = poseidon_grumpkin_field() -def prf(domain, *elements): - return POSEIDON([*_str_to_vec(domain), *elements]) +def prf(domain, *elements) -> Field: + return Field(int(POSEIDON([*_str_to_vec(domain), *elements]))) + + def comm(*elements): @@ -65,7 +67,7 @@ def comm(*elements): def pederson_commit(value: Field, blinding: Field, domain: Point) -> Point: - return value * Point.generator() + blinding * domain + return Point.generator().mul(value) + domain.mul(blinding) def merkle_root(data) -> Field: