30#if defined(__cplusplus)
35#define OQS_KEM_alg_bike_l1 "BIKE-L1"
37#define OQS_KEM_alg_bike_l3 "BIKE-L3"
39#define OQS_KEM_alg_bike_l5 "BIKE-L5"
42#define OQS_KEM_alg_classic_mceliece_348864 "Classic-McEliece-348864"
44#define OQS_KEM_alg_classic_mceliece_348864f "Classic-McEliece-348864f"
46#define OQS_KEM_alg_classic_mceliece_460896 "Classic-McEliece-460896"
48#define OQS_KEM_alg_classic_mceliece_460896f "Classic-McEliece-460896f"
50#define OQS_KEM_alg_classic_mceliece_6688128 "Classic-McEliece-6688128"
52#define OQS_KEM_alg_classic_mceliece_6688128f "Classic-McEliece-6688128f"
54#define OQS_KEM_alg_classic_mceliece_6960119 "Classic-McEliece-6960119"
56#define OQS_KEM_alg_classic_mceliece_6960119f "Classic-McEliece-6960119f"
58#define OQS_KEM_alg_classic_mceliece_8192128 "Classic-McEliece-8192128"
60#define OQS_KEM_alg_classic_mceliece_8192128f "Classic-McEliece-8192128f"
62#define OQS_KEM_alg_hqc_1 "HQC-1"
64#define OQS_KEM_alg_hqc_3 "HQC-3"
66#define OQS_KEM_alg_hqc_5 "HQC-5"
68#define OQS_KEM_alg_kyber_512 "Kyber512"
70#define OQS_KEM_alg_kyber_768 "Kyber768"
72#define OQS_KEM_alg_kyber_1024 "Kyber1024"
74#define OQS_KEM_alg_ml_kem_512 "ML-KEM-512"
76#define OQS_KEM_alg_ml_kem_768 "ML-KEM-768"
78#define OQS_KEM_alg_ml_kem_1024 "ML-KEM-1024"
81#define OQS_KEM_alg_ntru_hps2048509 "NTRU-HPS-2048-509"
83#define OQS_KEM_alg_ntru_hps2048677 "NTRU-HPS-2048-677"
85#define OQS_KEM_alg_ntru_hps4096821 "NTRU-HPS-4096-821"
87#define OQS_KEM_alg_ntru_hps40961229 "NTRU-HPS-4096-1229"
89#define OQS_KEM_alg_ntru_hrss701 "NTRU-HRSS-701"
91#define OQS_KEM_alg_ntru_hrss1373 "NTRU-HRSS-1373"
93#define OQS_KEM_alg_ntruprime_sntrup761 "sntrup761"
95#define OQS_KEM_alg_frodokem_640_aes "FrodoKEM-640-AES"
97#define OQS_KEM_alg_frodokem_640_shake "FrodoKEM-640-SHAKE"
99#define OQS_KEM_alg_frodokem_976_aes "FrodoKEM-976-AES"
101#define OQS_KEM_alg_frodokem_976_shake "FrodoKEM-976-SHAKE"
103#define OQS_KEM_alg_frodokem_1344_aes "FrodoKEM-1344-AES"
105#define OQS_KEM_alg_frodokem_1344_shake "FrodoKEM-1344-SHAKE"
107#define OQS_KEM_alg_efrodokem_640_aes "eFrodoKEM-640-AES"
109#define OQS_KEM_alg_efrodokem_640_shake "eFrodoKEM-640-SHAKE"
111#define OQS_KEM_alg_efrodokem_976_aes "eFrodoKEM-976-AES"
113#define OQS_KEM_alg_efrodokem_976_shake "eFrodoKEM-976-SHAKE"
115#define OQS_KEM_alg_efrodokem_1344_aes "eFrodoKEM-1344-AES"
117#define OQS_KEM_alg_efrodokem_1344_shake "eFrodoKEM-1344-SHAKE"
122#define OQS_KEM_algs_length 41
243 OQS_STATUS (*
encaps)(uint8_t *ciphertext, uint8_t *shared_secret,
const uint8_t *public_key);
257 OQS_STATUS (*
decaps)(uint8_t *shared_secret,
const uint8_t *ciphertext,
const uint8_t *secret_key);
354#ifdef OQS_ENABLE_KEM_BIKE
355#include <oqs/kem_bike.h>
358#ifdef OQS_ENABLE_KEM_CLASSIC_MCELIECE
359#include <oqs/kem_classic_mceliece.h>
361#ifdef OQS_ENABLE_KEM_HQC
362#include <oqs/kem_hqc.h>
364#ifdef OQS_ENABLE_KEM_KYBER
365#include <oqs/kem_kyber.h>
367#ifdef OQS_ENABLE_KEM_ML_KEM
368#include <oqs/kem_ml_kem.h>
371#ifdef OQS_ENABLE_KEM_NTRU
372#include <oqs/kem_ntru.h>
374#ifdef OQS_ENABLE_KEM_NTRUPRIME
375#include <oqs/kem_ntruprime.h>
377#ifdef OQS_ENABLE_KEM_FRODOKEM
378#include <oqs/kem_frodokem.h>
382#if defined(__cplusplus)
#define OQS_API
Definition common.h:149
OQS_STATUS
Definition common.h:171
OQS_API OQS_STATUS OQS_KEM_decaps(const OQS_KEM *kem, uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key)
OQS_API OQS_STATUS OQS_KEM_keypair(const OQS_KEM *kem, uint8_t *public_key, uint8_t *secret_key)
OQS_API OQS_STATUS OQS_KEM_keypair_derand(const OQS_KEM *kem, uint8_t *public_key, uint8_t *secret_key, const uint8_t *seed)
OQS_API OQS_KEM * OQS_KEM_new(const char *method_name)
OQS_API const char * OQS_KEM_alg_identifier(size_t i)
OQS_API int OQS_KEM_alg_count(void)
OQS_API OQS_STATUS OQS_KEM_encaps(const OQS_KEM *kem, uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key)
OQS_API int OQS_KEM_alg_is_enabled(const char *method_name)
OQS_API void OQS_KEM_free(OQS_KEM *kem)
OQS_API OQS_STATUS OQS_KEM_encaps_derand(const OQS_KEM *kem, uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key, const uint8_t *seed)
const char * method_name
Definition kem.h:160
size_t length_shared_secret
Definition kem.h:183
size_t length_ciphertext
Definition kem.h:181
size_t length_secret_key
Definition kem.h:179
uint8_t claimed_nist_level
Definition kem.h:171
size_t length_keypair_seed
Definition kem.h:185
OQS_STATUS(* decaps)(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key)
Definition kem.h:257
OQS_STATUS(* keypair_derand)(uint8_t *public_key, uint8_t *secret_key, const uint8_t *seed)
Definition kem.h:201
OQS_STATUS(* encaps)(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key)
Definition kem.h:243
const char * alg_version
Definition kem.h:168
size_t length_public_key
Definition kem.h:177
OQS_STATUS(* encaps_derand)(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key, const uint8_t *seed)
Definition kem.h:229
size_t length_encaps_seed
Definition kem.h:187
bool ind_cca
Definition kem.h:174
OQS_STATUS(* keypair)(uint8_t *public_key, uint8_t *secret_key)
Definition kem.h:214