Versions in this module Expand all Collapse all v1 v1.3.71 Apr 15, 2024 Changes in this version + const Alpha + const Beta + const DoubleEtaBits + const Eta + const Gamma1 + const Gamma1Bits + const Gamma2 + const K + const L + const Name + const Omega + const PolyLeGamma1Size + const PolyLeqEtaSize + const PolyW1Size + const PrivateKeySize + const PublicKeySize + const SignatureSize + const Tau + const UseAES + var DeriveX4Available = keccakf1600.IsEnabledX4() && !UseAES + func GenerateKey(rand io.Reader) (*PublicKey, *PrivateKey, error) + func NewKeyFromSeed(seed *[common.SeedSize]byte) (*PublicKey, *PrivateKey) + func PolyDecompose(p, p0PlusQ, p1 *common.Poly) + func PolyDeriveUniform(p *common.Poly, seed *[32]byte, nonce uint16) + func PolyDeriveUniformBall(p *common.Poly, seed *[32]byte) + func PolyDeriveUniformBallX4(ps [4]*common.Poly, seed *[32]byte) + func PolyDeriveUniformLeGamma1(p *common.Poly, seed *[64]byte, nonce uint16) + func PolyDeriveUniformLeqEta(p *common.Poly, seed *[64]byte, nonce uint16) + func PolyDeriveUniformX4(ps [4]*common.Poly, seed *[32]byte, nonces [4]uint16) + func PolyDotHat(p *common.Poly, a, b *VecL) + func PolyMakeHint(p, p0, p1 *common.Poly) (pop uint32) + func PolyPackLeGamma1(p *common.Poly, buf []byte) + func PolyPackLeqEta(p *common.Poly, buf []byte) + func PolyPackW1(p *common.Poly, buf []byte) + func PolyUnpackLeGamma1(p *common.Poly, buf []byte) + func PolyUnpackLeqEta(p *common.Poly, buf []byte) + func PolyUseHint(p, q, hint *common.Poly) + func SignTo(sk *PrivateKey, msg []byte, signature []byte) + func VecLDeriveUniformLeGamma1(v *VecL, seed *[64]byte, nonce uint16) + func Verify(pk *PublicKey, msg []byte, signature []byte) bool + type Mat [K]VecL + func (m *Mat) Derive(seed *[32]byte) + type PrivateKey struct + A Mat + func (sk *PrivateKey) Equal(other *PrivateKey) bool + func (sk *PrivateKey) Pack(buf *[PrivateKeySize]byte) + func (sk *PrivateKey) Public() *PublicKey + func (sk *PrivateKey) Unpack(buf *[PrivateKeySize]byte) + type PublicKey struct + A *Mat + func (pk *PublicKey) Equal(other *PublicKey) bool + func (pk *PublicKey) Pack(buf *[PublicKeySize]byte) + func (pk *PublicKey) Unpack(buf *[PublicKeySize]byte) + type VecK [K]common.Poly + func (v *VecK) Add(w, u *VecK) + func (v *VecK) Decompose(v0PlusQ, v1 *VecK) + func (v *VecK) Exceeds(bound uint32) bool + func (v *VecK) InvNTT() + func (v *VecK) MakeHint(v0, v1 *VecK) (pop uint32) + func (v *VecK) MulBy2toD(w *VecK) + func (v *VecK) NTT() + func (v *VecK) Normalize() + func (v *VecK) NormalizeAssumingLe2Q() + func (v *VecK) PackHint(buf []byte) + func (v *VecK) PackLeqEta(buf []byte) + func (v *VecK) PackT0(buf []byte) + func (v *VecK) PackT1(buf []byte) + func (v *VecK) PackW1(buf []byte) + func (v *VecK) Power2Round(v0PlusQ, v1 *VecK) + func (v *VecK) ReduceLe2Q() + func (v *VecK) Sub(a, b *VecK) + func (v *VecK) UnpackHint(buf []byte) bool + func (v *VecK) UnpackLeqEta(buf []byte) + func (v *VecK) UnpackT0(buf []byte) + func (v *VecK) UnpackT1(buf []byte) + func (v *VecK) UseHint(q, hint *VecK) *VecK + type VecL [L]common.Poly + func (v *VecL) Add(w, u *VecL) + func (v *VecL) Decompose(v0PlusQ, v1 *VecL) + func (v *VecL) Exceeds(bound uint32) bool + func (v *VecL) NTT() + func (v *VecL) Normalize() + func (v *VecL) NormalizeAssumingLe2Q() + func (v *VecL) PackLeGamma1(buf []byte) + func (v *VecL) PackLeqEta(buf []byte) + func (v *VecL) Power2Round(v0PlusQ, v1 *VecL) + func (v *VecL) UnpackLeGamma1(buf []byte) + func (v *VecL) UnpackLeqEta(buf []byte)