Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Make ML-KEM-768 constants public So they can be used by hybrid KEMs in the `libcrux-kem` crate. * Change `libcrux::ecdh` submodule and item visibility to public So they can be used in the `libcrux-kem` crate * Change visibility of `libcrux-ml-kem::MlKemKeyPair` fields to `pub` So they can be accessed in the `libcrux-kem` crate. * Extract `libcrux::kem` module to its own crate * Update KEM crate documentation * Format * Provide `.len()` on ML-KEM structs and use that instead of constants * Use `.into_parts()` on `MlKemKeyPair` instead of direct access * Add CI run for `libcrux-kem` * Fix ML-KEM tests * CI: Use Rust stable and exclude Win32 (linker issue) * Revert CI change to now install Rust nightly again * Pull out `ecdh` module into its own crate * Make `libcrux-kem` use `libcrux-ecdh` instead of `libcrux` * Make `libcrux` use standalone `libcrux-ecdh` crate * WIP: PQ-PSK prototype * Copied CI workflow for ECDH crate * Merge imports * Option to use Curve25519, ML-KEM768 or Classic McEliece * Move P256 ECDSA signature API back to libcrux * Move ECDH tests to the `libcrux-ecdh` crate * Make PSK lifetime a parameter of PSK generation * Update Cargo.lock * Reduce public API * Make `libcrux` depend on `libcrux-kem` * Make spec libcrux interop tests use standalone crate * Update benchmarks to use `libcrux-ml-kem` (resp. `libcrux-kem`) * Remove dead code * Simple benchmarks for PQ-PSK * Basic PSK message size measurement * Include raw KEM operations in benchmark * Include public key sizes in size comparison * Include XWing in size comparison * Include XWing in benchmarks * wip; no chrono and encaps example * std::time timestamp * Simple timestamp tests * Minor rewrites for PV extraction * Format * Add documentation * Add `README.md` --------- Co-authored-by: Franziskus Kiefer <[email protected]>
- Loading branch information