//  kem_api.h

#ifndef kem_api_h
#define kem_api_h


#define N 1024
#define Q 3329
#define k 1  //central binomial

#define KEM_PUBLICKEYBYTES 1568  //PKE_PUBLICKEYBYTES
#define KEM_SECRETKEYBYTES 3264  //PKE_SECRETKEYBYTES+ PKE_PUBLICKEYBYTES+PKE_SEED_BYTES+128
#define KEM_CIP_BYTES   1792  // PKE_CIP_BYTES
#define KEM_KEYBYTES    128


unsigned long long  kem_get_pk_byts();
unsigned long long  kem_get_sk_byts();
unsigned long long  kem_get_ss_byts();
unsigned long long  kem_get_ct_byts();

int kem_keygen(unsigned char *pk, unsigned long long *pk_byts, unsigned char *sk, unsigned long long *sk_byts);
int kem_enc(unsigned char *pk, unsigned long long pk_byts, unsigned char  *ss, unsigned long long* ss_byts,
	unsigned char *ct, unsigned long long *ct_byts);
int kem_dec(unsigned char *sk, unsigned long long sk_byts,
	unsigned char *ct, unsigned long long ct_byts,
	unsigned char *ss, unsigned long long *ss_byts);

#endif 
