mirror of
https://github.com/henrydcase/pqc.git
synced 2024-11-23 07:59:01 +00:00
28 lines
898 B
C
28 lines
898 B
C
|
/*---------------------------------------------------------------------
|
|||
|
This file has been adapted from the implementation
|
|||
|
(available at, Public Domain https://github.com/pq-crystals/kyber)
|
|||
|
of "CRYSTALS – Kyber: a CCA-secure module-lattice-based KEM"
|
|||
|
by : Joppe Bos, Leo Ducas, Eike Kiltz, Tancrede Lepoint,
|
|||
|
Vadim Lyubashevsky, John M. Schanck, Peter Schwabe & Damien stehle
|
|||
|
----------------------------------------------------------------------*/
|
|||
|
#include "api.h"
|
|||
|
#include "cbd.h"
|
|||
|
#include "fips202.h"
|
|||
|
#include "poly.h"
|
|||
|
|
|||
|
void PQCLEAN_SABER_CLEAN_GenSecret(uint16_t r[SABER_K][SABER_N], const unsigned char *seed) {
|
|||
|
|
|||
|
|
|||
|
uint32_t i;
|
|||
|
|
|||
|
int32_t buf_size = SABER_MU * SABER_N * SABER_K / 8;
|
|||
|
|
|||
|
uint8_t buf[buf_size];
|
|||
|
|
|||
|
shake128(buf, buf_size, seed, SABER_NOISESEEDBYTES);
|
|||
|
|
|||
|
for (i = 0; i < SABER_K; i++) {
|
|||
|
PQCLEAN_SABER_CLEAN_cbd(r[i], buf + i * SABER_MU * SABER_N / 8);
|
|||
|
}
|
|||
|
}
|