#ifndef NIEDERREITER_H #define NIEDERREITER_H #include "gf2x_arith_mod_xPplusOne.h" #include "qc_ldpc_parameters.h" #include "rng.h" typedef struct { unsigned char prng_seed[TRNG_BYTE_LENGTH]; uint8_t rejections; uint8_t secondIterThreshold; uint8_t decryption_failure_secret[TRNG_BYTE_LENGTH]; } privateKeyNiederreiter_t; typedef struct { DIGIT Mtr[(N0 - 1)*NUM_DIGITS_GF2X_ELEMENT]; } publicKeyNiederreiter_t; void PQCLEAN_LEDAKEMLT12_LEAKTIME_niederreiter_keygen(publicKeyNiederreiter_t *pk, privateKeyNiederreiter_t *sk); void PQCLEAN_LEDAKEMLT12_LEAKTIME_niederreiter_encrypt(DIGIT syndrome[], const publicKeyNiederreiter_t *pk, const DIGIT err[]); int PQCLEAN_LEDAKEMLT12_LEAKTIME_niederreiter_decrypt(DIGIT *err, const privateKeyNiederreiter_t *sk, const DIGIT *syndrome); #endif