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

Add feature kyber for Round 3 Kyber API #327

Merged
merged 27 commits into from
Jun 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
7b5c5e4
Revert changes to Kyber (Round 3) for ML-KEM
jschneider-bensch Jun 18, 2024
5126d6a
Fix swapped private key decoding
jschneider-bensch Jun 18, 2024
11d7bb9
Pull out Kyber encaps
jschneider-bensch Jun 19, 2024
017ac5f
Make Kyber API available behind `kyber` feature
jschneider-bensch Jun 20, 2024
c7beed2
Format
jschneider-bensch Jun 20, 2024
0571d1f
Introduce `kyber` feature in `libcrux-kem`
jschneider-bensch Jun 20, 2024
283d99e
Format
jschneider-bensch Jun 20, 2024
66dca4d
Merge branch 'dev' into jonas/xyber768
franziskuskiefer Jun 21, 2024
6b39b9e
Merge branch 'dev' into jonas/xyber768
franziskuskiefer Jun 24, 2024
8cdead9
fix C extraction
franziskuskiefer Jun 24, 2024
847136a
Fix typo
jschneider-bensch Jun 26, 2024
32af120
Give more accurate test names (`kyber...` to `mlkem...`)
jschneider-bensch Jun 26, 2024
11355da
Avoid unused warning when testing
jschneider-bensch Jun 26, 2024
0aa89eb
Use `Hasher` trait to select best KDF for Kyber
jschneider-bensch Jun 26, 2024
b4e4d13
Document differences between Kyber (Round 3) and ML-KEM
jschneider-bensch Jun 26, 2024
1d9e38d
Inline ML-KEM/Kyber variant differences
jschneider-bensch Jun 26, 2024
00e62c0
`kyber{512,768,1024}` top level modules
jschneider-bensch Jun 26, 2024
422bedb
Merge branch 'jonas/xyber768' of github.com:cryspen/libcrux into jona…
jschneider-bensch Jun 26, 2024
790eb06
Merge remote-tracking branch 'origin/jonas/xyber768-f' into jonas/xyb…
jschneider-bensch Jun 26, 2024
366c761
Fix `kyber` feature in `libcrux-kem`
jschneider-bensch Jun 26, 2024
d0740e3
Rename NIST KAT files for ML-KEM
jschneider-bensch Jun 26, 2024
2af99c3
Include NIST KATs for all Kyber parameter sets
jschneider-bensch Jun 26, 2024
e5b264c
Document single Kyber 768 KAT from boringssl
jschneider-bensch Jun 26, 2024
608fe19
Format
jschneider-bensch Jun 26, 2024
1233e95
Test Kyber on CI
jschneider-bensch Jun 26, 2024
e7fd653
update code for C generation
franziskuskiefer Jun 26, 2024
f948dd6
update generated C code
franziskuskiefer Jun 26, 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
6 changes: 6 additions & 0 deletions .github/workflows/mlkem.yml
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,12 @@ jobs:
cargo clean
LIBCRUX_DISABLE_SIMD128=1 LIBCRUX_DISABLE_SIMD256=1 cargo test --verbose --release $RUST_TARGET_FLAG

- name: 🏃🏻‍♀️ Test Kyber
run: |
cargo clean
cargo test --features kyber --verbose $RUST_TARGET_FLAG


benchmarks:
strategy:
fail-fast: true
Expand Down
88 changes: 40 additions & 48 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion benchmarks/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ publish = false
[dev-dependencies]
libcrux = { path = "../", features = ["rand", "tests"] }
libcrux-kem = { path = "../libcrux-kem", features = ["tests"] }
libcrux-ml-kem = { path = "../libcrux-ml-kem", features = ["tests"] }
libcrux-ml-kem = { path = "../libcrux-ml-kem" }
rand = { version = "0.8" }
rand_core = { version = "0.6" }
# Benchmarking "RustCrypto"
Expand Down
1 change: 1 addition & 0 deletions libcrux-kem/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ rand = { version = "0.8" }

[features]
tests = [] # Expose functions for testing.
kyber = ["libcrux-ml-kem/kyber"]

[dev-dependencies]
libcrux-kem = { version = "0.0.2-pre.2", path = "./", features = ["tests"] }
Expand Down
Loading
Loading