23#ifndef MLKEM_NATIVE_H_
24#define MLKEM_NATIVE_H_
45} libcrux_ml_kem_types_MlKemPrivateKey_d9;
54} libcrux_ml_kem_types_MlKemPublicKey_30;
57 libcrux_ml_kem_types_MlKemPrivateKey_d9 sk;
58 libcrux_ml_kem_types_MlKemPublicKey_30 pk;
59} libcrux_ml_kem_mlkem768_MlKem768KeyPair;
63} libcrux_ml_kem_mlkem768_MlKem768Ciphertext;
72 libcrux_ml_kem_mlkem768_MlKem768Ciphertext fst;
79libcrux_ml_kem_mlkem768_MlKem768KeyPair
80libcrux_ml_kem_mlkem768_portable_generate_key_pair(uint8_t randomness[64U]);
87bool libcrux_ml_kem_mlkem768_portable_validate_public_key(
88 libcrux_ml_kem_types_MlKemPublicKey_30 *public_key);
97tuple_c2 libcrux_ml_kem_mlkem768_portable_encapsulate(
98 libcrux_ml_kem_types_MlKemPublicKey_30 *public_key,
99 uint8_t randomness[32U]);
108void libcrux_ml_kem_mlkem768_portable_decapsulate(
109 libcrux_ml_kem_types_MlKemPrivateKey_d9 *private_key,
110 libcrux_ml_kem_mlkem768_MlKem768Ciphertext *ciphertext,
114#define libcrux_mlkem768_keypair libcrux_ml_kem_mlkem768_MlKem768KeyPair_s
115#define libcrux_mlkem768_pk libcrux_ml_kem_types_MlKemPublicKey_30_s
116#define libcrux_mlkem768_sk libcrux_ml_kem_types_MlKemPrivateKey_d9_s
117#define libcrux_mlkem768_ciphertext libcrux_ml_kem_mlkem768_MlKem768Ciphertext_s
118#define libcrux_mlkem768_enc_result tuple_c2_s
120#define LIBCRUX_ML_KEM_KEY_PAIR_PRNG_LEN 64U
121#define LIBCRUX_ML_KEM_ENC_PRNG_LEN 32
Definition mlkem_native.h:61
Definition mlkem_native.h:56
Definition mlkem_native.h:43
Definition mlkem_native.h:52
Definition mlkem_native.h:71