bf128

package
v0.0.0-...-7685c8a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 26, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package bf128 implements arithmetic over the binary field GF(2^128).

Index

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 NewField

func NewField() *Field

func (*Field) Characteristic

func (*Field) Characteristic() cardinal.Cardinal

func (*Field) ElementSize

func (*Field) ElementSize() int

func (*Field) ExtensionDegree

func (*Field) ExtensionDegree() uint

func (*Field) FromBytes

func (*Field) FromBytes(buf []byte) (*FieldElement, error)

func (*Field) FromComponentsBytes

func (f *Field) FromComponentsBytes(data [][]byte) (*FieldElement, error)

func (*Field) Hash

func (f *Field) Hash(data []byte) (*FieldElement, error)

func (*Field) IsDomain

func (*Field) IsDomain() bool

func (*Field) Name

func (*Field) Name() string

func (*Field) One

func (*Field) One() *FieldElement

func (*Field) OpIdentity

func (f *Field) OpIdentity() *FieldElement

func (*Field) Order

func (*Field) Order() cardinal.Cardinal

func (*Field) Random

func (f *Field) Random(prng io.Reader) (*FieldElement, error)

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 (*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)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL