ml-kem: replace EncodedSizeUser with ExpandedKeyEncoding#226
Merged
Conversation
d42c980 to
f2eeec2
Compare
First, this commit completely migrates `EncapsulationKey` to using only the `kem`/`crypto-common` traits: `KeySizeUser`, `TryKeyInit`, `KeyExport`, and changes any remaining uses to use only the new traits. Since `DecapsulationKey` uses those same traits for handling `Seed`s, the only remaining use of the old `EncodedSizeUser` trait is handling the expanded form of `DecapsulationKey`. So this commit repurposes it into an `ExpandedKeyEncoding` trait. Like `DecapsulationKey::from_expanded`, the trait has been marked deprecated with a rationale given in the documentation for `ExpandedKeyEncoding`, namely that the expanded form has only disadvantages when compared to seeds which are significantly smaller, uniformly sized, and avoid the need to do expanded key validation. It also notes several ML-KEM libraries have dropped support entirely. In the `ml-kem` crate, for now, we still need this functionality if only for tests which have been written generically, including but not limited to the ones that run the NIST ACVP vectors.
f2eeec2 to
07802fb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
First, this commit completely migrates
EncapsulationKeyto using only thekem/crypto-commontraits:KeySizeUser,TryKeyInit,KeyExport, and changes any remaining uses to use only the new traits.Since
DecapsulationKeyuses those same traits for handlingSeeds, the only remaining use of the oldEncodedSizeUsertrait is handling the expanded form ofDecapsulationKey. So this commit repurposes it into anExpandedKeyEncodingtrait.Like
DecapsulationKey::from_expanded, the trait has been marked deprecated with a rationale given in the documentation forExpandedKeyEncoding, namely that the expanded form has only disadvantages when compared to seeds which are significantly smaller, uniformly sized, and avoid the need to do expanded key validation. It also notes several ML-KEM libraries have dropped support entirely.In the
ml-kemcrate, for now, we still need this functionality if only for tests which have been written generically, including but not limited to the ones that run the NIST ACVP vectors.