Add deterministic X-Wing encapsulation #183
Open
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.
Deterministic encapsulation is super helpful for known-answer tests. I'm currently extending
hpketo support X-Wing, and I need to be able to do deterministic encapsulation in order to check against the HPKE test vectors.The
randomnessrepresentation is the least controversial in my opinion. Rather than make it a 32-byte seed that gets expanded in some bespoke way, we make it 64 bytes. Thus, this API just exposes a passthrough to the underlying deterministic encapsulation methods. This happens to be how the hybrid KEM draft does this. If this changes in the future, that's fine, because this representation gives the caller full control.Next steps
I think it'd be nice to move the
EncapsulateDeterministictrait intotraits/kem. Specifically I was thinking something like