Documentation ¶
Overview ¶
Package ristretto implements the group of prime order
2**252 + 27742317777372353535851937790883648493
as specified in draft-hdevalence-cfrg-ristretto-01.
All operations are constant time unless otherwise specified.
Index ¶
- type Element
- func (e *Element) Add(p, q *Element) *Element
- func (e *Element) Bytes() []byte
- func (e *Element) BytesEd25519() []byte
- func (e *Element) CheckPointInited() bool
- func (e *Element) Equal(ee *Element) int
- func (e *Element) MarshalText() (text []byte, err error)
- func (e *Element) MultiScalarMult(s []*Scalar, p []*Element) *Element
- func (e *Element) Negate(p *Element) *Element
- func (e *Element) ScalarBaseMult(s *Scalar) *Element
- func (e *Element) ScalarMult(s *Scalar, p *Element) *Element
- func (e *Element) Set(x *Element) *Element
- func (e *Element) SetCanonicalBytes(in []byte) (*Element, error)
- func (e *Element) SetUniformBytes(b []byte) (*Element, error)
- func (e *Element) String() string
- func (e *Element) Subtract(p, q *Element) *Element
- func (e *Element) UnmarshalText(text []byte) error
- func (e *Element) VarTimeDoubleScalarBaseMult(a *Scalar, A *Element, b *Scalar) *Element
- func (e *Element) VarTimeMultiScalarMult(s []*Scalar, p []*Element) *Element
- type Scalar
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Element ¶
type Element struct {
// contains filtered or unexported fields
}
Element is an element of the ristretto prime-order group.
func NewGeneratorElement ¶
func NewGeneratorElement() *Element
NewGeneratorElement returns a new Element set to the canonical generator.
func NewIdentityElement ¶
func NewIdentityElement() *Element
NewIdentityElement returns a new Element set to the identity value.
func (*Element) BytesEd25519 ¶
BytesEd25519 returns the canonical byte representation of the underlying edwards25519.Point, normalized with regard to the cofactor.
func (*Element) CheckPointInited ¶
PointInited 通过协程捕获 panic 检查是否初始化
func (*Element) Equal ¶
Equal returns 1 if e is equivalent to ee, and 0 otherwise.
Note that Elements must not be compared in any other way.
func (*Element) MarshalText ¶
MarshalText implements encoding/TextMarshaler interface
func (*Element) MultiScalarMult ¶
MultiScalarMult sets e = sum(s[i] * p[i]), and returns e.
Execution time depends only on the lengths of the two slices, which must match.
func (*Element) ScalarBaseMult ¶
ScalarBaseMult sets e = s * B, where B is the canonical generator, and returns e.
func (*Element) ScalarMult ¶
ScalarMult sets e = s * p, and returns e.
func (*Element) SetCanonicalBytes ¶
SetCanonicalBytes sets e to the decoded value of in. If in is not a canonical encoding of s, SetCanonicalBytes returns nil and an error and the receiver is unchanged.
func (*Element) SetUniformBytes ¶
SetUniformBytes deterministically sets e to an uniformly distributed value given 64 uniformly distributed random bytes.
This can be used for hash-to-group operations or to obtain a random element.
func (*Element) UnmarshalText ¶
UnmarshalText implements encoding/TextMarshaler interface
func (*Element) VarTimeDoubleScalarBaseMult ¶
VarTimeDoubleScalarBaseMult sets e = a * A + b * B, where B is the canonical generator, and returns e.
Execution time depends on the inputs.