From 82d1938c5a052776eb6c5945c137754bf8076a11 Mon Sep 17 00:00:00 2001 From: Özgür Kesim Date: Thu, 28 Mar 2024 14:08:40 +0100 Subject: nizk/stage1: NIZK proofs for commit phase Implemented the NIZK for the B.a) Commit on page 4 --- curve/curve.go | 1 + curve/ed25519.go | 9 +++++++++ 2 files changed, 10 insertions(+) (limited to 'curve') diff --git a/curve/curve.go b/curve/curve.go index 36c9eed..5b41352 100644 --- a/curve/curve.go +++ b/curve/curve.go @@ -24,6 +24,7 @@ type ScalarReader[S any] interface { RandomScalar() S ScalarFromReader(io.Reader) (S, error) ScalarFromBytes([]byte) (S, error) + ScalarOne() S } type SomeCurve[S SomeScalar[s], s Data, P SomePoint[S, s, p], p Data] interface { diff --git a/curve/ed25519.go b/curve/ed25519.go index 3d0ba81..318c149 100644 --- a/curve/ed25519.go +++ b/curve/ed25519.go @@ -73,6 +73,15 @@ func (c *c25519) ScalarFromBytes(b []byte) (*scalar, error) { return (*scalar)(s), e } +func (c *c25519) ScalarOne() *scalar { + b := [64]byte{1} + one, e := c.ScalarFromBytes(b[:]) + if e != nil { + panic(e) + } + return one +} + func (c *c25519) Exp(s *scalar) *point { p := new(ed.Point).ScalarBaseMult((*ed.Scalar)(s)) return (*point)(p) -- cgit v1.2.3