pqc/crypto_kem/lightsaber/clean/poly.h

24 lines
680 B
C
Raw Permalink Normal View History

2019-06-18 15:27:03 +01:00
#ifndef POLY_H
#define POLY_H
#include "SABER_params.h"
#include <stdint.h>
2020-10-28 16:02:04 +00:00
typedef union {
uint16_t coeffs[SABER_N];
} poly;
2020-10-28 16:02:04 +00:00
void PQCLEAN_LIGHTSABER_CLEAN_MatrixVectorMul(poly c[SABER_L], const poly A[SABER_L][SABER_L], const poly s[SABER_L], int16_t transpose);
2019-06-18 15:27:03 +01:00
2020-10-28 16:02:04 +00:00
void PQCLEAN_LIGHTSABER_CLEAN_InnerProd(poly *c, const poly b[SABER_L], const poly s[SABER_L]);
void PQCLEAN_LIGHTSABER_CLEAN_GenMatrix(poly A[SABER_L][SABER_L], const uint8_t seed[SABER_SEEDBYTES]);
void PQCLEAN_LIGHTSABER_CLEAN_GenSecret(poly s[SABER_L], const uint8_t seed[SABER_NOISESEEDBYTES]);
void PQCLEAN_LIGHTSABER_CLEAN_poly_mul(poly *c, const poly *a, const poly *b, int accumulate);
2019-06-18 15:27:03 +01:00
#endif