mldsa-native
mldsa-native copied to clipboard
Port: Hoist default C backend into separate functions
- Related: #607
- Blocks: #470
- Reference from mlkem-native: https://github.com/pq-code-package/mlkem-native/pull/1195
We have completed PR #607. The next step is to separate the C backend functions.
The following is the plan for this issue:
-
Purpose: this porting aims to separate the native backend functions into two sets: fallback C functions and native functions.
-
Steps: This task is based on the runtime-dispatch PR #607.
- The following functions will be touched:
-
mld_ntt_native,mld_intt_native,mld_poly_permute_bitrev_to_custom -
mld_rej_uniform_native,mld_rej_uniform_eta2_native,mld_rej_uniform_eta4_native -
mld_poly_decompose_32_native,mld_poly_decompose_88_native -
mld_poly_caddq_native -
mld_poly_use_hint_32_native,mld_poly_use_hint_88_native -
mld_poly_chknorm -
mld_polyz_unpack_17_native,mld_polyz_unpack_19_native -
mld_poly_pointwise_montgomery_native -
mld_polyvecl_pointwise_acc_montgomery_l4_native,l5_native,l7_native -
FIPS202:
-
mld_keccak_f1600_x1_native -
mld_keccak_f1600_x4_native[x2_v84a] -
mld_keccak_f1600_x4_native[x4_v8a] -
mld_keccak_f1600_x4_native[x4_v8a_v84a] -
mld_keccakf1600x4_permute
-
-
- The following functions will be touched:
Note: If any new C functions are created during this task, corresponding CBMC proof contracts should also be implemented.
- Tests
- Run test scripts with all argument variations, using both
static ONandOFFconfigurations. - Run
quickcheckwith different configurations (static ONandOFF). - Perform CBMC proof tests for each new C function.
- Run test scripts with all argument variations, using both