Skip to content

Add EVP_AEAD-based detached AEAD module#486

Merged
kornelski merged 1 commit intocloudflare:masterfrom
janrueth:aead-module
Apr 16, 2026
Merged

Add EVP_AEAD-based detached AEAD module#486
kornelski merged 1 commit intocloudflare:masterfrom
janrueth:aead-module

Conversation

@janrueth
Copy link
Copy Markdown
Contributor

Introduce a new boring::aead module with Algorithm, AeadCtx, and Crypter wrappers over BoringSSL EVP_AEAD APIs, including detached seal_scatter/open_gather operations.

Document usage with module guidance, a basic detached-tag example, and an advanced scatter/gather example that explains extra_in layout and decryption handling.

Add validation and tests for key, nonce, and tag constraints, AES-GCM and XChaCha20-Poly1305 round trips, and scatter/gather with extra input; export the module from boring/src/lib.rs.

Comment thread boring/src/aead.rs Outdated
Comment thread boring/src/aead.rs Outdated
Introduce a new boring::aead module with Algorithm and AeadCtx wrappers
over BoringSSL EVP_AEAD APIs, including detached seal_scatter/open_gather
operations and seal_in_place/open_in_place convenience methods.

seal_scatter returns a sub-slice of the output tag buffer rather than a
raw length, so callers can use it directly without manual slicing.

Add AeadCtx::new_default_tag for the common case of using the full tag
length, and AeadCtxRef::tag_len for precise buffer sizing via
EVP_AEAD_CTX_tag_len.

Add tests for AES-GCM and XChaCha20-Poly1305 round trips, scatter/gather
with extra input, invalid key/nonce/tag rejection, and tag_len; export
the module from boring/src/lib.rs.
@kornelski kornelski merged commit b0a4e45 into cloudflare:master Apr 16, 2026
24 checks passed
@janrueth janrueth deleted the aead-module branch April 17, 2026 08:22
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.

2 participants