Documentation
¶
Overview ¶
Package bf128 implements arithmetic over the binary field GF(2^128).
Index ¶
- Constants
- Variables
- type Field
- func (*Field) Characteristic() cardinal.Cardinal
- func (*Field) ElementSize() int
- func (*Field) ExtensionDegree() uint
- func (*Field) FromBytes(buf []byte) (*FieldElement, error)
- func (f *Field) FromComponentsBytes(data [][]byte) (*FieldElement, error)
- func (f *Field) Hash(data []byte) (*FieldElement, error)
- func (*Field) IsDomain() bool
- func (*Field) Name() string
- func (*Field) One() *FieldElement
- func (f *Field) OpIdentity() *FieldElement
- func (*Field) Order() cardinal.Cardinal
- func (f *Field) Random(prng io.Reader) (*FieldElement, error)
- func (f *Field) RandomNonZero(prng io.Reader) (*FieldElement, error)
- func (*Field) Select(choice uint64, x, y *FieldElement) *FieldElement
- func (*Field) Zero() *FieldElement
- type FieldElement
- func (el *FieldElement) Add(y *FieldElement) *FieldElement
- func (el *FieldElement) Bytes() []byte
- func (el *FieldElement) Clone() *FieldElement
- func (*FieldElement) ComponentsBytes() [][]byte
- func (*FieldElement) Double() *FieldElement
- func (el *FieldElement) Equal(rhs *FieldElement) bool
- func (el *FieldElement) EuclideanDiv(rhs *FieldElement) (quot, rem *FieldElement, err error)
- func (el *FieldElement) EuclideanValuation() cardinal.Cardinal
- func (el *FieldElement) HashCode() base.HashCode
- func (el *FieldElement) IsOne() bool
- func (el *FieldElement) IsOpIdentity() bool
- func (*FieldElement) IsProbablyPrime() bool
- func (el *FieldElement) IsZero() bool
- func (el *FieldElement) Mul(rhs *FieldElement) *FieldElement
- func (el *FieldElement) Neg() *FieldElement
- func (el *FieldElement) Op(e *FieldElement) *FieldElement
- func (el *FieldElement) OpInv() *FieldElement
- func (el *FieldElement) OtherOp(e *FieldElement) *FieldElement
- func (el *FieldElement) Square() *FieldElement
- func (el *FieldElement) String() string
- func (*FieldElement) Structure() algebra.Structure[*FieldElement]
- func (el *FieldElement) Sub(e *FieldElement) *FieldElement
- func (el *FieldElement) TryDiv(e *FieldElement) (*FieldElement, error)
- func (el *FieldElement) TryInv() (*FieldElement, error)
- func (el *FieldElement) TryNeg() (*FieldElement, error)
- func (el *FieldElement) TryOpInv() (*FieldElement, error)
- func (el *FieldElement) TrySub(e *FieldElement) (*FieldElement, error)
Constants ¶
View Source
const ( Name = "F_{2^128}" FieldElementSize = 16 FieldElementLimbs = 2 )
Variables ¶
View Source
var ( ErrDivisionByZero = errs.New("division by zero") ErrInvalidLength = errs.New("invalid length") )
Functions ¶
This section is empty.
Types ¶
type Field ¶
type Field struct{}
func (*Field) Characteristic ¶
func (*Field) ElementSize ¶
func (*Field) ExtensionDegree ¶
func (*Field) FromComponentsBytes ¶
func (f *Field) FromComponentsBytes(data [][]byte) (*FieldElement, error)
func (*Field) One ¶
func (*Field) One() *FieldElement
func (*Field) OpIdentity ¶
func (f *Field) OpIdentity() *FieldElement
func (*Field) RandomNonZero ¶
func (f *Field) RandomNonZero(prng io.Reader) (*FieldElement, error)
func (*Field) Select ¶
func (*Field) Select(choice uint64, x, y *FieldElement) *FieldElement
func (*Field) Zero ¶
func (*Field) Zero() *FieldElement
type FieldElement ¶
type FieldElement [2]uint64
func (*FieldElement) Add ¶
func (el *FieldElement) Add(y *FieldElement) *FieldElement
func (*FieldElement) Bytes ¶
func (el *FieldElement) Bytes() []byte
func (*FieldElement) Clone ¶
func (el *FieldElement) Clone() *FieldElement
func (*FieldElement) ComponentsBytes ¶
func (*FieldElement) ComponentsBytes() [][]byte
func (*FieldElement) Double ¶
func (*FieldElement) Double() *FieldElement
func (*FieldElement) Equal ¶
func (el *FieldElement) Equal(rhs *FieldElement) bool
func (*FieldElement) EuclideanDiv ¶
func (el *FieldElement) EuclideanDiv(rhs *FieldElement) (quot, rem *FieldElement, err error)
func (*FieldElement) EuclideanValuation ¶
func (el *FieldElement) EuclideanValuation() cardinal.Cardinal
func (*FieldElement) HashCode ¶
func (el *FieldElement) HashCode() base.HashCode
func (*FieldElement) IsOne ¶
func (el *FieldElement) IsOne() bool
func (*FieldElement) IsOpIdentity ¶
func (el *FieldElement) IsOpIdentity() bool
func (*FieldElement) IsProbablyPrime ¶
func (*FieldElement) IsProbablyPrime() bool
func (*FieldElement) IsZero ¶
func (el *FieldElement) IsZero() bool
func (*FieldElement) Mul ¶
func (el *FieldElement) Mul(rhs *FieldElement) *FieldElement
func (*FieldElement) Neg ¶
func (el *FieldElement) Neg() *FieldElement
func (*FieldElement) Op ¶
func (el *FieldElement) Op(e *FieldElement) *FieldElement
func (*FieldElement) OpInv ¶
func (el *FieldElement) OpInv() *FieldElement
func (*FieldElement) OtherOp ¶
func (el *FieldElement) OtherOp(e *FieldElement) *FieldElement
func (*FieldElement) Square ¶
func (el *FieldElement) Square() *FieldElement
func (*FieldElement) String ¶
func (el *FieldElement) String() string
func (*FieldElement) Structure ¶
func (*FieldElement) Structure() algebra.Structure[*FieldElement]
func (*FieldElement) Sub ¶
func (el *FieldElement) Sub(e *FieldElement) *FieldElement
func (*FieldElement) TryDiv ¶
func (el *FieldElement) TryDiv(e *FieldElement) (*FieldElement, error)
func (*FieldElement) TryInv ¶
func (el *FieldElement) TryInv() (*FieldElement, error)
func (*FieldElement) TryNeg ¶
func (el *FieldElement) TryNeg() (*FieldElement, error)
func (*FieldElement) TryOpInv ¶
func (el *FieldElement) TryOpInv() (*FieldElement, error)
func (*FieldElement) TrySub ¶
func (el *FieldElement) TrySub(e *FieldElement) (*FieldElement, error)
Click to show internal directories.
Click to hide internal directories.