package common import ( "crypto/sha512" "kesim.org/seal/curve" ) // Common functions for the various proofs type Scalar = curve.Curve25519Scalar type Point = curve.Curve25519Point var Curve = curve.Curve25519 var G = Curve.Generator() var One = Curve.ScalarOne() type Bytes interface { Bytes() []byte } type Bites []byte func (b Bites) Bytes() []byte { return b } func Challenge(bs ...Bytes) *Scalar { h512 := sha512.New() for _, p := range bs { h512.Write(p.Bytes()) } ch, e := Curve.ScalarFromBytes(h512.Sum(nil)) if e != nil { panic(e) } return ch }