2019-06-18 14:40:24 +01:00
|
|
|
#ifndef POLY_H
|
|
|
|
#define POLY_H
|
2019-06-18 10:00:33 +01:00
|
|
|
#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-16 01:00:04 +01:00
|
|
|
|
|
|
|
|
2020-10-28 16:02:04 +00:00
|
|
|
void PQCLEAN_SABER_CLEAN_MatrixVectorMul(poly c[SABER_L], const poly A[SABER_L][SABER_L], const poly s[SABER_L], int16_t transpose);
|
2019-06-18 10:00:33 +01:00
|
|
|
|
2020-10-28 16:02:04 +00:00
|
|
|
void PQCLEAN_SABER_CLEAN_InnerProd(poly *c, const poly b[SABER_L], const poly s[SABER_L]);
|
|
|
|
|
|
|
|
void PQCLEAN_SABER_CLEAN_GenMatrix(poly A[SABER_L][SABER_L], const uint8_t seed[SABER_SEEDBYTES]);
|
|
|
|
|
|
|
|
void PQCLEAN_SABER_CLEAN_GenSecret(poly s[SABER_L], const uint8_t seed[SABER_NOISESEEDBYTES]);
|
|
|
|
|
|
|
|
|
|
|
|
void PQCLEAN_SABER_CLEAN_poly_mul(poly *c, const poly *a, const poly *b, int accumulate);
|
2019-06-18 10:00:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
#endif
|