Skip to content

feat(crypto/unstable): add AES-GCM encrypt/decrypt helpers#7012

Merged
kt3k merged 1 commit intodenoland:mainfrom
tomas-zijdemans:aesgcm
Mar 6, 2026
Merged

feat(crypto/unstable): add AES-GCM encrypt/decrypt helpers#7012
kt3k merged 1 commit intodenoland:mainfrom
tomas-zijdemans:aesgcm

Conversation

@tomas-zijdemans
Copy link
Copy Markdown
Contributor

@tomas-zijdemans tomas-zijdemans commented Feb 18, 2026

High-level wrappers around Web Crypto's AES-GCM that generate a random 96-bit nonce and produce wire format (nonce (12 bytes) || ciphertext || tag (16 bytes)). Inspired by Golang's NewGCMWithRandomNonce.

AES-GCM is the only AEAD cipher in the Web Crypto spec, using it correctly requires the caller to: generate a 12-byte random nonce, call crypto.subtle.encrypt, concatenate nonce + ciphertext + tag, and reverse the process on decrypt with length validation. These two helpers solve this common use case.

Future streaming complement: WICG proposal #185

@codecov
Copy link
Copy Markdown

codecov bot commented Feb 18, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.17%. Comparing base (4936f23) to head (8677832).
⚠️ Report is 13 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #7012   +/-   ##
=======================================
  Coverage   94.16%   94.17%           
=======================================
  Files         618      619    +1     
  Lines       48802    48849   +47     
  Branches     8601     8609    +8     
=======================================
+ Hits        45954    46003   +49     
+ Misses       2779     2777    -2     
  Partials       69       69           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown
Contributor

@kt3k kt3k left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@kt3k kt3k merged commit 8f3c4a5 into denoland:main Mar 6, 2026
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants