Skip to content

ml-kem: impl KeyExport for DecapsulationKey#228

Merged
tarcieri merged 1 commit intomasterfrom
ml-kem/add-key-export-impl
Jan 31, 2026
Merged

ml-kem: impl KeyExport for DecapsulationKey#228
tarcieri merged 1 commit intomasterfrom
ml-kem/add-key-export-impl

Conversation

@tarcieri
Copy link
Copy Markdown
Member

@tarcieri tarcieri commented Jan 31, 2026

With the current way we implement expanded key support, this currently needs to be fallible, and since KeyExport is infallible we have to panic.

Perhaps we can make a separate type which contains only dk_pke and z like ExpandedDecapsulationKey so we can ensure DecapsulationKey always has the seed.

For now, this at least lets us have an impl of KeyExport, even if having a panicking condition is not ideal.

With the current way we implement expanded key support, this currently
needs to be fallible.

Perhaps we can make a separate type which contains only `dk_pke` and `z`
like `ExpandedDecapsulationKey` so we can ensure `DecapsulationKey`
always has the seed.

For now, this at least lets us have an impl of `KeyExport`, even if
having a panicking condition is not ideal.
@tarcieri tarcieri merged commit 569e43f into master Jan 31, 2026
23 checks passed
@tarcieri tarcieri deleted the ml-kem/add-key-export-impl branch January 31, 2026 15:55
@tarcieri tarcieri mentioned this pull request Apr 28, 2026
tarcieri added a commit that referenced this pull request Apr 28, 2026
## Added
- `Seed` support e.g. `DecapsulationKey::from_seed` (#133, #138)
- PKCS#8 support (#135)
- `KeyInit`, `KeySizeUser`, and `KeyExport` impls for decapsulation keys
  (#156, #228)
- Parameter set modules: `ml_kem_512`, `mk_kem_768`, `mk_kem_1024`
  (#162)
- `DecapsulationKey::from_expanded` deprecated compatibility support
  (#163)
- `TryKeyInit` and `KeyExport` impls for encapsulation keys (#188)
- Validations against Wycheproof test vectors (#213, #214, #215,
  #217)
- Implement `kem::Kem` trait (#223)
- Support for `kem::FromSeed` trait (#255)

## Changed
- Edition changed to 2024 and MSRV bumped to 1.85 (#118)
- Relax MSRV policy and allow MSRV bumps in patch releases
- Upgrade `hybrid-array` dependency to 0.4 (#129)
- Extract `module-lattice` crate (#199, #202, #204, #209,
  #210, #211, #212, #218, #219, #220)
- Replace `EncodedSizeUser` with `ExpandedKeyEncoding` (#226)
- Bump `getrandom` to v0.4 (#245)
- Bump `rand_core` to v0.10 (#245)
- Migrate from `subtle` to `ctutils` (#277)
- Bump `sha3` dependency to v0.11 (#282)
- Bump `kem` dependency to v0.3 (#283)
- Bump `pkcs8` dependency to v0.11 (#291)

## Fixed
- Validate encryption/encapsulation keys (#179)
- Validate expanded decapsulation key hash (#207)

## Removed
- `Kem` struct and `KemCore` trait - replaced by `kem::Kem` (#223)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant