/* * SPDX-FileCopyrightText: 2026 CE Labs * * SPDX-License-Identifier: MIT or Apache-2.0 * * This code was generated with the following revisions: * Charon: e656e17bff6ca5efac8ab6919b9b74cb9a8dd8ad * Eurydice: aaa9fa657fb6f09802edb890252040d94cd93982 * Karamel: 8c19d41458ce5cbfea029ebc03334ba96d149039 * F*: 70671ffb81fa30aba09b9d6e2af275dfbccaa8f8 * Libcrux: 10066f256cec8d50d6111a4cf33ab920cfdb96cb */ #ifndef internal_libcrux_mlkem_portable_H #define internal_libcrux_mlkem_portable_H #include "eurydice_glue.h" #if defined(__cplusplus) extern "C" { #endif #include "internal/libcrux_sha3_portable.h" #include "internal/combined_core.h" #include "libcrux_mlkem_core.h" #include "combined_core.h" #include "../libcrux_mlkem_portable.h" int16_t libcrux_ml_kem_polynomial_zeta(size_t i); #define LIBCRUX_ML_KEM_POLYNOMIAL_VECTORS_IN_RING_ELEMENT ((size_t)16U) /** This function found in impl {libcrux_ml_kem::hash_functions::Hash for libcrux_ml_kem::hash_functions::portable::PortableHash} */ /** A monomorphic instance of libcrux_ml_kem.hash_functions.portable.shake128_init_absorb_final_4a with const generics - K= 4 */ Eurydice_arr_4a libcrux_ml_kem_hash_functions_portable_shake128_init_absorb_final_4a_23( const Eurydice_arr_56 *input ); /** This function found in impl {libcrux_ml_kem::hash_functions::Hash for libcrux_ml_kem::hash_functions::portable::PortableHash} */ /** A monomorphic instance of libcrux_ml_kem.hash_functions.portable.shake128_squeeze_first_three_blocks_4a with const generics - K= 4 */ Eurydice_arr_7c0 libcrux_ml_kem_hash_functions_portable_shake128_squeeze_first_three_blocks_4a_23( Eurydice_arr_4a *self ); /** This function found in impl {libcrux_ml_kem::hash_functions::Hash for libcrux_ml_kem::hash_functions::portable::PortableHash} */ /** A monomorphic instance of libcrux_ml_kem.hash_functions.portable.shake128_squeeze_next_block_4a with const generics - K= 4 */ Eurydice_arr_9c libcrux_ml_kem_hash_functions_portable_shake128_squeeze_next_block_4a_23(Eurydice_arr_4a *self); /** Generate an unpacked key from a serialized key. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.unpack_public_key with types libcrux_ml_kem_hash_functions_portable_PortableHash[[$4size_t]], libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 4 - T_AS_NTT_ENCODED_SIZE= 1536 - PUBLIC_KEY_SIZE= 1568 */ void libcrux_ml_kem_ind_cca_unpacked_unpack_public_key_29( const Eurydice_arr_d1 *public_key, libcrux_ml_kem_ind_cca_unpacked_MlKemPublicKeyUnpacked_94 *unpacked_public_key ); /** Get the serialized public key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemPublicKeyUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.serialized_mut_dd with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 4 - PUBLIC_KEY_SIZE= 1568 */ void libcrux_ml_kem_ind_cca_unpacked_serialized_mut_dd_1c( const libcrux_ml_kem_ind_cca_unpacked_MlKemPublicKeyUnpacked_94 *self, Eurydice_arr_d1 *serialized ); /** Get the serialized public key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.serialized_public_key_mut_11 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 4 - PUBLIC_KEY_SIZE= 1568 */ void libcrux_ml_kem_ind_cca_unpacked_serialized_public_key_mut_11_1c( const libcrux_ml_kem_mlkem1024_portable_unpacked_MlKem1024KeyPairUnpacked *self, Eurydice_arr_d1 *serialized ); /** Get the serialized public key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.serialized_public_key_11 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 4 - PUBLIC_KEY_SIZE= 1568 */ Eurydice_arr_d1 libcrux_ml_kem_ind_cca_unpacked_serialized_public_key_11_1c( const libcrux_ml_kem_mlkem1024_portable_unpacked_MlKem1024KeyPairUnpacked *self ); /** Serialize the secret key. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.serialize_kem_secret_key_mut with types libcrux_ml_kem_hash_functions_portable_PortableHash[[$4size_t]] with const generics - K= 4 - SERIALIZED_KEY_LEN= 3168 */ void libcrux_ml_kem_ind_cca_serialize_kem_secret_key_mut_4c( Eurydice_borrow_slice_u8 private_key, Eurydice_borrow_slice_u8 public_key, Eurydice_borrow_slice_u8 implicit_rejection_value, Eurydice_arr_a8 *serialized ); /** Get the serialized private key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.serialized_private_key_mut_11 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 4 - CPA_PRIVATE_KEY_SIZE= 1536 - PRIVATE_KEY_SIZE= 3168 - PUBLIC_KEY_SIZE= 1568 */ void libcrux_ml_kem_ind_cca_unpacked_serialized_private_key_mut_11_2e( const libcrux_ml_kem_mlkem1024_portable_unpacked_MlKem1024KeyPairUnpacked *self, Eurydice_arr_a8 *serialized ); /** Get the serialized private key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.serialized_private_key_11 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 4 - CPA_PRIVATE_KEY_SIZE= 1536 - PRIVATE_KEY_SIZE= 3168 - PUBLIC_KEY_SIZE= 1568 */ Eurydice_arr_a8 libcrux_ml_kem_ind_cca_unpacked_serialized_private_key_11_2e( const libcrux_ml_kem_mlkem1024_portable_unpacked_MlKem1024KeyPairUnpacked *self ); /** Take a serialized private key and generate an unpacked key pair from it. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.keys_from_private_key with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 4 - SECRET_KEY_SIZE= 3168 - CPA_SECRET_KEY_SIZE= 1536 - PUBLIC_KEY_SIZE= 1568 - T_AS_NTT_ENCODED_SIZE= 1536 */ void libcrux_ml_kem_ind_cca_unpacked_keys_from_private_key_38( const Eurydice_arr_a8 *private_key, libcrux_ml_kem_mlkem1024_portable_unpacked_MlKem1024KeyPairUnpacked *key_pair ); /** This function found in impl {core::default::Default for libcrux_ml_kem::ind_cca::unpacked::MlKemPublicKeyUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.default_30 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 4 */ libcrux_ml_kem_ind_cca_unpacked_MlKemPublicKeyUnpacked_94 libcrux_ml_kem_ind_cca_unpacked_default_30_ee(void); /** This function found in impl {core::default::Default for libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.default_7b with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 4 */ libcrux_ml_kem_mlkem1024_portable_unpacked_MlKem1024KeyPairUnpacked libcrux_ml_kem_ind_cca_unpacked_default_7b_ee(void); /** Generate Unpacked Keys */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.generate_keypair with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$4size_t]], libcrux_ml_kem_variant_MlKem with const generics - K= 4 - CPA_PRIVATE_KEY_SIZE= 1536 - PRIVATE_KEY_SIZE= 3168 - PUBLIC_KEY_SIZE= 1568 - ETA1= 2 - ETA1_RANDOMNESS_SIZE= 128 */ void libcrux_ml_kem_ind_cca_unpacked_generate_keypair_b81( Eurydice_arr_c7 randomness, libcrux_ml_kem_mlkem1024_portable_unpacked_MlKem1024KeyPairUnpacked *out ); /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.encapsulate with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$4size_t]] with const generics - K= 4 - CIPHERTEXT_SIZE= 1568 - PUBLIC_KEY_SIZE= 1568 - T_AS_NTT_ENCODED_SIZE= 1536 - C1_SIZE= 1408 - C2_SIZE= 160 - VECTOR_U_COMPRESSION_FACTOR= 11 - VECTOR_V_COMPRESSION_FACTOR= 5 - VECTOR_U_BLOCK_LEN= 352 - ETA1= 2 - ETA1_RANDOMNESS_SIZE= 128 - ETA2= 2 - ETA2_RANDOMNESS_SIZE= 128 */ tuple_25 libcrux_ml_kem_ind_cca_unpacked_encapsulate_a71( const libcrux_ml_kem_ind_cca_unpacked_MlKemPublicKeyUnpacked_94 *public_key, const Eurydice_arr_ec *randomness ); /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.decapsulate with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$4size_t]] with const generics - K= 4 - SECRET_KEY_SIZE= 3168 - CPA_SECRET_KEY_SIZE= 1536 - PUBLIC_KEY_SIZE= 1568 - CIPHERTEXT_SIZE= 1568 - T_AS_NTT_ENCODED_SIZE= 1536 - C1_SIZE= 1408 - C2_SIZE= 160 - VECTOR_U_COMPRESSION_FACTOR= 11 - VECTOR_V_COMPRESSION_FACTOR= 5 - C1_BLOCK_SIZE= 352 - ETA1= 2 - ETA1_RANDOMNESS_SIZE= 128 - ETA2= 2 - ETA2_RANDOMNESS_SIZE= 128 - IMPLICIT_REJECTION_HASH_INPUT_SIZE= 1600 */ Eurydice_arr_ec libcrux_ml_kem_ind_cca_unpacked_decapsulate_0c1( const libcrux_ml_kem_mlkem1024_portable_unpacked_MlKem1024KeyPairUnpacked *key_pair, const Eurydice_arr_d1 *ciphertext ); /** Validate an ML-KEM public key. This implements the Modulus check in 7.2 2. Note that the size check in 7.2 1 is covered by the `PUBLIC_KEY_SIZE` in the `public_key` type. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.validate_public_key with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 4 - PUBLIC_KEY_SIZE= 1568 */ bool libcrux_ml_kem_ind_cca_validate_public_key_1c(const Eurydice_arr_d1 *public_key); /** Validate an ML-KEM private key. This implements the Hash check in 7.3 3. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.validate_private_key_only with types libcrux_ml_kem_hash_functions_portable_PortableHash[[$4size_t]] with const generics - K= 4 - SECRET_KEY_SIZE= 3168 */ bool libcrux_ml_kem_ind_cca_validate_private_key_only_4c(const Eurydice_arr_a8 *private_key); /** Validate an ML-KEM private key. This implements the Hash check in 7.3 3. Note that the size checks in 7.2 1 and 2 are covered by the `SECRET_KEY_SIZE` and `CIPHERTEXT_SIZE` in the `private_key` and `ciphertext` types. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.validate_private_key with types libcrux_ml_kem_hash_functions_portable_PortableHash[[$4size_t]] with const generics - K= 4 - SECRET_KEY_SIZE= 3168 - CIPHERTEXT_SIZE= 1568 */ bool libcrux_ml_kem_ind_cca_validate_private_key_79( const Eurydice_arr_a8 *private_key, const Eurydice_arr_d1 *_ciphertext ); /** Packed API Generate a key pair. Depending on the `Vector` and `Hasher` used, this requires different hardware features */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.generate_keypair with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$4size_t]], libcrux_ml_kem_variant_MlKem with const generics - K= 4 - CPA_PRIVATE_KEY_SIZE= 1536 - PRIVATE_KEY_SIZE= 3168 - PUBLIC_KEY_SIZE= 1568 - ETA1= 2 - ETA1_RANDOMNESS_SIZE= 128 */ libcrux_ml_kem_mlkem1024_MlKem1024KeyPair libcrux_ml_kem_ind_cca_generate_keypair_b81(const Eurydice_arr_c7 *randomness); /** A monomorphic instance of libcrux_ml_kem.ind_cca.encapsulate with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$4size_t]], libcrux_ml_kem_variant_MlKem with const generics - K= 4 - CIPHERTEXT_SIZE= 1568 - PUBLIC_KEY_SIZE= 1568 - T_AS_NTT_ENCODED_SIZE= 1536 - C1_SIZE= 1408 - C2_SIZE= 160 - VECTOR_U_COMPRESSION_FACTOR= 11 - VECTOR_V_COMPRESSION_FACTOR= 5 - C1_BLOCK_SIZE= 352 - ETA1= 2 - ETA1_RANDOMNESS_SIZE= 128 - ETA2= 2 - ETA2_RANDOMNESS_SIZE= 128 */ tuple_25 libcrux_ml_kem_ind_cca_encapsulate_991( const Eurydice_arr_d1 *public_key, const Eurydice_arr_ec *randomness ); /** This code verifies on some machines, runs out of memory on others */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.decapsulate with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$4size_t]], libcrux_ml_kem_variant_MlKem with const generics - K= 4 - SECRET_KEY_SIZE= 3168 - CPA_SECRET_KEY_SIZE= 1536 - PUBLIC_KEY_SIZE= 1568 - CIPHERTEXT_SIZE= 1568 - T_AS_NTT_ENCODED_SIZE= 1536 - C1_SIZE= 1408 - C2_SIZE= 160 - VECTOR_U_COMPRESSION_FACTOR= 11 - VECTOR_V_COMPRESSION_FACTOR= 5 - C1_BLOCK_SIZE= 352 - ETA1= 2 - ETA1_RANDOMNESS_SIZE= 128 - ETA2= 2 - ETA2_RANDOMNESS_SIZE= 128 - IMPLICIT_REJECTION_HASH_INPUT_SIZE= 1600 */ Eurydice_arr_ec libcrux_ml_kem_ind_cca_decapsulate_fd1( const Eurydice_arr_a8 *private_key, const Eurydice_arr_d1 *ciphertext ); /** This function found in impl {libcrux_ml_kem::hash_functions::Hash for libcrux_ml_kem::hash_functions::portable::PortableHash} */ /** A monomorphic instance of libcrux_ml_kem.hash_functions.portable.shake128_init_absorb_final_4a with const generics - K= 2 */ Eurydice_arr_e3 libcrux_ml_kem_hash_functions_portable_shake128_init_absorb_final_4a_af( const Eurydice_arr_bf *input ); /** This function found in impl {libcrux_ml_kem::hash_functions::Hash for libcrux_ml_kem::hash_functions::portable::PortableHash} */ /** A monomorphic instance of libcrux_ml_kem.hash_functions.portable.shake128_squeeze_first_three_blocks_4a with const generics - K= 2 */ Eurydice_arr_b8 libcrux_ml_kem_hash_functions_portable_shake128_squeeze_first_three_blocks_4a_af( Eurydice_arr_e3 *self ); /** This function found in impl {libcrux_ml_kem::hash_functions::Hash for libcrux_ml_kem::hash_functions::portable::PortableHash} */ /** A monomorphic instance of libcrux_ml_kem.hash_functions.portable.shake128_squeeze_next_block_4a with const generics - K= 2 */ Eurydice_arr_5b0 libcrux_ml_kem_hash_functions_portable_shake128_squeeze_next_block_4a_af(Eurydice_arr_e3 *self); /** Generate an unpacked key from a serialized key. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.unpack_public_key with types libcrux_ml_kem_hash_functions_portable_PortableHash[[$2size_t]], libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 2 - T_AS_NTT_ENCODED_SIZE= 768 - PUBLIC_KEY_SIZE= 800 */ void libcrux_ml_kem_ind_cca_unpacked_unpack_public_key_e0( const Eurydice_arr_03 *public_key, libcrux_ml_kem_ind_cca_unpacked_MlKemPublicKeyUnpacked_3b *unpacked_public_key ); /** Get the serialized public key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemPublicKeyUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.serialized_mut_dd with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 2 - PUBLIC_KEY_SIZE= 800 */ void libcrux_ml_kem_ind_cca_unpacked_serialized_mut_dd_53( const libcrux_ml_kem_ind_cca_unpacked_MlKemPublicKeyUnpacked_3b *self, Eurydice_arr_03 *serialized ); /** Get the serialized public key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.serialized_public_key_mut_11 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 2 - PUBLIC_KEY_SIZE= 800 */ void libcrux_ml_kem_ind_cca_unpacked_serialized_public_key_mut_11_53( const libcrux_ml_kem_mlkem512_portable_unpacked_MlKem512KeyPairUnpacked *self, Eurydice_arr_03 *serialized ); /** Get the serialized public key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.serialized_public_key_11 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 2 - PUBLIC_KEY_SIZE= 800 */ Eurydice_arr_03 libcrux_ml_kem_ind_cca_unpacked_serialized_public_key_11_53( const libcrux_ml_kem_mlkem512_portable_unpacked_MlKem512KeyPairUnpacked *self ); /** Serialize the secret key. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.serialize_kem_secret_key_mut with types libcrux_ml_kem_hash_functions_portable_PortableHash[[$2size_t]] with const generics - K= 2 - SERIALIZED_KEY_LEN= 1632 */ void libcrux_ml_kem_ind_cca_serialize_kem_secret_key_mut_e2( Eurydice_borrow_slice_u8 private_key, Eurydice_borrow_slice_u8 public_key, Eurydice_borrow_slice_u8 implicit_rejection_value, Eurydice_arr_ab0 *serialized ); /** Get the serialized private key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.serialized_private_key_mut_11 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 2 - CPA_PRIVATE_KEY_SIZE= 768 - PRIVATE_KEY_SIZE= 1632 - PUBLIC_KEY_SIZE= 800 */ void libcrux_ml_kem_ind_cca_unpacked_serialized_private_key_mut_11_a3( const libcrux_ml_kem_mlkem512_portable_unpacked_MlKem512KeyPairUnpacked *self, Eurydice_arr_ab0 *serialized ); /** Get the serialized private key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.serialized_private_key_11 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 2 - CPA_PRIVATE_KEY_SIZE= 768 - PRIVATE_KEY_SIZE= 1632 - PUBLIC_KEY_SIZE= 800 */ Eurydice_arr_ab0 libcrux_ml_kem_ind_cca_unpacked_serialized_private_key_11_a3( const libcrux_ml_kem_mlkem512_portable_unpacked_MlKem512KeyPairUnpacked *self ); /** Take a serialized private key and generate an unpacked key pair from it. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.keys_from_private_key with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 2 - SECRET_KEY_SIZE= 1632 - CPA_SECRET_KEY_SIZE= 768 - PUBLIC_KEY_SIZE= 800 - T_AS_NTT_ENCODED_SIZE= 768 */ void libcrux_ml_kem_ind_cca_unpacked_keys_from_private_key_71( const Eurydice_arr_ab0 *private_key, libcrux_ml_kem_mlkem512_portable_unpacked_MlKem512KeyPairUnpacked *key_pair ); /** This function found in impl {core::default::Default for libcrux_ml_kem::ind_cca::unpacked::MlKemPublicKeyUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.default_30 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 2 */ libcrux_ml_kem_ind_cca_unpacked_MlKemPublicKeyUnpacked_3b libcrux_ml_kem_ind_cca_unpacked_default_30_66(void); /** This function found in impl {core::default::Default for libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.default_7b with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 2 */ libcrux_ml_kem_mlkem512_portable_unpacked_MlKem512KeyPairUnpacked libcrux_ml_kem_ind_cca_unpacked_default_7b_66(void); /** Generate Unpacked Keys */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.generate_keypair with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$2size_t]], libcrux_ml_kem_variant_MlKem with const generics - K= 2 - CPA_PRIVATE_KEY_SIZE= 768 - PRIVATE_KEY_SIZE= 1632 - PUBLIC_KEY_SIZE= 800 - ETA1= 3 - ETA1_RANDOMNESS_SIZE= 192 */ void libcrux_ml_kem_ind_cca_unpacked_generate_keypair_b80( Eurydice_arr_c7 randomness, libcrux_ml_kem_mlkem512_portable_unpacked_MlKem512KeyPairUnpacked *out ); /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.encapsulate with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$2size_t]] with const generics - K= 2 - CIPHERTEXT_SIZE= 768 - PUBLIC_KEY_SIZE= 800 - T_AS_NTT_ENCODED_SIZE= 768 - C1_SIZE= 640 - C2_SIZE= 128 - VECTOR_U_COMPRESSION_FACTOR= 10 - VECTOR_V_COMPRESSION_FACTOR= 4 - VECTOR_U_BLOCK_LEN= 320 - ETA1= 3 - ETA1_RANDOMNESS_SIZE= 192 - ETA2= 2 - ETA2_RANDOMNESS_SIZE= 128 */ tuple_ab libcrux_ml_kem_ind_cca_unpacked_encapsulate_a70( const libcrux_ml_kem_ind_cca_unpacked_MlKemPublicKeyUnpacked_3b *public_key, const Eurydice_arr_ec *randomness ); /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.decapsulate with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$2size_t]] with const generics - K= 2 - SECRET_KEY_SIZE= 1632 - CPA_SECRET_KEY_SIZE= 768 - PUBLIC_KEY_SIZE= 800 - CIPHERTEXT_SIZE= 768 - T_AS_NTT_ENCODED_SIZE= 768 - C1_SIZE= 640 - C2_SIZE= 128 - VECTOR_U_COMPRESSION_FACTOR= 10 - VECTOR_V_COMPRESSION_FACTOR= 4 - C1_BLOCK_SIZE= 320 - ETA1= 3 - ETA1_RANDOMNESS_SIZE= 192 - ETA2= 2 - ETA2_RANDOMNESS_SIZE= 128 - IMPLICIT_REJECTION_HASH_INPUT_SIZE= 800 */ Eurydice_arr_ec libcrux_ml_kem_ind_cca_unpacked_decapsulate_0c0( const libcrux_ml_kem_mlkem512_portable_unpacked_MlKem512KeyPairUnpacked *key_pair, const Eurydice_arr_d2 *ciphertext ); /** Validate an ML-KEM public key. This implements the Modulus check in 7.2 2. Note that the size check in 7.2 1 is covered by the `PUBLIC_KEY_SIZE` in the `public_key` type. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.validate_public_key with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 2 - PUBLIC_KEY_SIZE= 800 */ bool libcrux_ml_kem_ind_cca_validate_public_key_53(const Eurydice_arr_03 *public_key); /** Validate an ML-KEM private key. This implements the Hash check in 7.3 3. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.validate_private_key_only with types libcrux_ml_kem_hash_functions_portable_PortableHash[[$2size_t]] with const generics - K= 2 - SECRET_KEY_SIZE= 1632 */ bool libcrux_ml_kem_ind_cca_validate_private_key_only_e2(const Eurydice_arr_ab0 *private_key); /** Validate an ML-KEM private key. This implements the Hash check in 7.3 3. Note that the size checks in 7.2 1 and 2 are covered by the `SECRET_KEY_SIZE` and `CIPHERTEXT_SIZE` in the `private_key` and `ciphertext` types. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.validate_private_key with types libcrux_ml_kem_hash_functions_portable_PortableHash[[$2size_t]] with const generics - K= 2 - SECRET_KEY_SIZE= 1632 - CIPHERTEXT_SIZE= 768 */ bool libcrux_ml_kem_ind_cca_validate_private_key_d5( const Eurydice_arr_ab0 *private_key, const Eurydice_arr_d2 *_ciphertext ); /** Packed API Generate a key pair. Depending on the `Vector` and `Hasher` used, this requires different hardware features */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.generate_keypair with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$2size_t]], libcrux_ml_kem_variant_MlKem with const generics - K= 2 - CPA_PRIVATE_KEY_SIZE= 768 - PRIVATE_KEY_SIZE= 1632 - PUBLIC_KEY_SIZE= 800 - ETA1= 3 - ETA1_RANDOMNESS_SIZE= 192 */ libcrux_ml_kem_types_MlKemKeyPair_0d libcrux_ml_kem_ind_cca_generate_keypair_b80(const Eurydice_arr_c7 *randomness); /** A monomorphic instance of libcrux_ml_kem.ind_cca.encapsulate with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$2size_t]], libcrux_ml_kem_variant_MlKem with const generics - K= 2 - CIPHERTEXT_SIZE= 768 - PUBLIC_KEY_SIZE= 800 - T_AS_NTT_ENCODED_SIZE= 768 - C1_SIZE= 640 - C2_SIZE= 128 - VECTOR_U_COMPRESSION_FACTOR= 10 - VECTOR_V_COMPRESSION_FACTOR= 4 - C1_BLOCK_SIZE= 320 - ETA1= 3 - ETA1_RANDOMNESS_SIZE= 192 - ETA2= 2 - ETA2_RANDOMNESS_SIZE= 128 */ tuple_ab libcrux_ml_kem_ind_cca_encapsulate_990( const Eurydice_arr_03 *public_key, const Eurydice_arr_ec *randomness ); /** This code verifies on some machines, runs out of memory on others */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.decapsulate with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$2size_t]], libcrux_ml_kem_variant_MlKem with const generics - K= 2 - SECRET_KEY_SIZE= 1632 - CPA_SECRET_KEY_SIZE= 768 - PUBLIC_KEY_SIZE= 800 - CIPHERTEXT_SIZE= 768 - T_AS_NTT_ENCODED_SIZE= 768 - C1_SIZE= 640 - C2_SIZE= 128 - VECTOR_U_COMPRESSION_FACTOR= 10 - VECTOR_V_COMPRESSION_FACTOR= 4 - C1_BLOCK_SIZE= 320 - ETA1= 3 - ETA1_RANDOMNESS_SIZE= 192 - ETA2= 2 - ETA2_RANDOMNESS_SIZE= 128 - IMPLICIT_REJECTION_HASH_INPUT_SIZE= 800 */ Eurydice_arr_ec libcrux_ml_kem_ind_cca_decapsulate_fd0( const Eurydice_arr_ab0 *private_key, const Eurydice_arr_d2 *ciphertext ); /** This function found in impl {libcrux_ml_kem::hash_functions::Hash for libcrux_ml_kem::hash_functions::portable::PortableHash} */ /** A monomorphic instance of libcrux_ml_kem.hash_functions.portable.shake128_init_absorb_final_4a with const generics - K= 3 */ Eurydice_arr_1b0 libcrux_ml_kem_hash_functions_portable_shake128_init_absorb_final_4a_78( const Eurydice_arr_810 *input ); /** This function found in impl {libcrux_ml_kem::hash_functions::Hash for libcrux_ml_kem::hash_functions::portable::PortableHash} */ /** A monomorphic instance of libcrux_ml_kem.hash_functions.portable.shake128_squeeze_first_three_blocks_4a with const generics - K= 3 */ Eurydice_arr_7e libcrux_ml_kem_hash_functions_portable_shake128_squeeze_first_three_blocks_4a_78( Eurydice_arr_1b0 *self ); /** This function found in impl {libcrux_ml_kem::hash_functions::Hash for libcrux_ml_kem::hash_functions::portable::PortableHash} */ /** A monomorphic instance of libcrux_ml_kem.hash_functions.portable.shake128_squeeze_next_block_4a with const generics - K= 3 */ Eurydice_arr_2c libcrux_ml_kem_hash_functions_portable_shake128_squeeze_next_block_4a_78( Eurydice_arr_1b0 *self ); /** Generate an unpacked key from a serialized key. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.unpack_public_key with types libcrux_ml_kem_hash_functions_portable_PortableHash[[$3size_t]], libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 3 - T_AS_NTT_ENCODED_SIZE= 1152 - PUBLIC_KEY_SIZE= 1184 */ void libcrux_ml_kem_ind_cca_unpacked_unpack_public_key_22( const Eurydice_arr_5f *public_key, libcrux_ml_kem_ind_cca_unpacked_MlKemPublicKeyUnpacked_51 *unpacked_public_key ); /** Get the serialized public key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.public_key_11 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 3 */ const libcrux_ml_kem_ind_cca_unpacked_MlKemPublicKeyUnpacked_51 *libcrux_ml_kem_ind_cca_unpacked_public_key_11_68( const libcrux_ml_kem_mlkem768_portable_unpacked_MlKem768KeyPairUnpacked *self ); /** This function found in impl {core::clone::Clone for libcrux_ml_kem::ind_cca::unpacked::MlKemPublicKeyUnpacked[TraitClause@0, TraitClause@2]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.clone_d7 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 3 */ libcrux_ml_kem_ind_cca_unpacked_MlKemPublicKeyUnpacked_51 libcrux_ml_kem_ind_cca_unpacked_clone_d7_68( const libcrux_ml_kem_ind_cca_unpacked_MlKemPublicKeyUnpacked_51 *self ); /** Get the serialized public key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemPublicKeyUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.serialized_mut_dd with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 3 - PUBLIC_KEY_SIZE= 1184 */ void libcrux_ml_kem_ind_cca_unpacked_serialized_mut_dd_b6( const libcrux_ml_kem_ind_cca_unpacked_MlKemPublicKeyUnpacked_51 *self, Eurydice_arr_5f *serialized ); /** Get the serialized public key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.serialized_public_key_mut_11 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 3 - PUBLIC_KEY_SIZE= 1184 */ void libcrux_ml_kem_ind_cca_unpacked_serialized_public_key_mut_11_b6( const libcrux_ml_kem_mlkem768_portable_unpacked_MlKem768KeyPairUnpacked *self, Eurydice_arr_5f *serialized ); /** Get the serialized public key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.serialized_public_key_11 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 3 - PUBLIC_KEY_SIZE= 1184 */ Eurydice_arr_5f libcrux_ml_kem_ind_cca_unpacked_serialized_public_key_11_b6( const libcrux_ml_kem_mlkem768_portable_unpacked_MlKem768KeyPairUnpacked *self ); /** Serialize the secret key. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.serialize_kem_secret_key_mut with types libcrux_ml_kem_hash_functions_portable_PortableHash[[$3size_t]] with const generics - K= 3 - SERIALIZED_KEY_LEN= 2400 */ void libcrux_ml_kem_ind_cca_serialize_kem_secret_key_mut_52( Eurydice_borrow_slice_u8 private_key, Eurydice_borrow_slice_u8 public_key, Eurydice_borrow_slice_u8 implicit_rejection_value, Eurydice_arr_7d *serialized ); /** Get the serialized private key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.serialized_private_key_mut_11 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 3 - CPA_PRIVATE_KEY_SIZE= 1152 - PRIVATE_KEY_SIZE= 2400 - PUBLIC_KEY_SIZE= 1184 */ void libcrux_ml_kem_ind_cca_unpacked_serialized_private_key_mut_11_21( const libcrux_ml_kem_mlkem768_portable_unpacked_MlKem768KeyPairUnpacked *self, Eurydice_arr_7d *serialized ); /** Get the serialized private key. */ /** This function found in impl {libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.serialized_private_key_11 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 3 - CPA_PRIVATE_KEY_SIZE= 1152 - PRIVATE_KEY_SIZE= 2400 - PUBLIC_KEY_SIZE= 1184 */ Eurydice_arr_7d libcrux_ml_kem_ind_cca_unpacked_serialized_private_key_11_21( const libcrux_ml_kem_mlkem768_portable_unpacked_MlKem768KeyPairUnpacked *self ); /** Take a serialized private key and generate an unpacked key pair from it. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.keys_from_private_key with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 3 - SECRET_KEY_SIZE= 2400 - CPA_SECRET_KEY_SIZE= 1152 - PUBLIC_KEY_SIZE= 1184 - T_AS_NTT_ENCODED_SIZE= 1152 */ void libcrux_ml_kem_ind_cca_unpacked_keys_from_private_key_01( const Eurydice_arr_7d *private_key, libcrux_ml_kem_mlkem768_portable_unpacked_MlKem768KeyPairUnpacked *key_pair ); /** This function found in impl {core::default::Default for libcrux_ml_kem::ind_cca::unpacked::MlKemPublicKeyUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.default_30 with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 3 */ libcrux_ml_kem_ind_cca_unpacked_MlKemPublicKeyUnpacked_51 libcrux_ml_kem_ind_cca_unpacked_default_30_68(void); /** This function found in impl {core::default::Default for libcrux_ml_kem::ind_cca::unpacked::MlKemKeyPairUnpacked[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.default_7b with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 3 */ libcrux_ml_kem_mlkem768_portable_unpacked_MlKem768KeyPairUnpacked libcrux_ml_kem_ind_cca_unpacked_default_7b_68(void); /** Generate Unpacked Keys */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.generate_keypair with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$3size_t]], libcrux_ml_kem_variant_MlKem with const generics - K= 3 - CPA_PRIVATE_KEY_SIZE= 1152 - PRIVATE_KEY_SIZE= 2400 - PUBLIC_KEY_SIZE= 1184 - ETA1= 2 - ETA1_RANDOMNESS_SIZE= 128 */ void libcrux_ml_kem_ind_cca_unpacked_generate_keypair_b8( Eurydice_arr_c7 randomness, libcrux_ml_kem_mlkem768_portable_unpacked_MlKem768KeyPairUnpacked *out ); /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.encapsulate with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$3size_t]] with const generics - K= 3 - CIPHERTEXT_SIZE= 1088 - PUBLIC_KEY_SIZE= 1184 - T_AS_NTT_ENCODED_SIZE= 1152 - C1_SIZE= 960 - C2_SIZE= 128 - VECTOR_U_COMPRESSION_FACTOR= 10 - VECTOR_V_COMPRESSION_FACTOR= 4 - VECTOR_U_BLOCK_LEN= 320 - ETA1= 2 - ETA1_RANDOMNESS_SIZE= 128 - ETA2= 2 - ETA2_RANDOMNESS_SIZE= 128 */ tuple_f4 libcrux_ml_kem_ind_cca_unpacked_encapsulate_a7( const libcrux_ml_kem_ind_cca_unpacked_MlKemPublicKeyUnpacked_51 *public_key, const Eurydice_arr_ec *randomness ); /** A monomorphic instance of libcrux_ml_kem.ind_cca.unpacked.decapsulate with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$3size_t]] with const generics - K= 3 - SECRET_KEY_SIZE= 2400 - CPA_SECRET_KEY_SIZE= 1152 - PUBLIC_KEY_SIZE= 1184 - CIPHERTEXT_SIZE= 1088 - T_AS_NTT_ENCODED_SIZE= 1152 - C1_SIZE= 960 - C2_SIZE= 128 - VECTOR_U_COMPRESSION_FACTOR= 10 - VECTOR_V_COMPRESSION_FACTOR= 4 - C1_BLOCK_SIZE= 320 - ETA1= 2 - ETA1_RANDOMNESS_SIZE= 128 - ETA2= 2 - ETA2_RANDOMNESS_SIZE= 128 - IMPLICIT_REJECTION_HASH_INPUT_SIZE= 1120 */ Eurydice_arr_ec libcrux_ml_kem_ind_cca_unpacked_decapsulate_0c( const libcrux_ml_kem_mlkem768_portable_unpacked_MlKem768KeyPairUnpacked *key_pair, const Eurydice_arr_2b *ciphertext ); /** Validate an ML-KEM public key. This implements the Modulus check in 7.2 2. Note that the size check in 7.2 1 is covered by the `PUBLIC_KEY_SIZE` in the `public_key` type. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.validate_public_key with types libcrux_ml_kem_vector_portable_vector_type_PortableVector with const generics - K= 3 - PUBLIC_KEY_SIZE= 1184 */ bool libcrux_ml_kem_ind_cca_validate_public_key_b6(const Eurydice_arr_5f *public_key); /** Validate an ML-KEM private key. This implements the Hash check in 7.3 3. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.validate_private_key_only with types libcrux_ml_kem_hash_functions_portable_PortableHash[[$3size_t]] with const generics - K= 3 - SECRET_KEY_SIZE= 2400 */ bool libcrux_ml_kem_ind_cca_validate_private_key_only_52(const Eurydice_arr_7d *private_key); /** Validate an ML-KEM private key. This implements the Hash check in 7.3 3. Note that the size checks in 7.2 1 and 2 are covered by the `SECRET_KEY_SIZE` and `CIPHERTEXT_SIZE` in the `private_key` and `ciphertext` types. */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.validate_private_key with types libcrux_ml_kem_hash_functions_portable_PortableHash[[$3size_t]] with const generics - K= 3 - SECRET_KEY_SIZE= 2400 - CIPHERTEXT_SIZE= 1088 */ bool libcrux_ml_kem_ind_cca_validate_private_key_ba( const Eurydice_arr_7d *private_key, const Eurydice_arr_2b *_ciphertext ); /** Packed API Generate a key pair. Depending on the `Vector` and `Hasher` used, this requires different hardware features */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.generate_keypair with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$3size_t]], libcrux_ml_kem_variant_MlKem with const generics - K= 3 - CPA_PRIVATE_KEY_SIZE= 1152 - PRIVATE_KEY_SIZE= 2400 - PUBLIC_KEY_SIZE= 1184 - ETA1= 2 - ETA1_RANDOMNESS_SIZE= 128 */ libcrux_ml_kem_mlkem768_MlKem768KeyPair libcrux_ml_kem_ind_cca_generate_keypair_b8(const Eurydice_arr_c7 *randomness); /** A monomorphic instance of libcrux_ml_kem.ind_cca.encapsulate with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$3size_t]], libcrux_ml_kem_variant_MlKem with const generics - K= 3 - CIPHERTEXT_SIZE= 1088 - PUBLIC_KEY_SIZE= 1184 - T_AS_NTT_ENCODED_SIZE= 1152 - C1_SIZE= 960 - C2_SIZE= 128 - VECTOR_U_COMPRESSION_FACTOR= 10 - VECTOR_V_COMPRESSION_FACTOR= 4 - C1_BLOCK_SIZE= 320 - ETA1= 2 - ETA1_RANDOMNESS_SIZE= 128 - ETA2= 2 - ETA2_RANDOMNESS_SIZE= 128 */ tuple_f4 libcrux_ml_kem_ind_cca_encapsulate_99( const Eurydice_arr_5f *public_key, const Eurydice_arr_ec *randomness ); /** This code verifies on some machines, runs out of memory on others */ /** A monomorphic instance of libcrux_ml_kem.ind_cca.decapsulate with types libcrux_ml_kem_vector_portable_vector_type_PortableVector, libcrux_ml_kem_hash_functions_portable_PortableHash[[$3size_t]], libcrux_ml_kem_variant_MlKem with const generics - K= 3 - SECRET_KEY_SIZE= 2400 - CPA_SECRET_KEY_SIZE= 1152 - PUBLIC_KEY_SIZE= 1184 - CIPHERTEXT_SIZE= 1088 - T_AS_NTT_ENCODED_SIZE= 1152 - C1_SIZE= 960 - C2_SIZE= 128 - VECTOR_U_COMPRESSION_FACTOR= 10 - VECTOR_V_COMPRESSION_FACTOR= 4 - C1_BLOCK_SIZE= 320 - ETA1= 2 - ETA1_RANDOMNESS_SIZE= 128 - ETA2= 2 - ETA2_RANDOMNESS_SIZE= 128 - IMPLICIT_REJECTION_HASH_INPUT_SIZE= 1120 */ Eurydice_arr_ec libcrux_ml_kem_ind_cca_decapsulate_fd( const Eurydice_arr_7d *private_key, const Eurydice_arr_2b *ciphertext ); #if defined(__cplusplus) } #endif #define internal_libcrux_mlkem_portable_H_DEFINED #endif /* internal_libcrux_mlkem_portable_H */