#ifndef KEM_H #define KEM_H #include #include "params.h" #define CRYPTO_SECRETKEYBYTES KYBER_SECRETKEYBYTES #define CRYPTO_PUBLICKEYBYTES KYBER_PUBLICKEYBYTES #define CRYPTO_CIPHERTEXTBYTES KYBER_CIPHERTEXTBYTES #define CRYPTO_BYTES KYBER_SSBYTES #if (KYBER_K == 2) #ifdef KYBER_90S #define CRYPTO_ALGNAME "Kyber512-90s" #else #define CRYPTO_ALGNAME "Kyber512" #endif #elif (KYBER_K == 3) #ifdef KYBER_90S #define CRYPTO_ALGNAME "Kyber768-90s" #else #define CRYPTO_ALGNAME "Kyber768" #endif #elif (KYBER_K == 4) #ifdef KYBER_90S #define CRYPTO_ALGNAME "Kyber1024-90s" #else #define CRYPTO_ALGNAME "Kyber1024" #endif #endif #define crypto_kem_keypair_derand KYBER_NAMESPACE(keypair_derand) int crypto_kem_keypair_derand(uint8_t *pk, uint8_t *sk, const uint8_t coins[2*KYBER_SYMBYTES]); #define crypto_kem_keypair KYBER_NAMESPACE(keypair) int crypto_kem_keypair(uint8_t *pk, uint8_t *sk); #define crypto_kem_enc_derand KYBER_NAMESPACE(enc_derand) int crypto_kem_enc_derand(uint8_t *ct, uint8_t *ss, const uint8_t *pk, const uint8_t coins[KYBER_SYMBYTES]); #define crypto_kem_enc KYBER_NAMESPACE(enc) int crypto_kem_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk); #define crypto_kem_dec KYBER_NAMESPACE(dec) int crypto_kem_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk); #endif