aboutsummaryrefslogtreecommitdiff
path: root/curve
diff options
context:
space:
mode:
Diffstat (limited to 'curve')
-rw-r--r--curve/curve.go1
-rw-r--r--curve/ed25519.go9
2 files changed, 10 insertions, 0 deletions
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)