package field

Import Path
	crypto/ed25519/internal/edwards25519/field (on go.dev)

Dependency Relation
	imports 3 packages, and imported by one package

Involved Source Files Package field implements fast arithmetic modulo 2^255-19. fe_amd64.go fe_arm64_noasm.go fe_generic.go fe_amd64.s
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. 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. 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).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)
Package-Level Functions (total 9, none are exported)
Package-Level Variables (total 3, none are exported)
Package-Level Constants (only one, which is unexported)