Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
efc5431
fst
karthikbhargavan Jan 23, 2025
631a7dd
fst
karthikbhargavan Jan 23, 2025
848fd4c
Merge branch 'transparent-integers' into simd-scaffolding-746
karthikbhargavan Jan 23, 2025
f792694
traits update
karthikbhargavan Jan 24, 2025
8c27e56
Merge branch 'main' into simd-scaffolding-746
karthikbhargavan Jan 30, 2025
c0645f3
working version
karthikbhargavan Jan 31, 2025
6668e67
traits preconditions
karthikbhargavan Feb 3, 2025
9680dc6
fmt
karthikbhargavan Feb 3, 2025
5689861
fixed hax-lib
karthikbhargavan Feb 3, 2025
bc3f187
Merge branch 'main' into simd-scaffolding-746
karthikbhargavan Feb 8, 2025
f77c4a2
trying prop
karthikbhargavan Feb 11, 2025
19ba596
ml-dsa with prop
karthikbhargavan Feb 13, 2025
ee139ce
fix for prop predicates
karthikbhargavan Feb 14, 2025
b0e9d4a
shorter proofs for commitment
karthikbhargavan Feb 14, 2025
7abe932
Merge branch 'main' into simd-scaffolding-746
karthikbhargavan Feb 15, 2025
14cf58b
progress on using trait preconditions
karthikbhargavan Feb 14, 2025
44efe1c
fixes
karthikbhargavan Feb 18, 2025
5b398f3
hax lib
karthikbhargavan Feb 18, 2025
1c9b503
Merge branch 'main' into simd-scaffolding-746
karthikbhargavan Feb 19, 2025
4411a34
fixes for eurydice
karthikbhargavan Feb 19, 2025
2891125
fixes for eurydice
karthikbhargavan Feb 19, 2025
c1c5844
repr hide
karthikbhargavan Feb 19, 2025
7132e3f
c code
karthikbhargavan Feb 19, 2025
3d14a8e
Merge branch 'main' into simd-scaffolding-746
karthikbhargavan Feb 19, 2025
f739ef6
c refresh
karthikbhargavan Feb 19, 2025
0af71f2
c code for ml-kem
karthikbhargavan Feb 19, 2025
ede10cc
fstar refresh
karthikbhargavan Feb 19, 2025
fbfabd9
Merge branch 'main' into simd-scaffolding-746
karthikbhargavan Feb 20, 2025
71756b2
c code refresh
karthikbhargavan Feb 20, 2025
9a3c481
fstar code refresh
karthikbhargavan Feb 20, 2025
ad4f692
Merge branch 'main' into simd-scaffolding-746
karthikbhargavan Feb 20, 2025
cd22855
refresh c code
karthikbhargavan Feb 20, 2025
f6e7204
link to rand-core-traits
karthikbhargavan Feb 21, 2025
f6cbc23
root Cargo.toml
karthikbhargavan Feb 21, 2025
7421a05
Merge branch 'main' into simd-scaffolding-746
karthikbhargavan Feb 21, 2025
cf2dadf
cargo points to main
karthikbhargavan Feb 21, 2025
36c0e2a
Merge branch 'main' into simd-scaffolding-746
karthikbhargavan Feb 21, 2025
291d865
moved trait pre-post conditions into a new module`
karthikbhargavan Feb 21, 2025
2adb590
regen
karthikbhargavan Feb 21, 2025
370d718
Merge branch 'main' into simd-scaffolding-746
karthikbhargavan Feb 21, 2025
2cceb34
regen
karthikbhargavan Feb 21, 2025
8e24e25
specs
karthikbhargavan Feb 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
module Libcrux_intrinsics.Arm64_extract
#set-options "--fuel 0 --ifuel 1 --z3rlimit 15"
#set-options "--fuel 0 --ifuel 1 --z3rlimit 80"
open Core
open FStar.Mul

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
module Libcrux_intrinsics.Arm64_extract
#set-options "--fuel 0 --ifuel 1 --z3rlimit 15"
#set-options "--fuel 0 --ifuel 1 --z3rlimit 80"
open Core
open FStar.Mul

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
module Libcrux_intrinsics.Avx2_extract
#set-options "--fuel 0 --ifuel 1 --z3rlimit 15"
#set-options "--fuel 0 --ifuel 1 --z3rlimit 80"
open Core
open FStar.Mul

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
module Libcrux_intrinsics.Avx2_extract
#set-options "--fuel 0 --ifuel 1 --z3rlimit 15"
#set-options "--fuel 0 --ifuel 1 --z3rlimit 80"
open Core
open FStar.Mul

Expand Down
2 changes: 1 addition & 1 deletion libcrux-ml-dsa/cg/code_gen.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ Charon: a8f2211d1b95e0462a96382023b164a4116c7ca4
Eurydice: 60f543ddc60a777138070968daaf7620ec48170d
Karamel: 1d81d757d5d9e16dd6463ccc72324e587c707959
F*: 7cd06c5562fc47ec14cd35c38034d5558a5ff762
Libcrux: b58bd8d411ef8bf85b51f5d0233854517147f423
Libcrux: 370d71828112dbf0ad53a8995502ff1e5c8a719c
2 changes: 1 addition & 1 deletion libcrux-ml-dsa/cg/header.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@
* Eurydice: 60f543ddc60a777138070968daaf7620ec48170d
* Karamel: 1d81d757d5d9e16dd6463ccc72324e587c707959
* F*: 7cd06c5562fc47ec14cd35c38034d5558a5ff762
* Libcrux: b58bd8d411ef8bf85b51f5d0233854517147f423
* Libcrux: 370d71828112dbf0ad53a8995502ff1e5c8a719c
*/
2 changes: 1 addition & 1 deletion libcrux-ml-dsa/cg/libcrux_core.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* Eurydice: 60f543ddc60a777138070968daaf7620ec48170d
* Karamel: 1d81d757d5d9e16dd6463ccc72324e587c707959
* F*: 7cd06c5562fc47ec14cd35c38034d5558a5ff762
* Libcrux: b58bd8d411ef8bf85b51f5d0233854517147f423
* Libcrux: 370d71828112dbf0ad53a8995502ff1e5c8a719c
*/

#ifndef __libcrux_core_H
Expand Down
2 changes: 1 addition & 1 deletion libcrux-ml-dsa/cg/libcrux_mldsa65_avx2.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* Eurydice: 60f543ddc60a777138070968daaf7620ec48170d
* Karamel: 1d81d757d5d9e16dd6463ccc72324e587c707959
* F*: 7cd06c5562fc47ec14cd35c38034d5558a5ff762
* Libcrux: b58bd8d411ef8bf85b51f5d0233854517147f423
* Libcrux: 370d71828112dbf0ad53a8995502ff1e5c8a719c
*/

#ifndef __libcrux_mldsa65_avx2_H
Expand Down
95 changes: 37 additions & 58 deletions libcrux-ml-dsa/cg/libcrux_mldsa65_portable.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* Eurydice: 60f543ddc60a777138070968daaf7620ec48170d
* Karamel: 1d81d757d5d9e16dd6463ccc72324e587c707959
* F*: 7cd06c5562fc47ec14cd35c38034d5558a5ff762
* Libcrux: b58bd8d411ef8bf85b51f5d0233854517147f423
* Libcrux: 370d71828112dbf0ad53a8995502ff1e5c8a719c
*/

#ifndef __libcrux_mldsa65_portable_H
Expand Down Expand Up @@ -1661,73 +1661,52 @@ static inline void libcrux_ml_dsa_simd_portable_gamma1_deserialize_e9(
gamma1_exponent);
}

static KRML_MUSTINLINE uint8_t
libcrux_ml_dsa_simd_portable_encoding_commitment_encode_4(
Eurydice_slice coefficients) {
uint8_t coefficient0 = (uint8_t)Eurydice_slice_index(coefficients, (size_t)0U,
int32_t, int32_t *);
uint8_t coefficient1 = (uint8_t)Eurydice_slice_index(coefficients, (size_t)1U,
int32_t, int32_t *);
return (uint32_t)coefficient1 << 4U | (uint32_t)coefficient0;
}

static KRML_MUSTINLINE void
libcrux_ml_dsa_simd_portable_encoding_commitment_serialize_4(
libcrux_ml_dsa_simd_portable_vector_type_Coefficients *simd_unit,
Eurydice_slice serialized) {
for (size_t i = (size_t)0U;
i < Eurydice_slice_len(
Eurydice_array_to_slice((size_t)8U, simd_unit->values, int32_t),
int32_t) /
(size_t)2U;
i++) {
size_t i0 = i;
Eurydice_slice coefficients =
Eurydice_array_to_subslice2(simd_unit->values, i0 * (size_t)2U,
i0 * (size_t)2U + (size_t)2U, int32_t);
Eurydice_slice_index(serialized, i0, uint8_t, uint8_t *) =
libcrux_ml_dsa_simd_portable_encoding_commitment_encode_4(coefficients);
}
}

static KRML_MUSTINLINE void
libcrux_ml_dsa_simd_portable_encoding_commitment_encode_6(
Eurydice_slice coefficients, Eurydice_slice bytes) {
uint8_t coefficient0 = (uint8_t)Eurydice_slice_index(coefficients, (size_t)0U,
int32_t, int32_t *);
uint8_t coefficient1 = (uint8_t)Eurydice_slice_index(coefficients, (size_t)1U,
int32_t, int32_t *);
uint8_t coefficient2 = (uint8_t)Eurydice_slice_index(coefficients, (size_t)2U,
int32_t, int32_t *);
uint8_t coefficient3 = (uint8_t)Eurydice_slice_index(coefficients, (size_t)3U,
int32_t, int32_t *);
uint8_t byte0 = (uint32_t)coefficient1 << 6U | (uint32_t)coefficient0;
uint8_t byte1 = (uint32_t)coefficient2 << 4U | (uint32_t)coefficient1 >> 2U;
uint8_t byte2 = (uint32_t)coefficient3 << 2U | (uint32_t)coefficient2 >> 4U;
Eurydice_slice_index(bytes, (size_t)0U, uint8_t, uint8_t *) = byte0;
Eurydice_slice_index(bytes, (size_t)1U, uint8_t, uint8_t *) = byte1;
Eurydice_slice_index(bytes, (size_t)2U, uint8_t, uint8_t *) = byte2;
uint8_t coefficient0 = (uint8_t)simd_unit->values[0U];
uint8_t coefficient1 = (uint8_t)simd_unit->values[1U];
uint8_t coefficient2 = (uint8_t)simd_unit->values[2U];
uint8_t coefficient3 = (uint8_t)simd_unit->values[3U];
uint8_t coefficient4 = (uint8_t)simd_unit->values[4U];
uint8_t coefficient5 = (uint8_t)simd_unit->values[5U];
uint8_t coefficient6 = (uint8_t)simd_unit->values[6U];
uint8_t coefficient7 = (uint8_t)simd_unit->values[7U];
uint8_t byte0 = (uint32_t)coefficient1 << 4U | (uint32_t)coefficient0;
uint8_t byte1 = (uint32_t)coefficient3 << 4U | (uint32_t)coefficient2;
uint8_t byte2 = (uint32_t)coefficient5 << 4U | (uint32_t)coefficient4;
uint8_t byte3 = (uint32_t)coefficient7 << 4U | (uint32_t)coefficient6;
Eurydice_slice_index(serialized, (size_t)0U, uint8_t, uint8_t *) = byte0;
Eurydice_slice_index(serialized, (size_t)1U, uint8_t, uint8_t *) = byte1;
Eurydice_slice_index(serialized, (size_t)2U, uint8_t, uint8_t *) = byte2;
Eurydice_slice_index(serialized, (size_t)3U, uint8_t, uint8_t *) = byte3;
}

static KRML_MUSTINLINE void
libcrux_ml_dsa_simd_portable_encoding_commitment_serialize_6(
libcrux_ml_dsa_simd_portable_vector_type_Coefficients *simd_unit,
Eurydice_slice serialized) {
for (size_t i = (size_t)0U;
i < Eurydice_slice_len(
Eurydice_array_to_slice((size_t)8U, simd_unit->values, int32_t),
int32_t) /
(size_t)4U;
i++) {
size_t i0 = i;
Eurydice_slice coefficients =
Eurydice_array_to_subslice2(simd_unit->values, i0 * (size_t)4U,
i0 * (size_t)4U + (size_t)4U, int32_t);
libcrux_ml_dsa_simd_portable_encoding_commitment_encode_6(
coefficients,
Eurydice_slice_subslice2(serialized, (size_t)3U * i0,
(size_t)3U * i0 + (size_t)3U, uint8_t));
}
uint8_t coefficient0 = (uint8_t)simd_unit->values[0U];
uint8_t coefficient1 = (uint8_t)simd_unit->values[1U];
uint8_t coefficient2 = (uint8_t)simd_unit->values[2U];
uint8_t coefficient3 = (uint8_t)simd_unit->values[3U];
uint8_t coefficient4 = (uint8_t)simd_unit->values[4U];
uint8_t coefficient5 = (uint8_t)simd_unit->values[5U];
uint8_t coefficient6 = (uint8_t)simd_unit->values[6U];
uint8_t coefficient7 = (uint8_t)simd_unit->values[7U];
uint8_t byte0 = (uint32_t)coefficient1 << 6U | (uint32_t)coefficient0;
uint8_t byte1 = (uint32_t)coefficient2 << 4U | (uint32_t)coefficient1 >> 2U;
uint8_t byte2 = (uint32_t)coefficient3 << 2U | (uint32_t)coefficient2 >> 4U;
uint8_t byte3 = (uint32_t)coefficient5 << 6U | (uint32_t)coefficient4;
uint8_t byte4 = (uint32_t)coefficient6 << 4U | (uint32_t)coefficient5 >> 2U;
uint8_t byte5 = (uint32_t)coefficient7 << 2U | (uint32_t)coefficient6 >> 4U;
Eurydice_slice_index(serialized, (size_t)0U, uint8_t, uint8_t *) = byte0;
Eurydice_slice_index(serialized, (size_t)1U, uint8_t, uint8_t *) = byte1;
Eurydice_slice_index(serialized, (size_t)2U, uint8_t, uint8_t *) = byte2;
Eurydice_slice_index(serialized, (size_t)3U, uint8_t, uint8_t *) = byte3;
Eurydice_slice_index(serialized, (size_t)4U, uint8_t, uint8_t *) = byte4;
Eurydice_slice_index(serialized, (size_t)5U, uint8_t, uint8_t *) = byte5;
}

static KRML_MUSTINLINE void
Expand Down
2 changes: 1 addition & 1 deletion libcrux-ml-dsa/cg/libcrux_sha3_avx2.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* Eurydice: 60f543ddc60a777138070968daaf7620ec48170d
* Karamel: 1d81d757d5d9e16dd6463ccc72324e587c707959
* F*: 7cd06c5562fc47ec14cd35c38034d5558a5ff762
* Libcrux: b58bd8d411ef8bf85b51f5d0233854517147f423
* Libcrux: 370d71828112dbf0ad53a8995502ff1e5c8a719c
*/

#ifndef __libcrux_sha3_avx2_H
Expand Down
2 changes: 1 addition & 1 deletion libcrux-ml-dsa/cg/libcrux_sha3_portable.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* Eurydice: 60f543ddc60a777138070968daaf7620ec48170d
* Karamel: 1d81d757d5d9e16dd6463ccc72324e587c707959
* F*: 7cd06c5562fc47ec14cd35c38034d5558a5ff762
* Libcrux: b58bd8d411ef8bf85b51f5d0233854517147f423
* Libcrux: 370d71828112dbf0ad53a8995502ff1e5c8a719c
*/

#ifndef __libcrux_sha3_portable_H
Expand Down
4 changes: 2 additions & 2 deletions libcrux-ml-dsa/hax.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ def __call__(self, parser, args, values, option_string=None) -> None:
"-**::types::non_hax_impls::**",
]
include_str = " ".join(includes)
interface_include = "+**"
interface_include = "+** -libcrux_ml_dsa::simd::traits"
cargo_hax_into = [
"cargo",
"hax",
Expand Down Expand Up @@ -120,7 +120,7 @@ def __call__(self, parser, args, values, option_string=None) -> None:
admit_env = {}
if args.admit:
admit_env = {"OTHERFLAGS": "--admit_smt_queries true"}
shell(["make", "-C", "proofs/fstar/extraction/"], env=admit_env)
shell(["make", "-C", "proofs/fstar/extraction/", "-j4"], env=admit_env)
return None


Expand Down
Loading