field
packagestandard libraryThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Overview¶
Package field implements fast arithmetic modulo 2^255-19.
Index¶
- type Element
- func (v *Element) Absolute(u *Element) *Element
- func (v *Element) Add(a, b *Element) *Element
- func (v *Element) Bytes() []byte
- func (v *Element) Equal(u *Element) int
- func (v *Element) Invert(z *Element) *Element
- func (v *Element) IsNegative() int
- func (v *Element) Mult32(x *Element, y uint32) *Element
- func (v *Element) Multiply(x, y *Element) *Element
- func (v *Element) Negate(a *Element) *Element
- func (v *Element) One() *Element
- func (v *Element) Pow22523(x *Element) *Element
- func (v *Element) Select(a, b *Element, cond int) *Element
- func (v *Element) Set(a *Element) *Element
- func (v *Element) SetBytes(x []byte) (*Element, error)
- func (r *Element) SqrtRatio(u, v *Element) (R *Element, wasSquare int)
- func (v *Element) Square(x *Element) *Element
- func (v *Element) Subtract(a, b *Element) *Element
- func (v *Element) Swap(u *Element, cond int)
- func (v *Element) Zero() *Element
Constants¶
This section is empty.
Variables¶
This section is empty.
Functions¶
This section is empty.
Types¶
typeElement¶
type Element struct {// contains filtered or unexported fields}Element represents an element of the field GF(2^255-19). Note that thisis not a cryptographically secure group, and should only be used to interactwith edwards25519.Point coordinates.
This type works similarly to math/big.Int, and all arguments and receiversare allowed to alias.
The zero value is a valid zero element.
func (*Element)IsNegative¶
IsNegative returns 1 if v is negative, and 0 otherwise.
func (*Element)SetBytes¶
SetBytes sets v to x, where x is a 32-byte little-endian encoding. If x isnot of the right length, SetBytes returns nil and an error, and thereceiver is unchanged.
Consistent withRFC 7748, the most significant bit (the high bit of thelast byte) is ignored, and non-canonical values (2^255-19 through 2^255-1)are accepted. Note that this is laxer than specified byRFC 8032, butconsistent with most Ed25519 implementations.
func (*Element)SqrtRatio¶
SqrtRatio sets r to the non-negative square root of the ratio of u and v.
If u/v is square, SqrtRatio returns r and 1. If u/v is not square, SqrtRatiosets r according to Section 4.3 of draft-irtf-cfrg-ristretto255-decaf448-00,and returns r and 0.