Source code

Revision control

Copy as Markdown

Other Tools

/*
* 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_portable_H
#define libcrux_mldsa_portable_H
#include "eurydice_glue.h"
#if defined(__cplusplus)
extern "C" {
#endif
#include "libcrux_sha3_portable.h"
#include "libcrux_mldsa_core.h"
#include "combined_core.h"
typedef struct libcrux_ml_dsa_hash_functions_portable_Shake128X4_s
{
Eurydice_arr_7c state0;
Eurydice_arr_7c state1;
Eurydice_arr_7c state2;
Eurydice_arr_7c state3;
}
libcrux_ml_dsa_hash_functions_portable_Shake128X4;
typedef libcrux_sha3_portable_KeccakState libcrux_ml_dsa_hash_functions_portable_Shake256;
typedef struct libcrux_ml_dsa_hash_functions_portable_Shake256X4_s
{
Eurydice_arr_7c state0;
Eurydice_arr_7c state1;
Eurydice_arr_7c state2;
Eurydice_arr_7c state3;
}
libcrux_ml_dsa_hash_functions_portable_Shake256X4;
typedef libcrux_sha3_portable_incremental_Shake256Xof
libcrux_ml_dsa_hash_functions_portable_Shake256Xof;
libcrux_ml_dsa_hash_functions_portable_Shake128X4
libcrux_ml_dsa_hash_functions_portable_init_absorb(
Eurydice_borrow_slice_u8 input0,
Eurydice_borrow_slice_u8 input1,
Eurydice_borrow_slice_u8 input2,
Eurydice_borrow_slice_u8 input3
);
Eurydice_arr_7c
libcrux_ml_dsa_hash_functions_portable_init_absorb_final_shake256(
Eurydice_borrow_slice_u8 input
);
libcrux_ml_dsa_hash_functions_portable_Shake256X4
libcrux_ml_dsa_hash_functions_portable_init_absorb_x4(
Eurydice_borrow_slice_u8 input0,
Eurydice_borrow_slice_u8 input1,
Eurydice_borrow_slice_u8 input2,
Eurydice_borrow_slice_u8 input3
);
void
libcrux_ml_dsa_hash_functions_portable_shake128(
Eurydice_borrow_slice_u8 input,
Eurydice_mut_borrow_slice_u8 out
);
Eurydice_arr_ff
libcrux_ml_dsa_hash_functions_portable_squeeze_first_block_shake256(Eurydice_arr_7c *state);
Eurydice_arr_ff_x4
libcrux_ml_dsa_hash_functions_portable_squeeze_first_block_x4(
libcrux_ml_dsa_hash_functions_portable_Shake256X4 *state
);
void
libcrux_ml_dsa_hash_functions_portable_squeeze_first_five_blocks(
libcrux_ml_dsa_hash_functions_portable_Shake128X4 *state,
Eurydice_arr_d10 *out0,
Eurydice_arr_d10 *out1,
Eurydice_arr_d10 *out2,
Eurydice_arr_d10 *out3
);
Eurydice_arr_c5_x4
libcrux_ml_dsa_hash_functions_portable_squeeze_next_block(
libcrux_ml_dsa_hash_functions_portable_Shake128X4 *state
);
Eurydice_arr_ff
libcrux_ml_dsa_hash_functions_portable_squeeze_next_block_shake256(Eurydice_arr_7c *state);
Eurydice_arr_ff_x4
libcrux_ml_dsa_hash_functions_portable_squeeze_next_block_x4(
libcrux_ml_dsa_hash_functions_portable_Shake256X4 *state
);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake128::Xof for libcrux_ml_dsa::hash_functions::portable::Shake128}
*/
void
libcrux_ml_dsa_hash_functions_portable_shake128_7b(
Eurydice_borrow_slice_u8 input,
Eurydice_mut_borrow_slice_u8 out
);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake128::XofX4 for libcrux_ml_dsa::hash_functions::portable::Shake128X4}
*/
libcrux_ml_dsa_hash_functions_portable_Shake128X4
libcrux_ml_dsa_hash_functions_portable_init_absorb_11(
Eurydice_borrow_slice_u8 input0,
Eurydice_borrow_slice_u8 input1,
Eurydice_borrow_slice_u8 input2,
Eurydice_borrow_slice_u8 input3
);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake128::XofX4 for libcrux_ml_dsa::hash_functions::portable::Shake128X4}
*/
void
libcrux_ml_dsa_hash_functions_portable_squeeze_first_five_blocks_11(
libcrux_ml_dsa_hash_functions_portable_Shake128X4 *self,
Eurydice_arr_d10 *out0,
Eurydice_arr_d10 *out1,
Eurydice_arr_d10 *out2,
Eurydice_arr_d10 *out3
);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake128::XofX4 for libcrux_ml_dsa::hash_functions::portable::Shake128X4}
*/
Eurydice_arr_c5_x4
libcrux_ml_dsa_hash_functions_portable_squeeze_next_block_11(
libcrux_ml_dsa_hash_functions_portable_Shake128X4 *self
);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake256::DsaXof for libcrux_ml_dsa::hash_functions::portable::Shake256}
*/
Eurydice_arr_7c
libcrux_ml_dsa_hash_functions_portable_init_absorb_final_61(Eurydice_borrow_slice_u8 input);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake256::DsaXof for libcrux_ml_dsa::hash_functions::portable::Shake256}
*/
Eurydice_arr_ff
libcrux_ml_dsa_hash_functions_portable_squeeze_first_block_61(Eurydice_arr_7c *self);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake256::DsaXof for libcrux_ml_dsa::hash_functions::portable::Shake256}
*/
Eurydice_arr_ff
libcrux_ml_dsa_hash_functions_portable_squeeze_next_block_61(Eurydice_arr_7c *self);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake256::Xof for libcrux_ml_dsa::hash_functions::portable::Shake256Xof}
*/
void
libcrux_ml_dsa_hash_functions_portable_absorb_26(
libcrux_sha3_generic_keccak_xof_KeccakXofState_8d *self,
Eurydice_borrow_slice_u8 input
);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake256::Xof for libcrux_ml_dsa::hash_functions::portable::Shake256Xof}
*/
void
libcrux_ml_dsa_hash_functions_portable_absorb_final_26(
libcrux_sha3_generic_keccak_xof_KeccakXofState_8d *self,
Eurydice_borrow_slice_u8 input
);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake256::Xof for libcrux_ml_dsa::hash_functions::portable::Shake256Xof}
*/
libcrux_sha3_generic_keccak_xof_KeccakXofState_8d
libcrux_ml_dsa_hash_functions_portable_init_26(void);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake256::Xof for libcrux_ml_dsa::hash_functions::portable::Shake256Xof}
*/
void
libcrux_ml_dsa_hash_functions_portable_squeeze_26(
libcrux_sha3_generic_keccak_xof_KeccakXofState_8d *self,
Eurydice_mut_borrow_slice_u8 out
);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake256::XofX4 for libcrux_ml_dsa::hash_functions::portable::Shake256X4}
*/
libcrux_ml_dsa_hash_functions_portable_Shake256X4
libcrux_ml_dsa_hash_functions_portable_init_absorb_x4_9b(
Eurydice_borrow_slice_u8 input0,
Eurydice_borrow_slice_u8 input1,
Eurydice_borrow_slice_u8 input2,
Eurydice_borrow_slice_u8 input3
);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake256::XofX4 for libcrux_ml_dsa::hash_functions::portable::Shake256X4}
*/
Eurydice_arr_ff_x4
libcrux_ml_dsa_hash_functions_portable_squeeze_first_block_x4_9b(
libcrux_ml_dsa_hash_functions_portable_Shake256X4 *self
);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake256::XofX4 for libcrux_ml_dsa::hash_functions::portable::Shake256X4}
*/
Eurydice_arr_ff_x4
libcrux_ml_dsa_hash_functions_portable_squeeze_next_block_x4_9b(
libcrux_ml_dsa_hash_functions_portable_Shake256X4 *self
);
/**
A monomorphic instance of libcrux_ml_dsa.sample.sample_four_error_ring_elements
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_hash_functions_portable_Shake256X4
with const generics
*/
void
libcrux_ml_dsa_sample_sample_four_error_ring_elements_29(
libcrux_ml_dsa_constants_Eta eta,
Eurydice_borrow_slice_u8 seed,
uint16_t start_index,
Eurydice_dst_ref_mut_44 re
);
/**
A monomorphic instance of libcrux_ml_dsa.samplex4.sample_s1_and_s2
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_hash_functions_portable_Shake256X4
with const generics
*/
void
libcrux_ml_dsa_samplex4_sample_s1_and_s2_29(
libcrux_ml_dsa_constants_Eta eta,
Eurydice_borrow_slice_u8 seed,
Eurydice_dst_ref_mut_44 s1_s2
);
/**
Sample and write out up to four ring elements.
If i <= `elements_requested`, a field element with domain separated
seed according to the provided index is generated in
`tmp_stack[i]`. After successful rejection sampling in
`tmp_stack[i]`, the ring element is written to `matrix` at the
provided index in `indices[i]`.
`rand_stack` is a working buffer that holds initial Shake output.
*/
/**
A monomorphic instance of libcrux_ml_dsa.sample.sample_up_to_four_ring_elements_flat
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_hash_functions_portable_Shake128X4
with const generics
*/
void
libcrux_ml_dsa_sample_sample_up_to_four_ring_elements_flat_63(
size_t columns,
Eurydice_borrow_slice_u8 seed,
Eurydice_dst_ref_mut_44 matrix,
Eurydice_arr_d10 *rand_stack0,
Eurydice_arr_d10 *rand_stack1,
Eurydice_arr_d10 *rand_stack2,
Eurydice_arr_d10 *rand_stack3,
Eurydice_dst_ref_mut_33 tmp_stack,
size_t start_index,
size_t elements_requested
);
/**
A monomorphic instance of libcrux_ml_dsa.samplex4.matrix_flat
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_hash_functions_portable_Shake128X4
with const generics
*/
void
libcrux_ml_dsa_samplex4_matrix_flat_63(
size_t columns,
Eurydice_borrow_slice_u8 seed,
Eurydice_dst_ref_mut_44 matrix
);
/**
This function found in impl {libcrux_ml_dsa::samplex4::X4Sampler for libcrux_ml_dsa::samplex4::portable::PortableSampler}
*/
/**
A monomorphic instance of libcrux_ml_dsa.samplex4.portable.matrix_flat_a8
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients
with const generics
*/
void
libcrux_ml_dsa_samplex4_portable_matrix_flat_a8_37(
size_t columns,
Eurydice_borrow_slice_u8 seed,
Eurydice_dst_ref_mut_44 matrix
);
/**
A monomorphic instance of libcrux_ml_dsa.hash_functions.portable.shake256
with const generics
- OUTPUT_LENGTH= 64
*/
void
libcrux_ml_dsa_hash_functions_portable_shake256_c9(
Eurydice_borrow_slice_u8 input,
Eurydice_arr_c7 *out
);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake256::DsaXof for libcrux_ml_dsa::hash_functions::portable::Shake256}
*/
/**
A monomorphic instance of libcrux_ml_dsa.hash_functions.portable.shake256_61
with const generics
- OUTPUT_LENGTH= 64
*/
void
libcrux_ml_dsa_hash_functions_portable_shake256_61_c9(
Eurydice_borrow_slice_u8 input,
Eurydice_arr_c7 *out
);
/**
A monomorphic instance of libcrux_ml_dsa.encoding.signing_key.generate_serialized
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_hash_functions_portable_Shake256
with const generics
*/
void
libcrux_ml_dsa_encoding_signing_key_generate_serialized_2e(
libcrux_ml_dsa_constants_Eta eta,
size_t error_ring_element_size,
Eurydice_borrow_slice_u8 seed_matrix,
Eurydice_borrow_slice_u8 seed_signing,
Eurydice_borrow_slice_u8 verification_key,
Eurydice_dst_ref_shared_44 s1_2,
Eurydice_dst_ref_shared_44 t0,
Eurydice_mut_borrow_slice_u8 signing_key_serialized
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_44.generate_key_pair
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4
with const generics
*/
void
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_44_generate_key_pair_5a(
Eurydice_arr_ec randomness,
Eurydice_mut_borrow_slice_u8 signing_key,
Eurydice_mut_borrow_slice_u8 verification_key
);
/**
Generate key pair.
*/
void
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_44_generate_key_pair(
Eurydice_arr_ec randomness,
Eurydice_arr_10 *signing_key,
Eurydice_arr_02 *verification_key
);
/**
This corresponds to line 6 in algorithm 7 in FIPS 204 (line 7 in algorithm
8, resp.).
If `domain_separation_context` is supplied, applies domain
separation and length encoding to the context string,
before appending the message (in the regular variant) or the
pre-hash OID as well as the pre-hashed message digest. Otherwise,
it is assumed that `message` already contains domain separation
information.
In FIPS 204 M' is the concatenation of the domain separated context, any
potential pre-hash OID and the message (or the message pre-hash). We do not
explicitely construct the concatenation in memory since it is of statically unknown
length, but feed its components directly into the incremental XOF.
Refer to line 10 of Algorithm 2 (and line 5 of Algorithm 3, resp.) in [FIPS
for details on the domain separation for regular ML-DSA. Line
23 of Algorithm 4 (and line 18 of Algorithm 5,resp.) describe domain separation for the HashMl-DSA
variant.
*/
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.derive_message_representative
with types libcrux_ml_dsa_hash_functions_portable_Shake256Xof
with const generics
*/
void
libcrux_ml_dsa_ml_dsa_generic_derive_message_representative_43(
Eurydice_borrow_slice_u8 verification_key_hash,
const core_option_Option_84 *domain_separation_context,
Eurydice_borrow_slice_u8 message,
Eurydice_arr_c7 *message_representative
);
/**
A monomorphic instance of libcrux_ml_dsa.hash_functions.portable.shake256
with const generics
- OUTPUT_LENGTH= 576
*/
void
libcrux_ml_dsa_hash_functions_portable_shake256_5a(
Eurydice_borrow_slice_u8 input,
Eurydice_arr_220 *out
);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake256::XofX4 for libcrux_ml_dsa::hash_functions::portable::Shake256X4}
*/
/**
A monomorphic instance of libcrux_ml_dsa.hash_functions.portable.shake256_x4_9b
with const generics
- OUT_LEN= 576
*/
void
libcrux_ml_dsa_hash_functions_portable_shake256_x4_9b_5a(
Eurydice_borrow_slice_u8 input0,
Eurydice_borrow_slice_u8 input1,
Eurydice_borrow_slice_u8 input2,
Eurydice_borrow_slice_u8 input3,
Eurydice_arr_220 *out0,
Eurydice_arr_220 *out1,
Eurydice_arr_220 *out2,
Eurydice_arr_220 *out3
);
/**
A monomorphic instance of libcrux_ml_dsa.hash_functions.portable.shake256
with const generics
- OUTPUT_LENGTH= 640
*/
void
libcrux_ml_dsa_hash_functions_portable_shake256_0e(
Eurydice_borrow_slice_u8 input,
Eurydice_arr_20 *out
);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake256::XofX4 for libcrux_ml_dsa::hash_functions::portable::Shake256X4}
*/
/**
A monomorphic instance of libcrux_ml_dsa.hash_functions.portable.shake256_x4_9b
with const generics
- OUT_LEN= 640
*/
void
libcrux_ml_dsa_hash_functions_portable_shake256_x4_9b_0e(
Eurydice_borrow_slice_u8 input0,
Eurydice_borrow_slice_u8 input1,
Eurydice_borrow_slice_u8 input2,
Eurydice_borrow_slice_u8 input3,
Eurydice_arr_20 *out0,
Eurydice_arr_20 *out1,
Eurydice_arr_20 *out2,
Eurydice_arr_20 *out3
);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake256::DsaXof for libcrux_ml_dsa::hash_functions::portable::Shake256}
*/
/**
A monomorphic instance of libcrux_ml_dsa.hash_functions.portable.shake256_61
with const generics
- OUTPUT_LENGTH= 640
*/
void
libcrux_ml_dsa_hash_functions_portable_shake256_61_0e(
Eurydice_borrow_slice_u8 input,
Eurydice_arr_20 *out
);
/**
This function found in impl {libcrux_ml_dsa::hash_functions::shake256::DsaXof for libcrux_ml_dsa::hash_functions::portable::Shake256}
*/
/**
A monomorphic instance of libcrux_ml_dsa.hash_functions.portable.shake256_61
with const generics
- OUTPUT_LENGTH= 576
*/
void
libcrux_ml_dsa_hash_functions_portable_shake256_61_5a(
Eurydice_borrow_slice_u8 input,
Eurydice_arr_220 *out
);
/**
A monomorphic instance of libcrux_ml_dsa.sample.sample_mask_ring_element
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_hash_functions_portable_Shake256
with const generics
*/
void
libcrux_ml_dsa_sample_sample_mask_ring_element_2e(
const Eurydice_arr_91 *seed,
Eurydice_arr_a3 *result,
size_t gamma1_exponent
);
/**
A monomorphic instance of libcrux_ml_dsa.sample.sample_mask_vector
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256X4
with const generics
*/
void
libcrux_ml_dsa_sample_sample_mask_vector_67(
size_t dimension,
size_t gamma1_exponent,
const Eurydice_arr_c7 *seed,
uint16_t *domain_separator,
Eurydice_dst_ref_mut_44 mask
);
/**
A monomorphic instance of libcrux_ml_dsa.sample.sample_challenge_ring_element
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_hash_functions_portable_Shake256
with const generics
*/
void
libcrux_ml_dsa_sample_sample_challenge_ring_element_2e(
Eurydice_borrow_slice_u8 seed,
size_t number_of_ones,
Eurydice_arr_a3 *re
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_44.sign_internal
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4
with const generics
*/
core_result_Result_53
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_44_sign_internal_5a(
Eurydice_borrow_slice_u8 signing_key,
Eurydice_borrow_slice_u8 message,
core_option_Option_84 domain_separation_context,
Eurydice_arr_ec randomness,
Eurydice_arr_85 *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_44.sign_mut
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4
with const generics
*/
core_result_Result_53
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_44_sign_mut_5a(
Eurydice_borrow_slice_u8 signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_arr_ec randomness,
Eurydice_arr_85 *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_44.sign
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4
with const generics
*/
core_result_Result_48
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_44_sign_5a(
Eurydice_borrow_slice_u8 signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_arr_ec randomness
);
/**
Sign.
*/
core_result_Result_48
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_44_sign(
const Eurydice_arr_10 *signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_arr_ec randomness
);
/**
Sign.
*/
core_result_Result_53
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_44_sign_mut(
const Eurydice_arr_10 *signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_arr_ec randomness,
Eurydice_arr_85 *signature
);
/**
This function found in impl {libcrux_ml_dsa::pre_hash::PreHash for libcrux_ml_dsa::pre_hash::SHAKE128_PH}
*/
/**
A monomorphic instance of libcrux_ml_dsa.pre_hash.hash_30
with types libcrux_ml_dsa_hash_functions_portable_Shake128
with const generics
*/
void
libcrux_ml_dsa_pre_hash_hash_30_83(
Eurydice_borrow_slice_u8 message,
Eurydice_mut_borrow_slice_u8 output
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_44.sign_pre_hashed_mut
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4, libcrux_ml_dsa_pre_hash_SHAKE128_PH
with const generics
*/
core_result_Result_53
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_44_sign_pre_hashed_mut_3f(
Eurydice_borrow_slice_u8 signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_mut_borrow_slice_u8 pre_hash_buffer,
Eurydice_arr_ec randomness,
Eurydice_arr_85 *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_44.sign_pre_hashed
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4, libcrux_ml_dsa_pre_hash_SHAKE128_PH
with const generics
*/
core_result_Result_48
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_44_sign_pre_hashed_3f(
Eurydice_borrow_slice_u8 signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_mut_borrow_slice_u8 pre_hash_buffer,
Eurydice_arr_ec randomness
);
/**
Sign (pre-hashed).
*/
core_result_Result_48
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_44_sign_pre_hashed_shake128(
const Eurydice_arr_10 *signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_mut_borrow_slice_u8 pre_hash_buffer,
Eurydice_arr_ec randomness
);
/**
The internal verification API.
If no `domain_separation_context` is supplied, it is assumed that
`message` already contains the domain separation.
*/
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_44.verify_internal
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof
with const generics
*/
core_result_Result_41
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_44_verify_internal_5a(
const Eurydice_arr_02 *verification_key,
Eurydice_borrow_slice_u8 message,
core_option_Option_84 domain_separation_context,
const Eurydice_arr_85 *signature_serialized
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_44.verify
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof
with const generics
*/
core_result_Result_41
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_44_verify_5a(
const Eurydice_arr_02 *verification_key_serialized,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
const Eurydice_arr_85 *signature_serialized
);
/**
Verify.
*/
core_result_Result_41
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_44_verify(
const Eurydice_arr_02 *verification_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
const Eurydice_arr_85 *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_44.verify_pre_hashed
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_pre_hash_SHAKE128_PH
with const generics
*/
core_result_Result_41
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_44_verify_pre_hashed_3f(
const Eurydice_arr_02 *verification_key_serialized,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_mut_borrow_slice_u8 pre_hash_buffer,
const Eurydice_arr_85 *signature_serialized
);
/**
Verify (pre-hashed with SHAKE-128).
*/
core_result_Result_41
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_44_verify_pre_hashed_shake128(
const Eurydice_arr_02 *verification_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_mut_borrow_slice_u8 pre_hash_buffer,
const Eurydice_arr_85 *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_65.generate_key_pair
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4
with const generics
*/
void
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_65_generate_key_pair_5a(
Eurydice_arr_ec randomness,
Eurydice_mut_borrow_slice_u8 signing_key,
Eurydice_mut_borrow_slice_u8 verification_key
);
/**
Generate key pair.
*/
void
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_65_generate_key_pair(
Eurydice_arr_ec randomness,
Eurydice_arr_24 *signing_key,
Eurydice_arr_29 *verification_key
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_65.sign_internal
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4
with const generics
*/
core_result_Result_53
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_65_sign_internal_5a(
Eurydice_borrow_slice_u8 signing_key,
Eurydice_borrow_slice_u8 message,
core_option_Option_84 domain_separation_context,
Eurydice_arr_ec randomness,
Eurydice_arr_0c *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_65.sign_mut
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4
with const generics
*/
core_result_Result_53
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_65_sign_mut_5a(
Eurydice_borrow_slice_u8 signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_arr_ec randomness,
Eurydice_arr_0c *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_65.sign
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4
with const generics
*/
core_result_Result_8c
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_65_sign_5a(
Eurydice_borrow_slice_u8 signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_arr_ec randomness
);
/**
Sign.
*/
core_result_Result_8c
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_65_sign(
const Eurydice_arr_24 *signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_arr_ec randomness
);
/**
Sign.
*/
core_result_Result_53
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_65_sign_mut(
const Eurydice_arr_24 *signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_arr_ec randomness,
Eurydice_arr_0c *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_65.sign_pre_hashed_mut
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4, libcrux_ml_dsa_pre_hash_SHAKE128_PH
with const generics
*/
core_result_Result_53
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_65_sign_pre_hashed_mut_3f(
Eurydice_borrow_slice_u8 signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_mut_borrow_slice_u8 pre_hash_buffer,
Eurydice_arr_ec randomness,
Eurydice_arr_0c *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_65.sign_pre_hashed
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4, libcrux_ml_dsa_pre_hash_SHAKE128_PH
with const generics
*/
core_result_Result_8c
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_65_sign_pre_hashed_3f(
Eurydice_borrow_slice_u8 signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_mut_borrow_slice_u8 pre_hash_buffer,
Eurydice_arr_ec randomness
);
/**
Sign (pre-hashed).
*/
core_result_Result_8c
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_65_sign_pre_hashed_shake128(
const Eurydice_arr_24 *signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_mut_borrow_slice_u8 pre_hash_buffer,
Eurydice_arr_ec randomness
);
/**
The internal verification API.
If no `domain_separation_context` is supplied, it is assumed that
`message` already contains the domain separation.
*/
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_65.verify_internal
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof
with const generics
*/
core_result_Result_41
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_65_verify_internal_5a(
const Eurydice_arr_29 *verification_key,
Eurydice_borrow_slice_u8 message,
core_option_Option_84 domain_separation_context,
const Eurydice_arr_0c *signature_serialized
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_65.verify
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof
with const generics
*/
core_result_Result_41
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_65_verify_5a(
const Eurydice_arr_29 *verification_key_serialized,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
const Eurydice_arr_0c *signature_serialized
);
/**
Verify.
*/
core_result_Result_41
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_65_verify(
const Eurydice_arr_29 *verification_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
const Eurydice_arr_0c *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_65.verify_pre_hashed
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_pre_hash_SHAKE128_PH
with const generics
*/
core_result_Result_41
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_65_verify_pre_hashed_3f(
const Eurydice_arr_29 *verification_key_serialized,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_mut_borrow_slice_u8 pre_hash_buffer,
const Eurydice_arr_0c *signature_serialized
);
/**
Verify (pre-hashed with SHAKE-128).
*/
core_result_Result_41
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_65_verify_pre_hashed_shake128(
const Eurydice_arr_29 *verification_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_mut_borrow_slice_u8 pre_hash_buffer,
const Eurydice_arr_0c *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_87.generate_key_pair
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4
with const generics
*/
void
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_87_generate_key_pair_5a(
Eurydice_arr_ec randomness,
Eurydice_mut_borrow_slice_u8 signing_key,
Eurydice_mut_borrow_slice_u8 verification_key
);
/**
Generate key pair.
*/
void
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_87_generate_key_pair(
Eurydice_arr_ec randomness,
Eurydice_arr_e2 *signing_key,
Eurydice_arr_43 *verification_key
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_87.sign_internal
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4
with const generics
*/
core_result_Result_53
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_87_sign_internal_5a(
Eurydice_borrow_slice_u8 signing_key,
Eurydice_borrow_slice_u8 message,
core_option_Option_84 domain_separation_context,
Eurydice_arr_ec randomness,
Eurydice_arr_93 *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_87.sign_mut
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4
with const generics
*/
core_result_Result_53
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_87_sign_mut_5a(
Eurydice_borrow_slice_u8 signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_arr_ec randomness,
Eurydice_arr_93 *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_87.sign
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4
with const generics
*/
core_result_Result_8b
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_87_sign_5a(
Eurydice_borrow_slice_u8 signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_arr_ec randomness
);
/**
Sign.
*/
core_result_Result_8b
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_87_sign(
const Eurydice_arr_e2 *signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_arr_ec randomness
);
/**
Sign.
*/
core_result_Result_53
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_87_sign_mut(
const Eurydice_arr_e2 *signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_arr_ec randomness,
Eurydice_arr_93 *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_87.sign_pre_hashed_mut
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4, libcrux_ml_dsa_pre_hash_SHAKE128_PH
with const generics
*/
core_result_Result_53
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_87_sign_pre_hashed_mut_3f(
Eurydice_borrow_slice_u8 signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_mut_borrow_slice_u8 pre_hash_buffer,
Eurydice_arr_ec randomness,
Eurydice_arr_93 *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_87.sign_pre_hashed
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_hash_functions_portable_Shake256X4, libcrux_ml_dsa_pre_hash_SHAKE128_PH
with const generics
*/
core_result_Result_8b
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_87_sign_pre_hashed_3f(
Eurydice_borrow_slice_u8 signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_mut_borrow_slice_u8 pre_hash_buffer,
Eurydice_arr_ec randomness
);
/**
Sign (pre-hashed).
*/
core_result_Result_8b
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_87_sign_pre_hashed_shake128(
const Eurydice_arr_e2 *signing_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_mut_borrow_slice_u8 pre_hash_buffer,
Eurydice_arr_ec randomness
);
/**
The internal verification API.
If no `domain_separation_context` is supplied, it is assumed that
`message` already contains the domain separation.
*/
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_87.verify_internal
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof
with const generics
*/
core_result_Result_41
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_87_verify_internal_5a(
const Eurydice_arr_43 *verification_key,
Eurydice_borrow_slice_u8 message,
core_option_Option_84 domain_separation_context,
const Eurydice_arr_93 *signature_serialized
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_87.verify
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof
with const generics
*/
core_result_Result_41
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_87_verify_5a(
const Eurydice_arr_43 *verification_key_serialized,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
const Eurydice_arr_93 *signature_serialized
);
/**
Verify.
*/
core_result_Result_41
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_87_verify(
const Eurydice_arr_43 *verification_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
const Eurydice_arr_93 *signature
);
/**
A monomorphic instance of libcrux_ml_dsa.ml_dsa_generic.ml_dsa_87.verify_pre_hashed
with types libcrux_ml_dsa_simd_portable_vector_type_Coefficients, libcrux_ml_dsa_samplex4_portable_PortableSampler, libcrux_ml_dsa_hash_functions_portable_Shake128, libcrux_ml_dsa_hash_functions_portable_Shake128X4, libcrux_ml_dsa_hash_functions_portable_Shake256, libcrux_ml_dsa_hash_functions_portable_Shake256Xof, libcrux_ml_dsa_pre_hash_SHAKE128_PH
with const generics
*/
core_result_Result_41
libcrux_ml_dsa_ml_dsa_generic_ml_dsa_87_verify_pre_hashed_3f(
const Eurydice_arr_43 *verification_key_serialized,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_mut_borrow_slice_u8 pre_hash_buffer,
const Eurydice_arr_93 *signature_serialized
);
/**
Verify (pre-hashed with SHAKE-128).
*/
core_result_Result_41
libcrux_ml_dsa_ml_dsa_generic_instantiations_portable_ml_dsa_87_verify_pre_hashed_shake128(
const Eurydice_arr_43 *verification_key,
Eurydice_borrow_slice_u8 message,
Eurydice_borrow_slice_u8 context,
Eurydice_mut_borrow_slice_u8 pre_hash_buffer,
const Eurydice_arr_93 *signature
);
#if defined(__cplusplus)
}
#endif
#define libcrux_mldsa_portable_H_DEFINED
#endif /* libcrux_mldsa_portable_H */