/* * 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 libcrux_mldsa_core_H #define libcrux_mldsa_core_H #include "eurydice_glue.h" #if defined(__cplusplus) extern "C" { #endif #include "combined_core.h" #define libcrux_ml_dsa_constants_Eta_Two 2 #define libcrux_ml_dsa_constants_Eta_Four 4 typedef uint8_t libcrux_ml_dsa_constants_Eta; #define LIBCRUX_ML_DSA_SIMD_TRAITS_COEFFICIENTS_IN_SIMD_UNIT ((size_t)8U) #define LIBCRUX_ML_DSA_SIMD_TRAITS_SIMD_UNITS_IN_RING_ELEMENT ((size_t)32U) #define LIBCRUX_ML_DSA_CONSTANTS_BITS_IN_LOWER_PART_OF_T ((size_t)13U) #define LIBCRUX_ML_DSA_CONSTANTS_FIELD_MODULUS_MINUS_ONE_BIT_LENGTH ((size_t)23U) #define LIBCRUX_ML_DSA_CONSTANTS_BITS_IN_UPPER_PART_OF_T (LIBCRUX_ML_DSA_CONSTANTS_FIELD_MODULUS_MINUS_ONE_BIT_LENGTH - LIBCRUX_ML_DSA_CONSTANTS_BITS_IN_LOWER_PART_OF_T) #define LIBCRUX_ML_DSA_CONSTANTS_BYTES_FOR_VERIFICATION_KEY_HASH ((size_t)64U) #define LIBCRUX_ML_DSA_CONSTANTS_COEFFICIENTS_IN_RING_ELEMENT ((size_t)256U) #define LIBCRUX_ML_DSA_CONSTANTS_CONTEXT_MAX_LEN ((size_t)255U) #define LIBCRUX_ML_DSA_CONSTANTS_FIELD_MODULUS (8380417) #define LIBCRUX_ML_DSA_CONSTANTS_GAMMA2_V261_888 (261888) #define LIBCRUX_ML_DSA_CONSTANTS_GAMMA2_V95_232 (95232) typedef int32_t libcrux_ml_dsa_constants_Gamma2; #define LIBCRUX_ML_DSA_CONSTANTS_KEY_GENERATION_RANDOMNESS_SIZE ((size_t)32U) #define LIBCRUX_ML_DSA_CONSTANTS_MASK_SEED_SIZE ((size_t)64U) #define LIBCRUX_ML_DSA_CONSTANTS_MESSAGE_REPRESENTATIVE_SIZE ((size_t)64U) #define LIBCRUX_ML_DSA_CONSTANTS_REJECTION_SAMPLE_BOUND_SIGN ((size_t)814U) #define LIBCRUX_ML_DSA_CONSTANTS_RING_ELEMENT_OF_T0S_SIZE (LIBCRUX_ML_DSA_CONSTANTS_BITS_IN_LOWER_PART_OF_T * LIBCRUX_ML_DSA_CONSTANTS_COEFFICIENTS_IN_RING_ELEMENT / (size_t)8U) #define LIBCRUX_ML_DSA_CONSTANTS_RING_ELEMENT_OF_T1S_SIZE (LIBCRUX_ML_DSA_CONSTANTS_BITS_IN_UPPER_PART_OF_T * LIBCRUX_ML_DSA_CONSTANTS_COEFFICIENTS_IN_RING_ELEMENT / (size_t)8U) #define LIBCRUX_ML_DSA_CONSTANTS_SEED_FOR_A_SIZE ((size_t)32U) #define LIBCRUX_ML_DSA_CONSTANTS_SEED_FOR_ERROR_VECTORS_SIZE ((size_t)64U) #define LIBCRUX_ML_DSA_CONSTANTS_SEED_FOR_SIGNING_SIZE ((size_t)32U) #define LIBCRUX_ML_DSA_CONSTANTS_SIGNING_RANDOMNESS_SIZE ((size_t)32U) int32_t libcrux_ml_dsa_constants_beta( size_t ones_in_verifier_challenge, libcrux_ml_dsa_constants_Eta eta ); size_t libcrux_ml_dsa_constants_commitment_ring_element_size(size_t bits_per_commitment_coefficient); size_t libcrux_ml_dsa_constants_commitment_vector_size( size_t bits_per_commitment_coefficient, size_t rows_in_a ); size_t libcrux_ml_dsa_constants_error_ring_element_size(size_t bits_per_error_coefficient); size_t libcrux_ml_dsa_constants_gamma1_ring_element_size(size_t bits_per_gamma1_coefficient); size_t libcrux_ml_dsa_constants_signature_size( size_t rows_in_a, size_t columns_in_a, size_t max_ones_in_hint, size_t commitment_hash_size, size_t bits_per_gamma1_coefficient ); size_t libcrux_ml_dsa_constants_signing_key_size( size_t rows_in_a, size_t columns_in_a, size_t error_ring_element_size ); size_t libcrux_ml_dsa_constants_verification_key_size(size_t rows_in_a); #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_BITS_PER_COMMITMENT_COEFFICIENT ((size_t)6U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_BITS_PER_ERROR_COEFFICIENT ((size_t)3U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_BITS_PER_GAMMA1_COEFFICIENT ((size_t)18U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_COLUMNS_IN_A ((size_t)4U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_COMMITMENT_HASH_SIZE ((size_t)32U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_ETA (libcrux_ml_dsa_constants_Eta_Two) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_GAMMA1_EXPONENT ((size_t)17U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_GAMMA2 ((LIBCRUX_ML_DSA_CONSTANTS_FIELD_MODULUS - 1) / 88) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_MAX_ONES_IN_HINT ((size_t)80U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_ONES_IN_VERIFIER_CHALLENGE ((size_t)39U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_ROWS_IN_A ((size_t)4U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_BITS_PER_COMMITMENT_COEFFICIENT ((size_t)4U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_BITS_PER_ERROR_COEFFICIENT ((size_t)4U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_BITS_PER_GAMMA1_COEFFICIENT ((size_t)20U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_COLUMNS_IN_A ((size_t)5U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_COMMITMENT_HASH_SIZE ((size_t)48U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_ETA (libcrux_ml_dsa_constants_Eta_Four) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_GAMMA1_EXPONENT ((size_t)19U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_GAMMA2 ((LIBCRUX_ML_DSA_CONSTANTS_FIELD_MODULUS - 1) / 32) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_MAX_ONES_IN_HINT ((size_t)55U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_ONES_IN_VERIFIER_CHALLENGE ((size_t)49U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_ROWS_IN_A ((size_t)6U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_BITS_PER_COMMITMENT_COEFFICIENT ((size_t)4U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_BITS_PER_ERROR_COEFFICIENT ((size_t)3U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_BITS_PER_GAMMA1_COEFFICIENT ((size_t)20U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_COLUMNS_IN_A ((size_t)7U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_COMMITMENT_HASH_SIZE ((size_t)64U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_ETA (libcrux_ml_dsa_constants_Eta_Two) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_GAMMA1_EXPONENT ((size_t)19U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_GAMMA2 ((LIBCRUX_ML_DSA_CONSTANTS_FIELD_MODULUS - 1) / 32) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_MAX_ONES_IN_HINT ((size_t)75U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_ONES_IN_VERIFIER_CHALLENGE ((size_t)60U) #define LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_ROWS_IN_A ((size_t)8U) /** This function found in impl {core::clone::Clone for libcrux_ml_dsa::constants::Eta} */ libcrux_ml_dsa_constants_Eta libcrux_ml_dsa_constants_clone_54(const libcrux_ml_dsa_constants_Eta *self); size_t libcrux_ml_dsa_encoding_error_chunk_size(libcrux_ml_dsa_constants_Eta eta); #define libcrux_ml_dsa_types_VerificationError_MalformedHintError 0 #define libcrux_ml_dsa_types_VerificationError_SignerResponseExceedsBoundError 1 #define libcrux_ml_dsa_types_VerificationError_CommitmentHashesDontMatchError 2 #define libcrux_ml_dsa_types_VerificationError_VerificationContextTooLongError 3 typedef uint8_t libcrux_ml_dsa_types_VerificationError; void libcrux_ml_dsa_encoding_signature_set_hint( Eurydice_dst_ref_mut_20 out_hint, size_t i, size_t j ); #define LIBCRUX_ML_DSA_ENCODING_T0_OUTPUT_BYTES_PER_SIMD_UNIT ((size_t)13U) #define LIBCRUX_ML_DSA_ENCODING_T1_DESERIALIZE_WINDOW ((size_t)10U) #define LIBCRUX_ML_DSA_ENCODING_T1_SERIALIZE_OUTPUT_BYTES_PER_SIMD_UNIT ((size_t)10U) #define LIBCRUX_ML_DSA_HASH_FUNCTIONS_SHAKE128_BLOCK_SIZE ((size_t)168U) #define LIBCRUX_ML_DSA_HASH_FUNCTIONS_SHAKE128_FIVE_BLOCKS_SIZE (LIBCRUX_ML_DSA_HASH_FUNCTIONS_SHAKE128_BLOCK_SIZE * (size_t)5U) #define LIBCRUX_ML_DSA_HASH_FUNCTIONS_SHAKE256_BLOCK_SIZE ((size_t)136U) Eurydice_arr_91 libcrux_ml_dsa_sample_add_error_domain_separator( Eurydice_borrow_slice_u8 slice, uint16_t domain_separator ); #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_44_ERROR_RING_ELEMENT_SIZE (libcrux_ml_dsa_constants_error_ring_element_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_BITS_PER_ERROR_COEFFICIENT)) #define LIBCRUX_ML_DSA_SIMD_TRAITS_FIELD_MODULUS (8380417) #define LIBCRUX_ML_DSA_SIMD_TRAITS_INVERSE_OF_MODULUS_MOD_MONTGOMERY_R (58728449ULL) uint8_t_x2 libcrux_ml_dsa_sample_sample_up_to_four_ring_elements_flat_xy(size_t index, size_t width); uint16_t libcrux_ml_dsa_sample_generate_domain_separator(uint8_t_x2 _); Eurydice_arr_31 libcrux_ml_dsa_sample_add_domain_separator(Eurydice_borrow_slice_u8 slice, uint8_t_x2 indices); #define libcrux_ml_dsa_types_SigningError_RejectionSamplingError 0 #define libcrux_ml_dsa_types_SigningError_ContextTooLongError 1 typedef uint8_t libcrux_ml_dsa_types_SigningError; typedef struct libcrux_ml_dsa_pre_hash_DomainSeparationContext_s { Eurydice_borrow_slice_u8 context; core_option_Option_57 pre_hash_oid; } libcrux_ml_dsa_pre_hash_DomainSeparationContext; #define libcrux_ml_dsa_pre_hash_DomainSeparationError_ContextTooLongError 0 typedef uint8_t libcrux_ml_dsa_pre_hash_DomainSeparationError; /** A monomorphic instance of core.result.Result with types libcrux_ml_dsa_pre_hash_DomainSeparationContext, libcrux_ml_dsa_pre_hash_DomainSeparationError */ typedef struct core_result_Result_a8_s { core_result_Result_07_tags tag; union { libcrux_ml_dsa_pre_hash_DomainSeparationContext case_Ok; libcrux_ml_dsa_pre_hash_DomainSeparationError case_Err; } val; } core_result_Result_a8; /** `context` must be at most 255 bytes long. */ /** This function found in impl {libcrux_ml_dsa::pre_hash::DomainSeparationContext<'a>} */ core_result_Result_a8 libcrux_ml_dsa_pre_hash_new_88( Eurydice_borrow_slice_u8 context, core_option_Option_57 pre_hash_oid ); /** Returns the pre-hash OID, if any. */ /** This function found in impl {libcrux_ml_dsa::pre_hash::DomainSeparationContext<'a>} */ const core_option_Option_57 *libcrux_ml_dsa_pre_hash_pre_hash_oid_88( const libcrux_ml_dsa_pre_hash_DomainSeparationContext *self ); /** Returns the context, guaranteed to be at most 255 bytes long. */ /** This function found in impl {libcrux_ml_dsa::pre_hash::DomainSeparationContext<'a>} */ Eurydice_borrow_slice_u8 libcrux_ml_dsa_pre_hash_context_88(const libcrux_ml_dsa_pre_hash_DomainSeparationContext *self); #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_44_COMMITMENT_RING_ELEMENT_SIZE (libcrux_ml_dsa_constants_commitment_ring_element_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_BITS_PER_COMMITMENT_COEFFICIENT)) bool libcrux_ml_dsa_sample_inside_out_shuffle( Eurydice_borrow_slice_u8 randomness, size_t *out_index, uint64_t *signs, Eurydice_arr_6c *result ); #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_44_BETA (libcrux_ml_dsa_constants_beta(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_ONES_IN_VERIFIER_CHALLENGE, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_ETA)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_44_GAMMA1_RING_ELEMENT_SIZE (libcrux_ml_dsa_constants_gamma1_ring_element_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_BITS_PER_GAMMA1_COEFFICIENT)) #define LIBCRUX_ML_DSA_PRE_HASH_SHAKE128_OID ((KRML_CLITERAL(Eurydice_arr_c9){ .data = { 6U, 9U, 96U, 134U, 72U, 1U, 101U, 3U, 4U, 2U, 11U } })) /** This function found in impl {libcrux_ml_dsa::pre_hash::PreHash for libcrux_ml_dsa::pre_hash::SHAKE128_PH} */ Eurydice_arr_c9 libcrux_ml_dsa_pre_hash_oid_30(void); #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_44_VERIFICATION_KEY_SIZE (libcrux_ml_dsa_constants_verification_key_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_ROWS_IN_A)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_44_SIGNATURE_SIZE (libcrux_ml_dsa_constants_signature_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_ROWS_IN_A, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_COLUMNS_IN_A, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_MAX_ONES_IN_HINT, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_COMMITMENT_HASH_SIZE, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_BITS_PER_GAMMA1_COEFFICIENT)) typedef Eurydice_arr_4d libcrux_ml_dsa_simd_portable_vector_type_Coefficients; Eurydice_arr_4d libcrux_ml_dsa_simd_portable_vector_type_zero(void); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ Eurydice_arr_4d libcrux_ml_dsa_simd_portable_zero_65(void); void libcrux_ml_dsa_simd_portable_vector_type_from_coefficient_array( Eurydice_dst_ref_shared_83 array, Eurydice_arr_4d *out ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_from_coefficient_array_65( Eurydice_dst_ref_shared_83 array, Eurydice_arr_4d *out ); void libcrux_ml_dsa_simd_portable_vector_type_to_coefficient_array( const Eurydice_arr_4d *value, Eurydice_dst_ref_mut_83 out ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_to_coefficient_array_65( const Eurydice_arr_4d *value, Eurydice_dst_ref_mut_83 out ); void libcrux_ml_dsa_simd_portable_arithmetic_add(Eurydice_arr_4d *lhs, const Eurydice_arr_4d *rhs); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_add_65(Eurydice_arr_4d *lhs, const Eurydice_arr_4d *rhs); void libcrux_ml_dsa_simd_portable_arithmetic_subtract( Eurydice_arr_4d *lhs, const Eurydice_arr_4d *rhs ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_subtract_65(Eurydice_arr_4d *lhs, const Eurydice_arr_4d *rhs); bool libcrux_ml_dsa_simd_portable_arithmetic_infinity_norm_exceeds( const Eurydice_arr_4d *simd_unit, int32_t bound ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ bool libcrux_ml_dsa_simd_portable_infinity_norm_exceeds_65( const Eurydice_arr_4d *simd_unit, int32_t bound ); int32_t_x2 libcrux_ml_dsa_simd_portable_arithmetic_decompose_element(int32_t gamma2, int32_t r); void libcrux_ml_dsa_simd_portable_arithmetic_decompose( int32_t gamma2, const Eurydice_arr_4d *simd_unit, Eurydice_arr_4d *low, Eurydice_arr_4d *high ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_decompose_65( int32_t gamma2, const Eurydice_arr_4d *simd_unit, Eurydice_arr_4d *low, Eurydice_arr_4d *high ); int32_t libcrux_ml_dsa_simd_portable_arithmetic_compute_one_hint( int32_t low, int32_t high, int32_t gamma2 ); size_t libcrux_ml_dsa_simd_portable_arithmetic_compute_hint( const Eurydice_arr_4d *low, const Eurydice_arr_4d *high, int32_t gamma2, Eurydice_arr_4d *hint ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ size_t libcrux_ml_dsa_simd_portable_compute_hint_65( const Eurydice_arr_4d *low, const Eurydice_arr_4d *high, int32_t gamma2, Eurydice_arr_4d *hint ); int32_t libcrux_ml_dsa_simd_portable_arithmetic_use_one_hint(int32_t gamma2, int32_t r, int32_t hint); void libcrux_ml_dsa_simd_portable_arithmetic_use_hint( int32_t gamma2, const Eurydice_arr_4d *simd_unit, Eurydice_arr_4d *hint ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_use_hint_65( int32_t gamma2, const Eurydice_arr_4d *simd_unit, Eurydice_arr_4d *hint ); uint64_t libcrux_ml_dsa_simd_portable_arithmetic_get_n_least_significant_bits(uint8_t n, uint64_t value); #define LIBCRUX_ML_DSA_SIMD_PORTABLE_ARITHMETIC_MONTGOMERY_SHIFT (32U) int32_t libcrux_ml_dsa_simd_portable_arithmetic_montgomery_reduce_element(int64_t value); void libcrux_ml_dsa_simd_portable_arithmetic_montgomery_multiply( Eurydice_arr_4d *lhs, const Eurydice_arr_4d *rhs ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_montgomery_multiply_65( Eurydice_arr_4d *lhs, const Eurydice_arr_4d *rhs ); int32_t libcrux_ml_dsa_simd_portable_arithmetic_barrett_reduce_element(int32_t fe); void libcrux_ml_dsa_simd_portable_arithmetic_barrett_reduce_simd_unit(Eurydice_arr_4d *simd_unit); int32_t_x2 libcrux_ml_dsa_simd_portable_arithmetic_power2round_element(int32_t t); void libcrux_ml_dsa_simd_portable_arithmetic_power2round(Eurydice_arr_4d *t0, Eurydice_arr_4d *t1); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_power2round_65(Eurydice_arr_4d *t0, Eurydice_arr_4d *t1); size_t libcrux_ml_dsa_simd_portable_sample_rejection_sample_less_than_field_modulus( Eurydice_borrow_slice_u8 randomness, Eurydice_dst_ref_mut_83 out ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ size_t libcrux_ml_dsa_simd_portable_rejection_sample_less_than_field_modulus_65( Eurydice_borrow_slice_u8 randomness, Eurydice_dst_ref_mut_83 out ); size_t libcrux_ml_dsa_simd_portable_sample_rejection_sample_less_than_eta_equals_2( Eurydice_borrow_slice_u8 randomness, Eurydice_dst_ref_mut_83 out ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ size_t libcrux_ml_dsa_simd_portable_rejection_sample_less_than_eta_equals_2_65( Eurydice_borrow_slice_u8 randomness, Eurydice_dst_ref_mut_83 out ); size_t libcrux_ml_dsa_simd_portable_sample_rejection_sample_less_than_eta_equals_4( Eurydice_borrow_slice_u8 randomness, Eurydice_dst_ref_mut_83 out ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ size_t libcrux_ml_dsa_simd_portable_rejection_sample_less_than_eta_equals_4_65( Eurydice_borrow_slice_u8 randomness, Eurydice_dst_ref_mut_83 out ); #define LIBCRUX_ML_DSA_SIMD_PORTABLE_ENCODING_GAMMA1_SERIALIZE_WHEN_GAMMA1_IS_2_POW_19_GAMMA1 ((int32_t)((uint32_t)1 << 19U)) void libcrux_ml_dsa_simd_portable_encoding_gamma1_serialize_when_gamma1_is_2_pow_19( const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 serialized ); #define LIBCRUX_ML_DSA_SIMD_PORTABLE_ENCODING_GAMMA1_SERIALIZE_WHEN_GAMMA1_IS_2_POW_17_GAMMA1 ((int32_t)((uint32_t)1 << 17U)) void libcrux_ml_dsa_simd_portable_encoding_gamma1_serialize_when_gamma1_is_2_pow_17( const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 serialized ); void libcrux_ml_dsa_simd_portable_encoding_gamma1_serialize( const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 serialized, size_t gamma1_exponent ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_gamma1_serialize_65( const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 serialized, size_t gamma1_exponent ); #define LIBCRUX_ML_DSA_SIMD_PORTABLE_ENCODING_GAMMA1_DESERIALIZE_WHEN_GAMMA1_IS_2_POW_19_GAMMA1 ((int32_t)((uint32_t)1 << 19U)) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_ENCODING_GAMMA1_DESERIALIZE_WHEN_GAMMA1_IS_2_POW_19_GAMMA1_TIMES_2_BITMASK ((int32_t)((uint32_t)LIBCRUX_ML_DSA_SIMD_PORTABLE_ENCODING_GAMMA1_DESERIALIZE_WHEN_GAMMA1_IS_2_POW_19_GAMMA1 << 1U) - 1) void libcrux_ml_dsa_simd_portable_encoding_gamma1_deserialize_when_gamma1_is_2_pow_19( Eurydice_borrow_slice_u8 serialized, Eurydice_arr_4d *simd_unit ); #define LIBCRUX_ML_DSA_SIMD_PORTABLE_ENCODING_GAMMA1_DESERIALIZE_WHEN_GAMMA1_IS_2_POW_17_GAMMA1 ((int32_t)((uint32_t)1 << 17U)) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_ENCODING_GAMMA1_DESERIALIZE_WHEN_GAMMA1_IS_2_POW_17_GAMMA1_TIMES_2_BITMASK ((int32_t)((uint32_t)LIBCRUX_ML_DSA_SIMD_PORTABLE_ENCODING_GAMMA1_DESERIALIZE_WHEN_GAMMA1_IS_2_POW_17_GAMMA1 << 1U) - 1) void libcrux_ml_dsa_simd_portable_encoding_gamma1_deserialize_when_gamma1_is_2_pow_17( Eurydice_borrow_slice_u8 serialized, Eurydice_arr_4d *simd_unit ); void libcrux_ml_dsa_simd_portable_encoding_gamma1_deserialize( Eurydice_borrow_slice_u8 serialized, Eurydice_arr_4d *out, size_t gamma1_exponent ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_gamma1_deserialize_65( Eurydice_borrow_slice_u8 serialized, Eurydice_arr_4d *out, size_t gamma1_exponent ); void libcrux_ml_dsa_simd_portable_encoding_commitment_serialize_4( const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 serialized ); void libcrux_ml_dsa_simd_portable_encoding_commitment_serialize_6( const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 serialized ); void libcrux_ml_dsa_simd_portable_encoding_commitment_serialize( const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 serialized ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_commitment_serialize_65( const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 serialized ); #define LIBCRUX_ML_DSA_SIMD_PORTABLE_ENCODING_ERROR_SERIALIZE_WHEN_ETA_IS_4_ETA (4) void libcrux_ml_dsa_simd_portable_encoding_error_serialize_when_eta_is_4( const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 serialized ); #define LIBCRUX_ML_DSA_SIMD_PORTABLE_ENCODING_ERROR_SERIALIZE_WHEN_ETA_IS_2_ETA (2) void libcrux_ml_dsa_simd_portable_encoding_error_serialize_when_eta_is_2( const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 serialized ); void libcrux_ml_dsa_simd_portable_encoding_error_serialize( libcrux_ml_dsa_constants_Eta eta, const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 serialized ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_error_serialize_65( libcrux_ml_dsa_constants_Eta eta, const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 serialized ); #define LIBCRUX_ML_DSA_SIMD_PORTABLE_ENCODING_ERROR_DESERIALIZE_WHEN_ETA_IS_4_ETA (4) void libcrux_ml_dsa_simd_portable_encoding_error_deserialize_when_eta_is_4( Eurydice_borrow_slice_u8 serialized, Eurydice_arr_4d *simd_units ); #define LIBCRUX_ML_DSA_SIMD_PORTABLE_ENCODING_ERROR_DESERIALIZE_WHEN_ETA_IS_2_ETA (2) void libcrux_ml_dsa_simd_portable_encoding_error_deserialize_when_eta_is_2( Eurydice_borrow_slice_u8 serialized, Eurydice_arr_4d *simd_unit ); void libcrux_ml_dsa_simd_portable_encoding_error_deserialize( libcrux_ml_dsa_constants_Eta eta, Eurydice_borrow_slice_u8 serialized, Eurydice_arr_4d *out ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_error_deserialize_65( libcrux_ml_dsa_constants_Eta eta, Eurydice_borrow_slice_u8 serialized, Eurydice_arr_4d *out ); int32_t libcrux_ml_dsa_simd_portable_encoding_t0_change_t0_interval(int32_t t0); void libcrux_ml_dsa_simd_portable_encoding_t0_serialize( const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 serialized ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_t0_serialize_65( const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 out ); #define LIBCRUX_ML_DSA_SIMD_PORTABLE_ENCODING_T0_DESERIALIZE_BITS_IN_LOWER_PART_OF_T_MASK ((int32_t)((uint32_t)1 << (uint32_t)(int32_t)LIBCRUX_ML_DSA_CONSTANTS_BITS_IN_LOWER_PART_OF_T) - 1) void libcrux_ml_dsa_simd_portable_encoding_t0_deserialize( Eurydice_borrow_slice_u8 serialized, Eurydice_arr_4d *simd_unit ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_t0_deserialize_65( Eurydice_borrow_slice_u8 serialized, Eurydice_arr_4d *out ); void libcrux_ml_dsa_simd_portable_encoding_t1_serialize( const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 serialized ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_t1_serialize_65( const Eurydice_arr_4d *simd_unit, Eurydice_mut_borrow_slice_u8 out ); void libcrux_ml_dsa_simd_portable_encoding_t1_deserialize( Eurydice_borrow_slice_u8 serialized, Eurydice_arr_4d *simd_unit ); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_t1_deserialize_65( Eurydice_borrow_slice_u8 serialized, Eurydice_arr_4d *out ); void libcrux_ml_dsa_simd_portable_arithmetic_montgomery_multiply_by_constant( Eurydice_arr_4d *simd_unit, int32_t c ); /** A monomorphic instance of Eurydice.arr with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics - $32size_t */ typedef struct Eurydice_arr_a3_s { Eurydice_arr_4d data[32U]; } Eurydice_arr_a3; void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_round( Eurydice_arr_a3 *re, size_t index, size_t step_by, int32_t zeta ); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 0 - STEP_BY= 16 - ZETA= 25847 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_30(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_ntt_ntt_at_layer_7(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 0 - STEP_BY= 8 - ZETA= -2608894 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_300(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 16 - STEP_BY= 8 - ZETA= -518909 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_42(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_ntt_ntt_at_layer_6(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 0 - STEP_BY= 4 - ZETA= 237124 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_301(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 8 - STEP_BY= 4 - ZETA= -777960 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_82(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 16 - STEP_BY= 4 - ZETA= -876248 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_420(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 24 - STEP_BY= 4 - ZETA= 466468 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_fe(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_ntt_ntt_at_layer_5(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 0 - STEP_BY= 2 - ZETA= 1826347 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_302(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 4 - STEP_BY= 2 - ZETA= 2353451 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_43(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 8 - STEP_BY= 2 - ZETA= -359251 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_820(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 12 - STEP_BY= 2 - ZETA= -2091905 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_ea(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 16 - STEP_BY= 2 - ZETA= 3119733 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_421(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 20 - STEP_BY= 2 - ZETA= -2884855 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_61(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 24 - STEP_BY= 2 - ZETA= 3111497 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_fe0(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 28 - STEP_BY= 2 - ZETA= 2680103 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_38(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_ntt_ntt_at_layer_4(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 0 - STEP_BY= 1 - ZETA= 2725464 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_303(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 2 - STEP_BY= 1 - ZETA= 1024112 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_25(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 4 - STEP_BY= 1 - ZETA= -1079900 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_430(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 6 - STEP_BY= 1 - ZETA= 3585928 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_f4(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 8 - STEP_BY= 1 - ZETA= -549488 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_821(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 10 - STEP_BY= 1 - ZETA= -1119584 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_1d(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 12 - STEP_BY= 1 - ZETA= 2619752 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_ea0(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 14 - STEP_BY= 1 - ZETA= -2108549 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_d8(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 16 - STEP_BY= 1 - ZETA= -2118186 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_422(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 18 - STEP_BY= 1 - ZETA= -3859737 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_60(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 20 - STEP_BY= 1 - ZETA= -1399561 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_610(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 22 - STEP_BY= 1 - ZETA= -3277672 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_29(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 24 - STEP_BY= 1 - ZETA= 1757237 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_fe1(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 26 - STEP_BY= 1 - ZETA= -19422 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_9d(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 28 - STEP_BY= 1 - ZETA= 4010497 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_380(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.ntt.outer_3_plus with const generics - OFFSET= 30 - STEP_BY= 1 - ZETA= 280005 */ void libcrux_ml_dsa_simd_portable_ntt_outer_3_plus_5f(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_ntt_ntt_at_layer_3(Eurydice_arr_a3 *re); int32_t libcrux_ml_dsa_simd_portable_arithmetic_montgomery_multiply_fe_by_fer(int32_t fe, int32_t fer); void libcrux_ml_dsa_simd_portable_ntt_simd_unit_ntt_step( Eurydice_arr_4d *simd_unit, int32_t zeta, size_t index, size_t step ); void libcrux_ml_dsa_simd_portable_ntt_simd_unit_ntt_at_layer_2( Eurydice_arr_4d *simd_unit, int32_t zeta ); void libcrux_ml_dsa_simd_portable_ntt_ntt_at_layer_2_round( Eurydice_arr_a3 *re, size_t index, int32_t zeta ); void libcrux_ml_dsa_simd_portable_ntt_ntt_at_layer_2(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_ntt_simd_unit_ntt_at_layer_1( Eurydice_arr_4d *simd_unit, int32_t zeta1, int32_t zeta2 ); void libcrux_ml_dsa_simd_portable_ntt_ntt_at_layer_1_round( Eurydice_arr_a3 *re, size_t index, int32_t zeta_0, int32_t zeta_1 ); void libcrux_ml_dsa_simd_portable_ntt_ntt_at_layer_1(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_ntt_simd_unit_ntt_at_layer_0( Eurydice_arr_4d *simd_unit, int32_t zeta0, int32_t zeta1, int32_t zeta2, int32_t zeta3 ); void libcrux_ml_dsa_simd_portable_ntt_ntt_at_layer_0_round( Eurydice_arr_a3 *re, size_t index, int32_t zeta_0, int32_t zeta_1, int32_t zeta_2, int32_t zeta_3 ); void libcrux_ml_dsa_simd_portable_ntt_ntt_at_layer_0(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_ntt_ntt(Eurydice_arr_a3 *re); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_ntt_65(Eurydice_arr_a3 *simd_units); void libcrux_ml_dsa_simd_portable_invntt_simd_unit_inv_ntt_step( Eurydice_arr_4d *simd_unit, int32_t zeta, size_t index, size_t step ); void libcrux_ml_dsa_simd_portable_invntt_simd_unit_invert_ntt_at_layer_0( Eurydice_arr_4d *simd_unit, int32_t zeta0, int32_t zeta1, int32_t zeta2, int32_t zeta3 ); void libcrux_ml_dsa_simd_portable_invntt_invert_ntt_at_layer_0_round( Eurydice_arr_a3 *re, size_t index, int32_t zeta0, int32_t zeta1, int32_t zeta2, int32_t zeta3 ); void libcrux_ml_dsa_simd_portable_invntt_invert_ntt_at_layer_0(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_invntt_simd_unit_invert_ntt_at_layer_1( Eurydice_arr_4d *simd_unit, int32_t zeta0, int32_t zeta1 ); void libcrux_ml_dsa_simd_portable_invntt_invert_ntt_at_layer_1_round( Eurydice_arr_a3 *re, size_t index, int32_t zeta_00, int32_t zeta_01 ); void libcrux_ml_dsa_simd_portable_invntt_invert_ntt_at_layer_1(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_invntt_simd_unit_invert_ntt_at_layer_2( Eurydice_arr_4d *simd_unit, int32_t zeta ); void libcrux_ml_dsa_simd_portable_invntt_invert_ntt_at_layer_2_round( Eurydice_arr_a3 *re, size_t index, int32_t zeta1 ); void libcrux_ml_dsa_simd_portable_invntt_invert_ntt_at_layer_2(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 0 - STEP_BY= 1 - ZETA= 280005 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_30(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 2 - STEP_BY= 1 - ZETA= 4010497 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_25(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 4 - STEP_BY= 1 - ZETA= -19422 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_43(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 6 - STEP_BY= 1 - ZETA= 1757237 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_f4(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 8 - STEP_BY= 1 - ZETA= -3277672 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_82(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 10 - STEP_BY= 1 - ZETA= -1399561 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_1d(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 12 - STEP_BY= 1 - ZETA= -3859737 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_ea(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 14 - STEP_BY= 1 - ZETA= -2118186 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_d8(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 16 - STEP_BY= 1 - ZETA= -2108549 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_42(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 18 - STEP_BY= 1 - ZETA= 2619752 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_60(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 20 - STEP_BY= 1 - ZETA= -1119584 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_61(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 22 - STEP_BY= 1 - ZETA= -549488 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_29(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 24 - STEP_BY= 1 - ZETA= 3585928 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_fe(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 26 - STEP_BY= 1 - ZETA= -1079900 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_9d(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 28 - STEP_BY= 1 - ZETA= 1024112 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_38(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 30 - STEP_BY= 1 - ZETA= 2725464 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_5f(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_invntt_invert_ntt_at_layer_3(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 0 - STEP_BY= 2 - ZETA= 2680103 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_300(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 4 - STEP_BY= 2 - ZETA= 3111497 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_430(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 8 - STEP_BY= 2 - ZETA= -2884855 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_820(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 12 - STEP_BY= 2 - ZETA= 3119733 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_ea0(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 16 - STEP_BY= 2 - ZETA= -2091905 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_420(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 20 - STEP_BY= 2 - ZETA= -359251 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_610(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 24 - STEP_BY= 2 - ZETA= 2353451 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_fe0(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 28 - STEP_BY= 2 - ZETA= 1826347 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_380(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_invntt_invert_ntt_at_layer_4(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 0 - STEP_BY= 4 - ZETA= 466468 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_301(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 8 - STEP_BY= 4 - ZETA= -876248 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_821(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 16 - STEP_BY= 4 - ZETA= -777960 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_421(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 24 - STEP_BY= 4 - ZETA= 237124 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_fe1(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_invntt_invert_ntt_at_layer_5(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 0 - STEP_BY= 8 - ZETA= -518909 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_302(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 16 - STEP_BY= 8 - ZETA= -2608894 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_422(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_invntt_invert_ntt_at_layer_6(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.invntt.outer_3_plus with const generics - OFFSET= 0 - STEP_BY= 16 - ZETA= 25847 */ void libcrux_ml_dsa_simd_portable_invntt_outer_3_plus_303(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_invntt_invert_ntt_at_layer_7(Eurydice_arr_a3 *re); void libcrux_ml_dsa_simd_portable_invntt_invert_ntt_montgomery(Eurydice_arr_a3 *re); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_invert_ntt_montgomery_65(Eurydice_arr_a3 *simd_units); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ void libcrux_ml_dsa_simd_portable_barrett_reduce_simd_unit_65(Eurydice_arr_4d *simd_unit); #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_65_ERROR_RING_ELEMENT_SIZE (libcrux_ml_dsa_constants_error_ring_element_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_BITS_PER_ERROR_COEFFICIENT)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_65_COMMITMENT_RING_ELEMENT_SIZE (libcrux_ml_dsa_constants_commitment_ring_element_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_BITS_PER_COMMITMENT_COEFFICIENT)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_65_BETA (libcrux_ml_dsa_constants_beta(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_ONES_IN_VERIFIER_CHALLENGE, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_ETA)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_65_GAMMA1_RING_ELEMENT_SIZE (libcrux_ml_dsa_constants_gamma1_ring_element_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_BITS_PER_GAMMA1_COEFFICIENT)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_65_VERIFICATION_KEY_SIZE (libcrux_ml_dsa_constants_verification_key_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_ROWS_IN_A)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_65_SIGNATURE_SIZE (libcrux_ml_dsa_constants_signature_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_ROWS_IN_A, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_COLUMNS_IN_A, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_MAX_ONES_IN_HINT, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_COMMITMENT_HASH_SIZE, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_BITS_PER_GAMMA1_COEFFICIENT)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_87_ERROR_RING_ELEMENT_SIZE (libcrux_ml_dsa_constants_error_ring_element_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_BITS_PER_ERROR_COEFFICIENT)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_87_COMMITMENT_RING_ELEMENT_SIZE (libcrux_ml_dsa_constants_commitment_ring_element_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_BITS_PER_COMMITMENT_COEFFICIENT)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_87_BETA (libcrux_ml_dsa_constants_beta(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_ONES_IN_VERIFIER_CHALLENGE, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_ETA)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_87_GAMMA1_RING_ELEMENT_SIZE (libcrux_ml_dsa_constants_gamma1_ring_element_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_BITS_PER_GAMMA1_COEFFICIENT)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_87_VERIFICATION_KEY_SIZE (libcrux_ml_dsa_constants_verification_key_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_ROWS_IN_A)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_87_SIGNATURE_SIZE (libcrux_ml_dsa_constants_signature_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_ROWS_IN_A, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_COLUMNS_IN_A, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_MAX_ONES_IN_HINT, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_COMMITMENT_HASH_SIZE, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_BITS_PER_GAMMA1_COEFFICIENT)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_44_COMMITMENT_VECTOR_SIZE (libcrux_ml_dsa_constants_commitment_vector_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_BITS_PER_COMMITMENT_COEFFICIENT, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_ROWS_IN_A)) /** A monomorphic instance of libcrux_ml_dsa.types.MLDSASigningKey with const generics - $2560size_t */ typedef Eurydice_arr_10 libcrux_ml_dsa_types_MLDSASigningKey_11; typedef Eurydice_arr_10 libcrux_ml_dsa_ml_dsa_generic_ml_dsa_44_MLDSA44SigningKey; /** A monomorphic instance of libcrux_ml_dsa.types.MLDSAVerificationKey with const generics - $1312size_t */ typedef Eurydice_arr_02 libcrux_ml_dsa_types_MLDSAVerificationKey_1d; typedef Eurydice_arr_02 libcrux_ml_dsa_ml_dsa_generic_ml_dsa_44_MLDSA44VerificationKey; #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_44_ROW_COLUMN (LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_ROWS_IN_A + LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_COLUMNS_IN_A) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_44_ROW_X_COLUMN (LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_ROWS_IN_A * LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_COLUMNS_IN_A) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_44_SIGNING_KEY_SIZE (libcrux_ml_dsa_constants_signing_key_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_ROWS_IN_A, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_44_COLUMNS_IN_A, LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_44_ERROR_RING_ELEMENT_SIZE)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_65_COMMITMENT_VECTOR_SIZE (libcrux_ml_dsa_constants_commitment_vector_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_BITS_PER_COMMITMENT_COEFFICIENT, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_ROWS_IN_A)) /** A monomorphic instance of libcrux_ml_dsa.types.MLDSASigningKey with const generics - $4032size_t */ typedef Eurydice_arr_24 libcrux_ml_dsa_types_MLDSASigningKey_8e; typedef Eurydice_arr_24 libcrux_ml_dsa_ml_dsa_generic_ml_dsa_65_MLDSA65SigningKey; /** A monomorphic instance of libcrux_ml_dsa.types.MLDSAVerificationKey with const generics - $1952size_t */ typedef Eurydice_arr_29 libcrux_ml_dsa_types_MLDSAVerificationKey_c8; typedef Eurydice_arr_29 libcrux_ml_dsa_ml_dsa_generic_ml_dsa_65_MLDSA65VerificationKey; #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_65_ROW_COLUMN (LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_ROWS_IN_A + LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_COLUMNS_IN_A) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_65_ROW_X_COLUMN (LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_ROWS_IN_A * LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_COLUMNS_IN_A) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_65_SIGNING_KEY_SIZE (libcrux_ml_dsa_constants_signing_key_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_ROWS_IN_A, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_65_COLUMNS_IN_A, LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_65_ERROR_RING_ELEMENT_SIZE)) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_87_COMMITMENT_VECTOR_SIZE (libcrux_ml_dsa_constants_commitment_vector_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_BITS_PER_COMMITMENT_COEFFICIENT, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_ROWS_IN_A)) /** A monomorphic instance of libcrux_ml_dsa.types.MLDSASigningKey with const generics - $4896size_t */ typedef Eurydice_arr_e2 libcrux_ml_dsa_types_MLDSASigningKey_b8; typedef Eurydice_arr_e2 libcrux_ml_dsa_ml_dsa_generic_ml_dsa_87_MLDSA87SigningKey; /** A monomorphic instance of libcrux_ml_dsa.types.MLDSAVerificationKey with const generics - $2592size_t */ typedef Eurydice_arr_43 libcrux_ml_dsa_types_MLDSAVerificationKey_e9; typedef Eurydice_arr_43 libcrux_ml_dsa_ml_dsa_generic_ml_dsa_87_MLDSA87VerificationKey; #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_87_ROW_COLUMN (LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_ROWS_IN_A + LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_COLUMNS_IN_A) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_87_ROW_X_COLUMN (LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_ROWS_IN_A * LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_COLUMNS_IN_A) #define LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_87_SIGNING_KEY_SIZE (libcrux_ml_dsa_constants_signing_key_size(LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_ROWS_IN_A, LIBCRUX_ML_DSA_CONSTANTS_ML_DSA_87_COLUMNS_IN_A, LIBCRUX_ML_DSA_ML_DSA_GENERIC_ML_DSA_87_ERROR_RING_ELEMENT_SIZE)) #define LIBCRUX_ML_DSA_PRE_HASH_PRE_HASH_OID_LEN ((size_t)11U) typedef Eurydice_arr_c9 libcrux_ml_dsa_pre_hash_PreHashOID; typedef core_result_Result_a8 libcrux_ml_dsa_pre_hash_PreHashResult; /** This function found in impl {core::convert::From for libcrux_ml_dsa::types::SigningError} */ libcrux_ml_dsa_types_SigningError libcrux_ml_dsa_pre_hash_from_96(libcrux_ml_dsa_pre_hash_DomainSeparationError e); /** This function found in impl {core::convert::From for libcrux_ml_dsa::types::VerificationError} */ libcrux_ml_dsa_types_VerificationError libcrux_ml_dsa_pre_hash_from_bf(libcrux_ml_dsa_pre_hash_DomainSeparationError e); #define LIBCRUX_ML_DSA_SIMD_PORTABLE_INVNTT_INVERT_NTT_AT_LAYER_3_STEP ((size_t)8U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_INVNTT_INVERT_NTT_AT_LAYER_3_STEP_BY ((size_t)1U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_INVNTT_INVERT_NTT_AT_LAYER_4_STEP ((size_t)16U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_INVNTT_INVERT_NTT_AT_LAYER_4_STEP_BY ((size_t)2U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_INVNTT_INVERT_NTT_AT_LAYER_5_STEP ((size_t)32U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_INVNTT_INVERT_NTT_AT_LAYER_5_STEP_BY ((size_t)4U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_INVNTT_INVERT_NTT_AT_LAYER_6_STEP ((size_t)64U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_INVNTT_INVERT_NTT_AT_LAYER_6_STEP_BY ((size_t)8U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_INVNTT_INVERT_NTT_AT_LAYER_7_STEP ((size_t)128U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_INVNTT_INVERT_NTT_AT_LAYER_7_STEP_BY ((size_t)16U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_NTT_NTT_AT_LAYER_3_STEP ((size_t)8U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_NTT_NTT_AT_LAYER_3_STEP_BY ((size_t)1U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_NTT_NTT_AT_LAYER_4_STEP ((size_t)16U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_NTT_NTT_AT_LAYER_4_STEP_BY ((size_t)2U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_NTT_NTT_AT_LAYER_5_STEP ((size_t)32U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_NTT_NTT_AT_LAYER_5_STEP_BY ((size_t)4U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_NTT_NTT_AT_LAYER_6_STEP ((size_t)64U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_NTT_NTT_AT_LAYER_6_STEP_BY ((size_t)8U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_NTT_NTT_AT_LAYER_7_STEP ((size_t)128U) #define LIBCRUX_ML_DSA_SIMD_PORTABLE_NTT_NTT_AT_LAYER_7_STEP_BY ((size_t)16U) typedef int32_t libcrux_ml_dsa_simd_portable_vector_type_FieldElement; /** This function found in impl {core::clone::Clone for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ Eurydice_arr_4d libcrux_ml_dsa_simd_portable_vector_type_clone_a5(const Eurydice_arr_4d *self); typedef int32_t libcrux_ml_dsa_simd_traits_FieldElementTimesMontgomeryR; typedef Eurydice_arr_93 libcrux_ml_dsa_ml_dsa_generic_ml_dsa_87_MLDSA87Signature; /** A reference to the raw byte array. */ /** This function found in impl {libcrux_ml_dsa::types::MLDSASignature} */ /** A monomorphic instance of libcrux_ml_dsa.types.as_ref_c5 with const generics - SIZE= 4627 */ const Eurydice_arr_93 *libcrux_ml_dsa_types_as_ref_c5_f1(const Eurydice_arr_93 *self); /** A reference to the raw byte array. */ /** This function found in impl {libcrux_ml_dsa::types::MLDSAVerificationKey} */ /** A monomorphic instance of libcrux_ml_dsa.types.as_ref_7f with const generics - SIZE= 2592 */ const Eurydice_arr_43 *libcrux_ml_dsa_types_as_ref_7f_c6(const Eurydice_arr_43 *self); /** A reference to the raw byte array. */ /** This function found in impl {libcrux_ml_dsa::types::MLDSASigningKey} */ /** A monomorphic instance of libcrux_ml_dsa.types.as_ref_9b with const generics - SIZE= 4896 */ const Eurydice_arr_e2 *libcrux_ml_dsa_types_as_ref_9b_72(const Eurydice_arr_e2 *self); /** Build */ /** This function found in impl {libcrux_ml_dsa::types::MLDSAVerificationKey} */ /** A monomorphic instance of libcrux_ml_dsa.types.new_7f with const generics - SIZE= 2592 */ Eurydice_arr_43 libcrux_ml_dsa_types_new_7f_c6(Eurydice_arr_43 value); /** Build */ /** This function found in impl {libcrux_ml_dsa::types::MLDSASigningKey} */ /** A monomorphic instance of libcrux_ml_dsa.types.new_9b with const generics - SIZE= 4896 */ Eurydice_arr_e2 libcrux_ml_dsa_types_new_9b_72(Eurydice_arr_e2 value); typedef Eurydice_arr_85 libcrux_ml_dsa_ml_dsa_generic_ml_dsa_44_MLDSA44Signature; /** A reference to the raw byte array. */ /** This function found in impl {libcrux_ml_dsa::types::MLDSASignature} */ /** A monomorphic instance of libcrux_ml_dsa.types.as_ref_c5 with const generics - SIZE= 2420 */ const Eurydice_arr_85 *libcrux_ml_dsa_types_as_ref_c5_37(const Eurydice_arr_85 *self); /** A reference to the raw byte array. */ /** This function found in impl {libcrux_ml_dsa::types::MLDSAVerificationKey} */ /** A monomorphic instance of libcrux_ml_dsa.types.as_ref_7f with const generics - SIZE= 1312 */ const Eurydice_arr_02 *libcrux_ml_dsa_types_as_ref_7f_7d(const Eurydice_arr_02 *self); /** A reference to the raw byte array. */ /** This function found in impl {libcrux_ml_dsa::types::MLDSASigningKey} */ /** A monomorphic instance of libcrux_ml_dsa.types.as_ref_9b with const generics - SIZE= 2560 */ const Eurydice_arr_10 *libcrux_ml_dsa_types_as_ref_9b_ab(const Eurydice_arr_10 *self); /** Build */ /** This function found in impl {libcrux_ml_dsa::types::MLDSAVerificationKey} */ /** A monomorphic instance of libcrux_ml_dsa.types.new_7f with const generics - SIZE= 1312 */ Eurydice_arr_02 libcrux_ml_dsa_types_new_7f_7d(Eurydice_arr_02 value); /** Build */ /** This function found in impl {libcrux_ml_dsa::types::MLDSASigningKey} */ /** A monomorphic instance of libcrux_ml_dsa.types.new_9b with const generics - SIZE= 2560 */ Eurydice_arr_10 libcrux_ml_dsa_types_new_9b_ab(Eurydice_arr_10 value); typedef Eurydice_arr_0c libcrux_ml_dsa_ml_dsa_generic_ml_dsa_65_MLDSA65Signature; /** A reference to the raw byte array. */ /** This function found in impl {libcrux_ml_dsa::types::MLDSASignature} */ /** A monomorphic instance of libcrux_ml_dsa.types.as_ref_c5 with const generics - SIZE= 3309 */ const Eurydice_arr_0c *libcrux_ml_dsa_types_as_ref_c5_5c(const Eurydice_arr_0c *self); /** A reference to the raw byte array. */ /** This function found in impl {libcrux_ml_dsa::types::MLDSAVerificationKey} */ /** A monomorphic instance of libcrux_ml_dsa.types.as_ref_7f with const generics - SIZE= 1952 */ const Eurydice_arr_29 *libcrux_ml_dsa_types_as_ref_7f_a2(const Eurydice_arr_29 *self); /** A reference to the raw byte array. */ /** This function found in impl {libcrux_ml_dsa::types::MLDSASigningKey} */ /** A monomorphic instance of libcrux_ml_dsa.types.as_ref_9b with const generics - SIZE= 4032 */ const Eurydice_arr_24 *libcrux_ml_dsa_types_as_ref_9b_e5(const Eurydice_arr_24 *self); /** Build */ /** This function found in impl {libcrux_ml_dsa::types::MLDSAVerificationKey} */ /** A monomorphic instance of libcrux_ml_dsa.types.new_7f with const generics - SIZE= 1952 */ Eurydice_arr_29 libcrux_ml_dsa_types_new_7f_a2(Eurydice_arr_29 value); /** Build */ /** This function found in impl {libcrux_ml_dsa::types::MLDSASigningKey} */ /** A monomorphic instance of libcrux_ml_dsa.types.new_9b with const generics - SIZE= 4032 */ Eurydice_arr_24 libcrux_ml_dsa_types_new_9b_e5(Eurydice_arr_24 value); /** A monomorphic instance of core.result.Result with types libcrux_ml_dsa_ml_dsa_generic_ml_dsa_87_MLDSA87Signature, libcrux_ml_dsa_types_SigningError */ typedef struct core_result_Result_8b_s { core_result_Result_07_tags tag; union { Eurydice_arr_93 case_Ok; libcrux_ml_dsa_types_SigningError case_Err; } val; } core_result_Result_8b; /** A monomorphic instance of libcrux_ml_dsa.polynomial.PolynomialRingElement with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients */ typedef Eurydice_arr_a3 libcrux_ml_dsa_polynomial_PolynomialRingElement_e8; /** A monomorphic instance of Eurydice.dst_ref_shared with types libcrux_ml_dsa_polynomial_PolynomialRingElement_e8, size_t */ typedef struct Eurydice_dst_ref_shared_44_s { const Eurydice_arr_a3 *ptr; size_t meta; } Eurydice_dst_ref_shared_44; /** Init with zero */ /** This function found in impl {libcrux_ml_dsa::types::MLDSASignature} */ /** A monomorphic instance of libcrux_ml_dsa.types.zero_c5 with const generics - SIZE= 4627 */ Eurydice_arr_93 libcrux_ml_dsa_types_zero_c5_f1(void); /** A monomorphic instance of Eurydice.dst_ref_mut with types libcrux_ml_dsa_polynomial_PolynomialRingElement_e8, size_t */ typedef struct Eurydice_dst_ref_mut_44_s { Eurydice_arr_a3 *ptr; size_t meta; } Eurydice_dst_ref_mut_44; /** A monomorphic instance of core.result.Result with types libcrux_ml_dsa_ml_dsa_generic_ml_dsa_65_MLDSA65Signature, libcrux_ml_dsa_types_SigningError */ typedef struct core_result_Result_8c_s { core_result_Result_07_tags tag; union { Eurydice_arr_0c case_Ok; libcrux_ml_dsa_types_SigningError case_Err; } val; } core_result_Result_8c; /** Init with zero */ /** This function found in impl {libcrux_ml_dsa::types::MLDSASignature} */ /** A monomorphic instance of libcrux_ml_dsa.types.zero_c5 with const generics - SIZE= 3309 */ Eurydice_arr_0c libcrux_ml_dsa_types_zero_c5_5c(void); /** This function found in impl {libcrux_ml_dsa::polynomial::PolynomialRingElement[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_dsa.polynomial.zero_ff with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ Eurydice_arr_a3 libcrux_ml_dsa_polynomial_zero_ff_37(void); /** This function found in impl {libcrux_ml_dsa::polynomial::PolynomialRingElement[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_dsa.polynomial.from_i32_array_ff with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_polynomial_from_i32_array_ff_37( Eurydice_dst_ref_shared_83 array, Eurydice_arr_a3 *result ); /** A monomorphic instance of libcrux_ml_dsa.arithmetic.use_hint with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_arithmetic_use_hint_37( int32_t gamma2, Eurydice_dst_ref_shared_20 hint, Eurydice_dst_ref_mut_44 re_vector ); /** A monomorphic instance of libcrux_ml_dsa.ntt.ntt_multiply_montgomery with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_ntt_ntt_multiply_montgomery_37(Eurydice_arr_a3 *lhs, const Eurydice_arr_a3 *rhs); /** This function found in impl {libcrux_ml_dsa::polynomial::PolynomialRingElement[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_dsa.polynomial.add_ff with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_polynomial_add_ff_37(Eurydice_arr_a3 *self, const Eurydice_arr_a3 *rhs); /** A monomorphic instance of libcrux_ml_dsa.simd.portable.arithmetic.shift_left_then_reduce with const generics - SHIFT_BY= 13 */ void libcrux_ml_dsa_simd_portable_arithmetic_shift_left_then_reduce_84(Eurydice_arr_4d *simd_unit); /** This function found in impl {libcrux_ml_dsa::simd::traits::Operations for libcrux_ml_dsa::simd::portable::vector_type::Coefficients} */ /** A monomorphic instance of libcrux_ml_dsa.simd.portable.shift_left_then_reduce_65 with const generics - SHIFT_BY= 13 */ void libcrux_ml_dsa_simd_portable_shift_left_then_reduce_65_84(Eurydice_arr_4d *simd_unit); /** A monomorphic instance of libcrux_ml_dsa.arithmetic.shift_left_then_reduce with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics - SHIFT_BY= 13 */ void libcrux_ml_dsa_arithmetic_shift_left_then_reduce_68(Eurydice_arr_a3 *re); /** A monomorphic instance of libcrux_ml_dsa.ntt.ntt with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_ntt_ntt_37(Eurydice_arr_a3 *re); /** This function found in impl {libcrux_ml_dsa::polynomial::PolynomialRingElement[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_dsa.polynomial.subtract_ff with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_polynomial_subtract_ff_37(Eurydice_arr_a3 *self, const Eurydice_arr_a3 *rhs); /** This function found in impl {libcrux_ml_dsa::polynomial::PolynomialRingElement[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_dsa.polynomial.barrett_reduce_ff with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_polynomial_barrett_reduce_ff_37(Eurydice_arr_a3 *self); /** A monomorphic instance of libcrux_ml_dsa.ntt.invert_ntt_montgomery with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_ntt_invert_ntt_montgomery_37(Eurydice_arr_a3 *re); /** Compute InvertNTT(Â ◦ ẑ - ĉ ◦ NTT(t₁2ᵈ)) */ /** A monomorphic instance of libcrux_ml_dsa.matrix.compute_w_approx with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_matrix_compute_w_approx_37( size_t rows_in_a, size_t columns_in_a, Eurydice_dst_ref_shared_44 matrix, Eurydice_dst_ref_shared_44 signer_response, const Eurydice_arr_a3 *verifier_challenge_as_ntt, Eurydice_dst_ref_mut_44 t1 ); /** A monomorphic instance of core.result.Result with types (), libcrux_ml_dsa_types_VerificationError */ typedef struct core_result_Result_41_s { core_result_Result_07_tags tag; libcrux_ml_dsa_types_VerificationError f0; } core_result_Result_41; /** A monomorphic instance of libcrux_ml_dsa.encoding.gamma1.deserialize with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_encoding_gamma1_deserialize_37( size_t gamma1_exponent, Eurydice_borrow_slice_u8 serialized, Eurydice_arr_a3 *result ); /** A monomorphic instance of libcrux_ml_dsa.encoding.signature.deserialize with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ core_result_Result_41 libcrux_ml_dsa_encoding_signature_deserialize_37( size_t columns_in_a, size_t rows_in_a, size_t commitment_hash_size, size_t gamma1_exponent, size_t gamma1_ring_element_size, size_t max_ones_in_hint, size_t signature_size, Eurydice_borrow_slice_u8 serialized, Eurydice_mut_borrow_slice_u8 out_commitment_hash, Eurydice_dst_ref_mut_44 out_signer_response, Eurydice_dst_ref_mut_20 out_hint ); /** A monomorphic instance of libcrux_ml_dsa.encoding.t1.deserialize with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_encoding_t1_deserialize_37( Eurydice_borrow_slice_u8 serialized, Eurydice_arr_a3 *result ); /** A monomorphic instance of libcrux_ml_dsa.encoding.verification_key.deserialize with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_encoding_verification_key_deserialize_37( size_t rows_in_a, size_t verification_key_size, Eurydice_borrow_slice_u8 serialized, Eurydice_dst_ref_mut_44 t1 ); /** A monomorphic instance of core.result.Result with types libcrux_ml_dsa_ml_dsa_generic_ml_dsa_44_MLDSA44Signature, libcrux_ml_dsa_types_SigningError */ typedef struct core_result_Result_48_s { core_result_Result_07_tags tag; union { Eurydice_arr_85 case_Ok; libcrux_ml_dsa_types_SigningError case_Err; } val; } core_result_Result_48; /** A monomorphic instance of core.result.Result with types (), libcrux_ml_dsa_types_SigningError */ typedef struct core_result_Result_53_s { core_result_Result_07_tags tag; libcrux_ml_dsa_types_SigningError f0; } core_result_Result_53; /** A monomorphic instance of libcrux_ml_dsa.encoding.gamma1.serialize with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_encoding_gamma1_serialize_37( const Eurydice_arr_a3 *re, Eurydice_mut_borrow_slice_u8 serialized, size_t gamma1_exponent ); /** A monomorphic instance of libcrux_ml_dsa.encoding.signature.serialize with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_encoding_signature_serialize_37( Eurydice_borrow_slice_u8 commitment_hash, Eurydice_dst_ref_shared_44 signer_response, Eurydice_dst_ref_shared_20 hint, size_t commitment_hash_size, size_t columns_in_a, size_t rows_in_a, size_t gamma1_exponent, size_t gamma1_ring_element_size, size_t max_ones_in_hint, Eurydice_mut_borrow_slice_u8 signature ); /** This function found in impl {libcrux_ml_dsa::polynomial::PolynomialRingElement[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_dsa.polynomial.to_i32_array_ff with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ Eurydice_arr_6c libcrux_ml_dsa_polynomial_to_i32_array_ff_37(const Eurydice_arr_a3 *self); /** A monomorphic instance of libcrux_ml_dsa.arithmetic.make_hint with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ size_t libcrux_ml_dsa_arithmetic_make_hint_37( Eurydice_dst_ref_shared_44 low, Eurydice_dst_ref_shared_44 high, int32_t gamma2, Eurydice_dst_ref_mut_20 hint ); /** CAUTION: This function must only be called with inputs for which it is safe to leak the index of a violating coefficient. For all norm checks during ML-DSA signature generation it is safe to leak the index of a violating coefficient. */ /** This function found in impl {libcrux_ml_dsa::polynomial::PolynomialRingElement[TraitClause@0, TraitClause@1]} */ /** A monomorphic instance of libcrux_ml_dsa.polynomial.infinity_norm_exceeds_ff with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ bool libcrux_ml_dsa_polynomial_infinity_norm_exceeds_ff_37( const Eurydice_arr_a3 *self, int32_t bound ); /** CAUTION: This function must only be called with inputs for which it is safe to leak the index of a violating coefficient. For all norm checks during ML-DSA signature generation it is safe to leak the index of a violating coefficient. */ /** A monomorphic instance of libcrux_ml_dsa.arithmetic.vector_infinity_norm_exceeds with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ bool libcrux_ml_dsa_arithmetic_vector_infinity_norm_exceeds_37( Eurydice_dst_ref_shared_44 vector, int32_t bound ); /** A monomorphic instance of libcrux_ml_dsa.matrix.subtract_vectors with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_matrix_subtract_vectors_37( size_t dimension, Eurydice_dst_ref_mut_44 lhs, Eurydice_dst_ref_shared_44 rhs ); /** A monomorphic instance of libcrux_ml_dsa.matrix.add_vectors with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_matrix_add_vectors_37( size_t dimension, Eurydice_dst_ref_mut_44 lhs, Eurydice_dst_ref_shared_44 rhs ); /** A monomorphic instance of libcrux_ml_dsa.matrix.vector_times_ring_element with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_matrix_vector_times_ring_element_37( Eurydice_dst_ref_mut_44 vector, const Eurydice_arr_a3 *ring_element ); /** A monomorphic instance of libcrux_ml_dsa.encoding.commitment.serialize with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_encoding_commitment_serialize_37( const Eurydice_arr_a3 *re, Eurydice_mut_borrow_slice_u8 serialized ); /** A monomorphic instance of libcrux_ml_dsa.encoding.commitment.serialize_vector with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_encoding_commitment_serialize_vector_37( size_t ring_element_size, Eurydice_dst_ref_shared_44 vector, Eurydice_mut_borrow_slice_u8 serialized ); /** A monomorphic instance of libcrux_ml_dsa.arithmetic.decompose_vector with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_arithmetic_decompose_vector_37( size_t dimension, int32_t gamma2, Eurydice_dst_ref_shared_44 t, Eurydice_dst_ref_mut_44 low, Eurydice_dst_ref_mut_44 high ); /** Compute InvertNTT(Â ◦ ŷ) */ /** A monomorphic instance of libcrux_ml_dsa.matrix.compute_matrix_x_mask with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_matrix_compute_matrix_x_mask_37( size_t rows_in_a, size_t columns_in_a, Eurydice_dst_ref_shared_44 matrix, Eurydice_dst_ref_shared_44 mask, Eurydice_dst_ref_mut_44 result ); /** A monomorphic instance of core.option.Option with types libcrux_ml_dsa_pre_hash_DomainSeparationContext */ typedef struct core_option_Option_84_s { core_option_Option_45_tags tag; libcrux_ml_dsa_pre_hash_DomainSeparationContext f0; } core_option_Option_84; /** A monomorphic instance of libcrux_ml_dsa.encoding.t0.deserialize with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_encoding_t0_deserialize_37( Eurydice_borrow_slice_u8 serialized, Eurydice_arr_a3 *result ); /** A monomorphic instance of libcrux_ml_dsa.encoding.t0.deserialize_to_vector_then_ntt with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_encoding_t0_deserialize_to_vector_then_ntt_37( Eurydice_borrow_slice_u8 serialized, Eurydice_dst_ref_mut_44 ring_elements ); /** A monomorphic instance of libcrux_ml_dsa.encoding.error.deserialize with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_encoding_error_deserialize_37( libcrux_ml_dsa_constants_Eta eta, Eurydice_borrow_slice_u8 serialized, Eurydice_arr_a3 *result ); /** A monomorphic instance of libcrux_ml_dsa.encoding.error.deserialize_to_vector_then_ntt with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_encoding_error_deserialize_to_vector_then_ntt_37( libcrux_ml_dsa_constants_Eta eta, size_t ring_element_size, Eurydice_borrow_slice_u8 serialized, Eurydice_dst_ref_mut_44 ring_elements ); /** Init with zero */ /** This function found in impl {libcrux_ml_dsa::types::MLDSASignature} */ /** A monomorphic instance of libcrux_ml_dsa.types.zero_c5 with const generics - SIZE= 2420 */ Eurydice_arr_85 libcrux_ml_dsa_types_zero_c5_37(void); /** A monomorphic instance of libcrux_ml_dsa.encoding.t0.serialize with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_encoding_t0_serialize_37( const Eurydice_arr_a3 *re, Eurydice_mut_borrow_slice_u8 serialized ); /** A monomorphic instance of libcrux_ml_dsa.encoding.error.serialize with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_encoding_error_serialize_37( libcrux_ml_dsa_constants_Eta eta, const Eurydice_arr_a3 *re, Eurydice_mut_borrow_slice_u8 serialized ); /** A monomorphic instance of libcrux_ml_dsa.encoding.t1.serialize with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_encoding_t1_serialize_37( const Eurydice_arr_a3 *re, Eurydice_mut_borrow_slice_u8 serialized ); /** A monomorphic instance of libcrux_ml_dsa.encoding.verification_key.generate_serialized with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_encoding_verification_key_generate_serialized_37( Eurydice_borrow_slice_u8 seed, Eurydice_dst_ref_shared_44 t1, Eurydice_mut_borrow_slice_u8 verification_key_serialized ); /** A monomorphic instance of libcrux_ml_dsa.arithmetic.power2round_vector with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_arithmetic_power2round_vector_37( Eurydice_dst_ref_mut_44 t, Eurydice_dst_ref_mut_44 t1 ); /** Compute InvertNTT(Â ◦ ŝ₁) + s₂ */ /** A monomorphic instance of libcrux_ml_dsa.matrix.compute_as1_plus_s2 with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ void libcrux_ml_dsa_matrix_compute_as1_plus_s2_37( size_t rows_in_a, size_t columns_in_a, Eurydice_dst_ref_mut_44 a_as_ntt, Eurydice_dst_ref_shared_44 s1_ntt, Eurydice_dst_ref_shared_44 s1_s2, Eurydice_dst_ref_mut_44 result ); /** A monomorphic instance of libcrux_ml_dsa.sample.rejection_sample_less_than_field_modulus with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ bool libcrux_ml_dsa_sample_rejection_sample_less_than_field_modulus_37( Eurydice_borrow_slice_u8 randomness, size_t *sampled_coefficients, Eurydice_arr_d0 *out ); /** A monomorphic instance of libcrux_ml_dsa.sample.rejection_sample_less_than_eta_equals_4 with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ bool libcrux_ml_dsa_sample_rejection_sample_less_than_eta_equals_4_37( Eurydice_borrow_slice_u8 randomness, size_t *sampled_coefficients, Eurydice_arr_d0 *out ); /** A monomorphic instance of libcrux_ml_dsa.sample.rejection_sample_less_than_eta_equals_2 with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ bool libcrux_ml_dsa_sample_rejection_sample_less_than_eta_equals_2_37( Eurydice_borrow_slice_u8 randomness, size_t *sampled_coefficients, Eurydice_arr_d0 *out ); /** A monomorphic instance of libcrux_ml_dsa.sample.rejection_sample_less_than_eta with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients with const generics */ bool libcrux_ml_dsa_sample_rejection_sample_less_than_eta_37( libcrux_ml_dsa_constants_Eta eta, Eurydice_borrow_slice_u8 randomness, size_t *sampled, Eurydice_arr_d0 *out ); typedef struct libcrux_ml_dsa_ml_dsa_generic_ml_dsa_87_MLDSA87KeyPair_s { Eurydice_arr_e2 signing_key; Eurydice_arr_43 verification_key; } libcrux_ml_dsa_ml_dsa_generic_ml_dsa_87_MLDSA87KeyPair; typedef struct libcrux_ml_dsa_ml_dsa_generic_ml_dsa_65_MLDSA65KeyPair_s { Eurydice_arr_24 signing_key; Eurydice_arr_29 verification_key; } libcrux_ml_dsa_ml_dsa_generic_ml_dsa_65_MLDSA65KeyPair; typedef struct libcrux_ml_dsa_ml_dsa_generic_ml_dsa_44_MLDSA44KeyPair_s { Eurydice_arr_10 signing_key; Eurydice_arr_02 verification_key; } libcrux_ml_dsa_ml_dsa_generic_ml_dsa_44_MLDSA44KeyPair; #if defined(__cplusplus) } #endif #define libcrux_mldsa_core_H_DEFINED #endif /* libcrux_mldsa_core_H */