Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ML-KEM] Merge verified code back to main #598

Draft
wants to merge 407 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
407 commits
Select commit Hold shift + click to select a range
1628ec4
Make avx2 arithmetic.rs compress.rs ntt.rs panic-free
mamonet Aug 26, 2024
e326838
wip
W95Psp Aug 26, 2024
2212e8c
more specs
karthikbhargavan Aug 26, 2024
1655f6e
merged
karthikbhargavan Aug 26, 2024
f623c89
merged
karthikbhargavan Aug 27, 2024
dad7a37
fstar
karthikbhargavan Aug 27, 2024
73c17b3
fixes
karthikbhargavan Aug 27, 2024
22a1ced
cleanup
karthikbhargavan Aug 27, 2024
b702c3f
verification is back
karthikbhargavan Aug 27, 2024
1012a58
attempts to restore c extraction
karthikbhargavan Aug 27, 2024
31e4417
Make avx2 sampling.rs panic-free
mamonet Aug 27, 2024
4f51921
Merge pull request #538 from cryspen/vector-spec
karthikbhargavan Aug 27, 2024
57b2977
wip
W95Psp Aug 27, 2024
2a5a84e
wip, working tactic
W95Psp Aug 27, 2024
3e71e68
cca
karthikbhargavan Aug 27, 2024
b03baf1
decap to lax
karthikbhargavan Aug 27, 2024
1ecfc74
decap panic free
karthikbhargavan Aug 27, 2024
293f3b5
c code
karthikbhargavan Aug 27, 2024
9201ec6
refreshed c and fstar
karthikbhargavan Aug 27, 2024
084040f
Merge pull request #541 from cryspen/dev-ind-cca-fix
karthikbhargavan Aug 27, 2024
b934c24
wip
W95Psp Aug 28, 2024
48fad7e
more
W95Psp Aug 28, 2024
e43bc13
Merge branch 'dev' into lf-more-serialize-proofs
W95Psp Aug 28, 2024
aaafdfc
norm array_of_list
W95Psp Aug 29, 2024
d1bbc2a
reduce f_elements
W95Psp Aug 30, 2024
b528d43
math proofs
karthikbhargavan Aug 30, 2024
84795a2
Update serialize.rs
mamonet Aug 30, 2024
3a21d67
verif
karthikbhargavan Aug 30, 2024
e46edf3
Update and improve `Makefile`s
W95Psp Aug 30, 2024
0fb14cb
Reintroduce BitVecEq from previous proofs
W95Psp Aug 30, 2024
8feb781
intro tactic library to do hybrid norm/rewrite inside terms
W95Psp Aug 30, 2024
47177fe
Kill `let mut`, use array literal instead
W95Psp Aug 30, 2024
77fe334
Serialization pre/post in vector/traits.rs + spec in *Math.fst
W95Psp Aug 30, 2024
37cab51
hax
karthikbhargavan Aug 30, 2024
7cd7a08
c code
karthikbhargavan Aug 30, 2024
2e5a142
gitignore
W95Psp Aug 30, 2024
ff0e6ad
intrinsics
W95Psp Aug 30, 2024
bfeeda3
partial proofs
W95Psp Aug 30, 2024
7c4e54b
avx2: serialize: manual proofs
W95Psp Aug 30, 2024
dd063cc
portable: serialize: manual proofs
W95Psp Aug 30, 2024
64a2732
makefile, more fixes
W95Psp Aug 30, 2024
bab1d08
c code
karthikbhargavan Aug 30, 2024
8d9d191
Merge pull request #548 from cryspen/dev-bounded-poly
karthikbhargavan Aug 30, 2024
0de2f94
stabilize ind-cca
karthikbhargavan Aug 30, 2024
a5eeb0b
Merge branch 'dev' into dev-arithmetic-proofs
karthikbhargavan Aug 30, 2024
bc45818
arith
karthikbhargavan Aug 31, 2024
7b03687
portable/arithmetic
karthikbhargavan Aug 31, 2024
b6cb1c4
avx2 arithmetic
karthikbhargavan Aug 31, 2024
8a8e806
Add lemmas for Portable serialize/deserialize functions
mamonet Aug 31, 2024
ea8f110
Comment out pre/post-conditions for serialize fun in vector/traits.rs
mamonet Aug 31, 2024
c8b2d7e
Fix return array in serialize_1
mamonet Aug 31, 2024
3635503
Fix fstar::replace for mm256_srli_epi16
mamonet Aug 31, 2024
10b4615
Update extracted F* files for intrinsics and ml-kem
mamonet Aug 31, 2024
89af067
wip
karthikbhargavan Aug 31, 2024
133225f
wip
karthikbhargavan Aug 31, 2024
56eed0a
verifying
karthikbhargavan Aug 31, 2024
ec6b25a
Merge pull request #550 from cryspen/lf-more-serilize-proofs-2
karthikbhargavan Aug 31, 2024
aa003c8
fmt
karthikbhargavan Aug 31, 2024
87ab89d
fstar feat
karthikbhargavan Aug 31, 2024
db6b548
Merge pull request #549 from cryspen/lf-tactics-serialize
karthikbhargavan Aug 31, 2024
894d5ee
arithmetic
karthikbhargavan Aug 31, 2024
11c8589
wip
karthikbhargavan Sep 1, 2024
33d08ed
Merge branch 'dev' into vector-spec-sampling-pf
karthikbhargavan Sep 2, 2024
0ad4043
Use z3refresh on tactic calls for serialize.rs
mamonet Sep 2, 2024
37d4f52
makefile: add a `SLOW_MODULES` variable
W95Psp Sep 2, 2024
61a2488
refreshed c code
karthikbhargavan Sep 2, 2024
38c246d
new eurydice_glue
karthikbhargavan Sep 2, 2024
985a794
Merge pull request #539 from cryspen/vector-spec-sampling-pf
karthikbhargavan Sep 2, 2024
579a042
mont spec
karthikbhargavan Sep 2, 2024
2689950
verified
karthikbhargavan Sep 2, 2024
e86a762
Merge branch 'dev' into dev-arithmetic-proofs
karthikbhargavan Sep 2, 2024
87f0789
z3 limits for montred
karthikbhargavan Sep 3, 2024
65df9ca
Add pre/post-conditions for portable serialize/deserialize
mamonet Sep 3, 2024
bfd737a
ntt
karthikbhargavan Sep 3, 2024
b7b237f
Update vector/avx2.rs
mamonet Sep 3, 2024
c04abb6
Remove unsafe code from include to avoid being rejected by hax.
maximebuyse Sep 3, 2024
481b7dc
Update MLKEM Makefile
mamonet Sep 3, 2024
24d98fb
Merge remote-tracking branch 'origin/dev' into lf-more-serialize-proofs
mamonet Sep 3, 2024
e945931
Update Cargo.lock
mamonet Sep 3, 2024
5bd655e
Remove unnecessary files
mamonet Sep 3, 2024
be21196
Remove unsafe code from include to avoid being rejected by hax.
maximebuyse Sep 3, 2024
3183572
Update MLKEM Makefile
mamonet Sep 3, 2024
cadb420
Merge branch 'dev-constant-time' of https://github.com/cryspen/libcru…
mamonet Sep 3, 2024
1b7fe71
ntt wip
karthikbhargavan Sep 3, 2024
b6df944
Merge pull request #551 from cryspen/lf-more-serialize-proofs
karthikbhargavan Sep 3, 2024
bd25135
Remove unsafe code from include to avoid being rejected by hax.
maximebuyse Sep 3, 2024
705320f
wip
W95Psp Sep 3, 2024
574a60b
feat: tactic: do nothing if smt queries are admitted
W95Psp Sep 3, 2024
16af53b
serialize
karthikbhargavan Sep 3, 2024
9be19e9
feat: tactic: do nothing if smt queries are admitted
W95Psp Sep 3, 2024
e6aa9af
Backport proof for compare in constant_time_ops
mamonet Sep 3, 2024
4b5a63b
Backport proofs for constant_time_ops.rs
mamonet Sep 3, 2024
7dc12e9
port
karthikbhargavan Sep 3, 2024
2d5878d
arith wip
karthikbhargavan Sep 4, 2024
af7a337
merged
karthikbhargavan Sep 4, 2024
9b026b5
merged
karthikbhargavan Sep 4, 2024
b01cd8c
Remove curly brackets from Tactics.GetBit.fst
mamonet Sep 4, 2024
a259ee4
Merge branch 'dev' into dev-constant-time
karthikbhargavan Sep 9, 2024
0907ca1
Mark functions at samplings.rs and serialize.rs as lax
mamonet Sep 9, 2024
3eb8ac8
Make two functions in sampling.rs panic-free
mamonet Sep 10, 2024
a8e27d4
Make remaining functions in sampling.rs panic-free
mamonet Sep 10, 2024
3ee84f3
Fix verifying ZETAS_TIMES_MONTGOMERY_R
mamonet Sep 10, 2024
2b4497b
wip
karthikbhargavan Sep 12, 2024
ef7dcf2
updated hax and fstar extraction
karthikbhargavan Sep 12, 2024
97fc0f7
cargo
karthikbhargavan Sep 12, 2024
5100963
cargo
karthikbhargavan Sep 12, 2024
5f60d88
removed new F* feature use
karthikbhargavan Sep 12, 2024
6284a1e
seq
karthikbhargavan Sep 12, 2024
e2a1da0
Merge pull request #570 from cryspen/dev-generic-cleanup
karthikbhargavan Sep 12, 2024
277b1ff
feat: tactic: do nothing if smt queries are admitted
W95Psp Sep 3, 2024
5cb76a3
fixing c extraction
karthikbhargavan Sep 12, 2024
3782ca7
regen
karthikbhargavan Sep 12, 2024
9799c05
workflow fix
karthikbhargavan Sep 12, 2024
26dc5e5
hax lib
karthikbhargavan Sep 12, 2024
b6d5636
cargo fix
karthikbhargavan Sep 12, 2024
89225f5
lock
karthikbhargavan Sep 12, 2024
1f4aea1
c code refresh
karthikbhargavan Sep 12, 2024
ae845b0
retry with pinned eurydice
karthikbhargavan Sep 12, 2024
2db9db9
updated intrin
karthikbhargavan Sep 12, 2024
c4afd33
updated intrin
karthikbhargavan Sep 12, 2024
0437f70
fix build and hax
karthikbhargavan Sep 13, 2024
831bd69
fixed glue for Some/None
karthikbhargavan Sep 13, 2024
2c21fef
Mark functions at samplings.rs and serialize.rs as lax
mamonet Sep 9, 2024
57b83e2
Make two functions in sampling.rs panic-free
karthikbhargavan Sep 13, 2024
aa958de
Make remaining functions in sampling.rs panic-free
mamonet Sep 10, 2024
14564df
Fix verifying ZETAS_TIMES_MONTGOMERY_R
karthikbhargavan Sep 13, 2024
367d23c
updated hax and fstar extraction
karthikbhargavan Sep 12, 2024
8d2620c
cargo
karthikbhargavan Sep 12, 2024
7519c45
cargo
karthikbhargavan Sep 12, 2024
505bead
removed new F* feature use
karthikbhargavan Sep 12, 2024
7e22223
seq
karthikbhargavan Sep 12, 2024
415ed4c
updated intrin
karthikbhargavan Sep 12, 2024
b4a143f
refresh
karthikbhargavan Sep 13, 2024
07c5cbc
glue diff
karthikbhargavan Sep 13, 2024
5c2056b
Merge branch 'dev' into fix-c-extraction
karthikbhargavan Sep 13, 2024
162bfef
glue diff
karthikbhargavan Sep 13, 2024
60f4457
glue diff
karthikbhargavan Sep 13, 2024
60edf67
fixed sha3 calls
karthikbhargavan Sep 13, 2024
e22fa84
diff
karthikbhargavan Sep 13, 2024
69e8501
fix for sha3 bench
karthikbhargavan Sep 13, 2024
a94aed7
Merge pull request #575 from cryspen/fix-c-extraction
karthikbhargavan Sep 13, 2024
1735cba
Merge branch 'dev' into dev-arithmetic-proofs
karthikbhargavan Sep 13, 2024
e757771
refreshed c and fstar
karthikbhargavan Sep 13, 2024
35b79f3
fixed spec utils
karthikbhargavan Sep 13, 2024
c67b8d8
polished proofs
karthikbhargavan Sep 13, 2024
1ac1f28
arith
karthikbhargavan Sep 13, 2024
3a99b2e
avx2 arithmetic propagate
karthikbhargavan Sep 13, 2024
0058af2
rlimit
karthikbhargavan Sep 13, 2024
fcd536f
poly
karthikbhargavan Sep 13, 2024
8e8d461
refresh
karthikbhargavan Sep 13, 2024
4f229b2
spec rlimit
karthikbhargavan Sep 13, 2024
149d519
wip
karthikbhargavan Sep 13, 2024
a5f2e75
portable arithmetic
karthikbhargavan Sep 13, 2024
da043be
Make ntt panic free
mamonet Sep 13, 2024
275e832
Make Invert_ntt panic free
mamonet Sep 14, 2024
5720ce5
avx2 arithmetic
karthikbhargavan Sep 14, 2024
abe0786
ntt wip
karthikbhargavan Sep 15, 2024
3b00cb4
wip
karthikbhargavan Sep 15, 2024
b878b9b
wip
karthikbhargavan Sep 15, 2024
042e808
wip
karthikbhargavan Sep 16, 2024
24e4a0d
wip
karthikbhargavan Sep 16, 2024
ca568c3
wip
karthikbhargavan Sep 16, 2024
c44ad6b
wip: more intrinsics
W95Psp Sep 16, 2024
fa71b36
Add conditions for generic compress and serialize functions
mamonet Sep 17, 2024
9ab86ed
Update F* files
mamonet Sep 17, 2024
774431c
fstar: avx2: serialize_4 basically works
W95Psp Sep 18, 2024
173821f
wip
karthikbhargavan Sep 18, 2024
e8928fc
ready to pr
karthikbhargavan Sep 18, 2024
81cec41
refreshed c
karthikbhargavan Sep 18, 2024
1e994bd
fmt
karthikbhargavan Sep 18, 2024
89f91b1
portable
karthikbhargavan Sep 18, 2024
5d35b6c
Merge pull request #589 from cryspen/dev-arithmetic-proofs
karthikbhargavan Sep 18, 2024
84773cc
Merge remote-tracking branch 'origin/dev' into dev-serialize
mamonet Sep 18, 2024
a0fca27
trait
karthikbhargavan Sep 18, 2024
645c229
wip
W95Psp Sep 19, 2024
f1a7d89
wip
W95Psp Sep 19, 2024
8e5530a
Merge branch 'dev' into lf-avx2-serialize-deserialize-4
W95Psp Sep 19, 2024
11cd991
fixes
W95Psp Sep 19, 2024
1afb5c2
regenerated F*
W95Psp Sep 19, 2024
48b0caa
Avx2.Serialize: verified
W95Psp Sep 19, 2024
d16265c
arith
karthikbhargavan Sep 19, 2024
2f27e11
spec
karthikbhargavan Sep 19, 2024
aaee079
fix specs
W95Psp Sep 19, 2024
0edeee6
Merge branch 'dev' into dev-arithmetic-proofs
karthikbhargavan Sep 19, 2024
f77fcb1
fix specs
W95Psp Sep 19, 2024
539638b
Merge pull request #591 from cryspen/dev-arithmetic-proofs
karthikbhargavan Sep 19, 2024
09cde63
Update Libcrux_ml_kem.Ind_cpa
mamonet Sep 21, 2024
0f5121e
verified
karthikbhargavan Sep 22, 2024
37d35d8
c code refresh
karthikbhargavan Sep 22, 2024
2cc5d08
boring C not working
karthikbhargavan Sep 22, 2024
2914855
Use opaque_to_smt to make serialize functions fast to verify
mamonet Sep 22, 2024
a0a7d89
Use `fold-enum-slice` hax branch
mamonet Sep 22, 2024
da48c5a
Merge remote-tracking branch 'origin/dev' into dev-serialize
mamonet Sep 22, 2024
737bf43
Use main branch of hax
mamonet Sep 23, 2024
c7c3b3e
Remove `use crate::vector::FIELD_MODULUS`
mamonet Sep 23, 2024
ec66aac
Update serialize.rs
mamonet Sep 23, 2024
aee4c5b
Update traits.rs
mamonet Sep 23, 2024
57abb85
update C code
franziskuskiefer Sep 23, 2024
3631be6
removed typeclass _super constraint
karthikbhargavan Sep 23, 2024
44af8ba
Mark to_unsigned_representative as lax
mamonet Sep 23, 2024
db5ff02
Merge remote-tracking branch 'origin/dev' into dev-constant-time
mamonet Sep 23, 2024
ab29fdc
traits
karthikbhargavan Sep 23, 2024
9468162
hax passes
karthikbhargavan Sep 23, 2024
4a21ab1
Merge pull request #593 from cryspen/ml-kem-merge-main
karthikbhargavan Sep 23, 2024
878e250
Merge branch 'main' into dev
karthikbhargavan Sep 24, 2024
5c647eb
Merge branch 'dev' into dev-serialize
karthikbhargavan Sep 24, 2024
9e07b1b
f* reextract
karthikbhargavan Sep 24, 2024
5971b69
c code refresh
karthikbhargavan Sep 24, 2024
bc1ba13
Add proofs for encapsulate/decapsulate in Ind_cca
mamonet Sep 24, 2024
ff16b9e
c regen
karthikbhargavan Sep 24, 2024
6758f5c
pinned versions
karthikbhargavan Sep 24, 2024
04a7e4f
Merge pull request #587 from cryspen/dev-serialize
karthikbhargavan Sep 24, 2024
6f38bb3
Merge remote-tracking branch 'origin/dev' into dev-constant-time
mamonet Sep 24, 2024
15d46eb
Add post-condition for entropy_preprocess
mamonet Sep 24, 2024
ff43a65
Merge branch 'dev' into dev-constant-time
karthikbhargavan Sep 24, 2024
970017b
fstar
karthikbhargavan Sep 24, 2024
b1ecb42
verifies
karthikbhargavan Sep 24, 2024
a1aebab
c code refresh
karthikbhargavan Sep 24, 2024
bc88361
Merge pull request #559 from cryspen/dev-constant-time
karthikbhargavan Sep 24, 2024
20e19ce
Merge remote-tracking branch 'origin/dev' into ntt-panic-free
mamonet Sep 25, 2024
d48d4d6
Make ind_cpar.rs panic-free
mamonet Sep 25, 2024
fc84fe8
progress
W95Psp Sep 25, 2024
2de5cca
Update ind_cpa and matrix
mamonet Sep 25, 2024
772653d
Update serialize.rs
mamonet Sep 25, 2024
096b016
progress
W95Psp Sep 25, 2024
99cef83
progress
W95Psp Sep 25, 2024
89cc0d5
wip
karthikbhargavan Sep 26, 2024
c52ef6e
progress
W95Psp Sep 26, 2024
4fb6bae
Merge branch 'dev' into lf-avx2-serialize-deserialize-4
W95Psp Sep 26, 2024
232fbde
avx2: proofs: spec + proof for `serialize_12`
W95Psp Sep 26, 2024
a089e86
chore: regenerate F* files
W95Psp Sep 26, 2024
ea45bea
fixed some hax issues, refreshed C code
karthikbhargavan Sep 27, 2024
22f2b93
Merge pull request #590 from cryspen/lf-avx2-serialize-deserialize-4
karthikbhargavan Sep 27, 2024
ebbbcbd
proofs
karthikbhargavan Sep 28, 2024
9b1f1c3
removed some lax
karthikbhargavan Sep 28, 2024
deedd5a
Update invert_ntt
mamonet Sep 28, 2024
1c3c00c
removed some lax
karthikbhargavan Sep 28, 2024
6a84ae4
Update generic ntt.rs
mamonet Sep 29, 2024
ac15d16
in-ntt
karthikbhargavan Sep 29, 2024
5f23a82
ntt
karthikbhargavan Sep 29, 2024
96c8bf6
ntt-spec
karthikbhargavan Sep 29, 2024
3d6773f
spec-utils
karthikbhargavan Sep 29, 2024
f7ae1f1
Merge branch 'dev-arithmetic-proofs' into ntt-panic-free
karthikbhargavan Sep 29, 2024
0e1943a
verifies
karthikbhargavan Sep 29, 2024
585fd7d
c code
karthikbhargavan Sep 29, 2024
098de7d
Merge branch 'dev' into ntt-panic-free
karthikbhargavan Sep 29, 2024
2ac0798
wip
karthikbhargavan Sep 29, 2024
101ed40
arith
karthikbhargavan Sep 29, 2024
de52651
verifies
karthikbhargavan Sep 29, 2024
f0bd4d2
Merge pull request #576 from cryspen/ntt-panic-free
karthikbhargavan Sep 29, 2024
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
5 changes: 5 additions & 0 deletions .github/workflows/mlkem.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,11 @@ jobs:
rustc --print=cfg
cargo build --verbose $RUST_TARGET_FLAG --features pre-verification

- name: 🔨 Build unpacked
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feature doesn't exist anymore. Remove

run: |
rustc --print=cfg
cargo build --verbose $RUST_TARGET_FLAG --features pre-verification,unpacked

- name: 🔨 Build Release
run: cargo build --verbose --release $RUST_TARGET_FLAG --features pre-verification

Expand Down
11 changes: 7 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,18 @@
.vscode
.DS_Store
benches/boringssl/build
proofs/fstar/extraction/.depend
proofs/fstar/extraction/#*#
proofs/fstar/extraction/.#*
fuzz/corpus
fuzz/artifacts
proofs/fstar/extraction/.cache
__pycache__
kyber-crate/
*.llbc

# When using sed
*.bak

# F*
.fstar-cache
.depend
**/proofs/fstar/*/#*#
**/proofs/fstar/*/.#*
hax.fst.config.json
Loading
Loading