Package-Level Type Names (total 2, in which 1 are exported)
/* sort exporteds by: | */
Element represents an element of the field GF(2^255-19). Note that this
is not a cryptographically secure group, and should only be used to interact
with edwards25519.Point coordinates.
This type works similarly to math/big.Int, and all arguments and receivers
are allowed to alias.
The zero value is a valid zero element.
An element t represents the integer
t.l0 + t.l1*2^51 + t.l2*2^102 + t.l3*2^153 + t.l4*2^204
Between operations, all limbs are expected to be lower than 2^52.
l1uint64l2uint64l3uint64l4uint64
Absolute sets v to |u|, and returns v.
Add sets v = a + b, and returns v.
Bytes returns the canonical 32-byte little-endian encoding of v.
Equal returns 1 if v and u are equal, and 0 otherwise.
Invert sets v = 1/z mod p, and returns v.
If z == 0, Invert returns v = 0.
IsNegative returns 1 if v is negative, and 0 otherwise.
Mult32 sets v = x * y, and returns v.
Multiply sets v = x * y, and returns v.
Negate sets v = -a, and returns v.
One sets v = 1, and returns v.
Pow22523 set v = x^((p-5)/8), and returns v. (p-5)/8 is 2^252-3.
Select sets v to a if cond == 1, and to b if cond == 0.
Set sets v = a, and returns v.
SetBytes sets v to x, which must be a 32-byte little-endian encoding.
Consistent with RFC 7748, the most significant bit (the high bit of the
last byte) is ignored, and non-canonical values (2^255-19 through 2^255-1)
are accepted. Note that this is laxer than specified by RFC 8032.
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, SqrtRatio
sets r according to Section 4.3 of draft-irtf-cfrg-ristretto255-decaf448-00,
and returns r and 0.
Square sets v = x * x, and returns v.
Subtract sets v = a - b, and returns v.
Swap swaps v and u if cond == 1 or leaves them unchanged if cond == 0, and returns v.
Zero sets v = 0, and returns v.
(*Element) bytes(out *[32]byte) []byte(*Element) carryPropagate() *Element
carryPropagate brings the limbs below 52 bits by applying the reduction
identity (a * 2²⁵⁵ + b = a * 19 + b) to the l4 carry.
reduce reduces v modulo 2^255 - 19 and returns it.
func (*Element).Absolute(u *Element) *Element
func (*Element).Add(a, b *Element) *Element
func (*Element).Invert(z *Element) *Element
func (*Element).Mult32(x *Element, y uint32) *Element
func (*Element).Multiply(x, y *Element) *Element
func (*Element).Negate(a *Element) *Element
func (*Element).One() *Element
func (*Element).Pow22523(x *Element) *Element
func (*Element).Select(a, b *Element, cond int) *Element
func (*Element).Set(a *Element) *Element
func (*Element).SetBytes(x []byte) *Element
func (*Element).SqrtRatio(u, v *Element) (rr *Element, wasSquare int)
func (*Element).Square(x *Element) *Element
func (*Element).Subtract(a, b *Element) *Element
func (*Element).Zero() *Element
func (*Element).carryPropagate() *Element
func (*Element).carryPropagateGeneric() *Element
func (*Element).reduce() *Element
func (*Element).Absolute(u *Element) *Element
func (*Element).Add(a, b *Element) *Element
func (*Element).Equal(u *Element) int
func (*Element).Invert(z *Element) *Element
func (*Element).Mult32(x *Element, y uint32) *Element
func (*Element).Multiply(x, y *Element) *Element
func (*Element).Negate(a *Element) *Element
func (*Element).Pow22523(x *Element) *Element
func (*Element).Select(a, b *Element, cond int) *Element
func (*Element).Set(a *Element) *Element
func (*Element).SqrtRatio(u, v *Element) (rr *Element, wasSquare int)
func (*Element).Square(x *Element) *Element
func (*Element).Subtract(a, b *Element) *Element
func (*Element).Swap(u *Element, cond int)
func feMul(out *Element, a *Element, b *Element)
func feMul(out *Element, a *Element, b *Element)
func feMul(out *Element, a *Element, b *Element)
func feMulGeneric(v, a, b *Element)
func feSquare(out *Element, a *Element)
func feSquare(out *Element, a *Element)
func feSquareGeneric(v, a *Element)
func crypto/ed25519/internal/edwards25519.copyFieldElement(buf *[32]byte, v *Element) []byte
var feOne *Element
var feZero *Element
var sqrtM1 *Element
var crypto/ed25519/internal/edwards25519.d *Element
var crypto/ed25519/internal/edwards25519.d2 *Element
var crypto/ed25519/internal/edwards25519.feOne *Element