Skip to content

MLKEM bindings and wrappers - #109

Draft
Khang (nnmkhang) wants to merge 3 commits into
release/0.6.0from
user/khangnguyen/mlkem-pqc
Draft

MLKEM bindings and wrappers#109
Khang (nnmkhang) wants to merge 3 commits into
release/0.6.0from
user/khangnguyen/mlkem-pqc

Conversation

@nnmkhang

@nnmkhang Khang (nnmkhang) commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Description of Changes:

Added MLKEM

Breaking Changes if any:

  • bump symcrypt-sys to 0.5.0
  • bump rust-symcrypt from to 0.6.0
  • update MSRV to 1.85.

✅ Admin Checklist

  • Review the PR description and ensure all necessary details are included.
  • Update/add unit tests for changed code.
  • Update/add documentation for new or changed APIs.
  • Run cargo test --all-features on Windows and WSL.

Check the Developer Guidelines in DEVELOPER.md for more info.

@nnmkhang Khang (nnmkhang) changed the title initial push MLKEM bindings. Aug 18, 2026
@nnmkhang Khang (nnmkhang) changed the title MLKEM bindings. MLKEM bindings and wrappers Aug 18, 2026
@nnmkhang
Khang (nnmkhang) requested a balanced review from Copilot August 18, 2026 19:36

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds ML-KEM support through generated SymCrypt bindings and safe Rust wrappers.

Changes:

  • Adds ML-KEM key generation, import/export, encapsulation, decapsulation, and tests.
  • Pins SymCrypt v103.6.0 and updates crate versions and bindings.
  • Re-enables Windows CI with v103.6.0 binaries.

Reviewed changes

Copilot reviewed 16 out of 17 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
Cargo.toml Updates symcrypt-sys; MSRV remains inconsistent.
Cargo.lock Refreshes crate versions.
.github/workflows/build_windows.yml Re-enables Windows builds and tests.
rust-symcrypt/INSTALL.md Points installation guidance to v103.6.0.
rust-symcrypt/README.md Documents ML-KEM and minimum SymCrypt version.
rust-symcrypt/src/lib.rs Exposes the ML-KEM module.
rust-symcrypt/src/mlkem.rs Implements and tests safe ML-KEM wrappers.
symcrypt-bindgen/Cargo.toml Bumps bindgen utility version.
symcrypt-bindgen/src/main.rs Allows ML-KEM symbols during generation.
symcrypt-sys/Cargo.toml Bumps FFI crate version.
symcrypt-sys/VERSION.md Pins the v103.6.0 commit.
symcrypt-sys/inc/symcrypt_internal_shared.inc Updates the SymCrypt API minor version.
symcrypt-sys/src/bindings/aarch64_pc_windows_msvc.rs Adds Windows ARM64 ML-KEM bindings.
symcrypt-sys/src/bindings/aarch64_unknown_linux_gnu.rs Adds Linux ARM64 ML-KEM bindings.
symcrypt-sys/src/bindings/x86_64_pc_windows_msvc.rs Adds Windows x64 ML-KEM bindings.
symcrypt-sys/src/bindings/x86_64_unknown_linux_gnu.rs Adds Linux x64 ML-KEM bindings.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread Cargo.toml
libc = "0.2.0"
hex = "0.4.3"
symcrypt-sys = { path = "symcrypt-sys", version = "0.4.0" }
symcrypt-sys = { path = "symcrypt-sys", version = "0.5.0" }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants