Make any structure with potentially variable size opaque
- Dominant language
- Assembly
- Stars
- 830
- Forks
- 212
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 61
Description
### Problem:
The HPKE structure size had to be changed for ML-KEM support. This breaks ABI.
### Solution:
Make these structs, and all structs with sizes that might change in the future, opaque.
* **Does this change any public APIs?** Structs that have sizes that might change in the future become pointers to heap-allocated opaque types.
* **Which algorithm(s) will this impact?** HPKE, possibly others.
### Requirements / Acceptance Criteria:
Anything with a size that isn’t future-proof becomes a pointer to a heap-allocated opaque type.
* **RFC links:** None
* **Related Issues:** None
* **Will the Usage Guide or other documentation need to be updated?** Yes
* **Testing:** Normal testing of callers should suffice.
* **Will this change trigger AWS LibCrypto Formal Verification changes?** No
* **Should this change be fuzz tested?** Only for out of memory conditions.
### Out of scope:
Being able to link OpenSSL and AWS-LC in the same binary.
Contributor guide
Research direction
No files or specific tests are named. Start by inventorying the public HPKE and other variable-size structures and their callers, then determine which sizes are not future-proof. Done means affected structures use heap-allocated opaque types, callers and normal tests pass, and the Usage Guide is updated.
Written by the indexing model from the issue text.
Assessment
- Domain
- cryptography
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100