poly library

Classes

Poly

Functions

cbd(Poly r, Uint8List buf) → void
Samples a polynomial from a uniform distribution using the Centered Binomial Distribution (CBD) as described in the Kyber specification.
polyadd(Poly a, Poly b) Poly
Returns a new polynomial r which is the component-wise sum of polynomials a and b.
polybasemul(Poly a, Poly b) Poly
Returns a new polynomial r which is the component-wise multiplication of polynomials a and b in the Montgomery domain.
polycompress(Poly a) Uint8List
Compresses a polynomial into a byte array representation.
polydecompress(Uint8List r) Poly
Decompresses a polynomial from a compressed byte representation.
polyfrombytes(Uint8List r) Poly
Deserializes a polynomial from a byte array representation.
polyfrommsg(Poly p, Uint8List msg) → void
Converts a message byte array msg into a polynomial p.
polygetnoise(Poly r, Uint8List seed, int nonce) → void
Generates a pseudorandom polynomial from a seed and nonce using SHAKE128 and CBD (Centered Binomial Distribution). The output is a polynomial with coefficients in the range -(q-1)/2, (q-1)/2.
polyinvntttomont(Poly a) → void
Inverse NTT transform of a polynomial, in the Montgomery domain, with the result reduced modulo q.
polyntt(Poly a) → void
Applies the Number Theoretic Transform (NTT) to a polynomial a in-place.
polyreduce(Poly a) Poly
Reduces all coefficients of a polynomial mod q.
polysub(Poly a, Poly b) Poly
Returns a new polynomial r = a - b, i.e. for each coefficient, ri = ai - bi mod q.
polytobytes(Poly a) Uint8List
Serializes a polynomial into a byte array representation.
polytomsg(Uint8List msg, Poly p) → void
Converts a polynomial p into a message byte array msg.
polyuniform(Poly a, Uint8List seed, int nonce) → void
Generates a pseudorandom polynomial a from a given seed and nonce.