@@ -5,23 +5,28 @@ All notable changes to this project are documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.1.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8- ## [ Unreleased]
9-
10- ### Fixed
11-
12- - ` SubtleCrypto.generateKey ` for RSA algorithms now honors the requested key
13- usages (routing each usage to the public or private key it applies to)
14- instead of forcing a fixed pair. Generating an ` RSA-OAEP ` key with
15- ` ["wrapKey", "unwrapKey"] ` now yields keys usable with ` wrapKey ` /` unwrapKey ` .
16-
17- ### Removed
18-
19- - Dead, unreachable ` wrapKey.js ` module (legacy JWE-style key wrapping that was
20- never dispatched) and its orphaned JWK byte-serializer helper. The public
21- ` wrapKey ` /` unwrapKey ` continue to work via the standard
22- export-then-encrypt / decrypt-then-import path.
23-
24- ## [ 1.7.0] - 2026-06-25
8+ ## [ 1.7.0] - 2026-06-26
9+
10+ ### Breaking Changes
11+
12+ - Errors for invalid input and unsupported algorithms are now delivered as a
13+ rejected promise instead of being thrown synchronously. Code relying on a
14+ synchronous ` try ` /` catch ` around ` SubtleCrypto ` calls must move to
15+ ` .catch() ` /` await ` .
16+ - Error objects changed shape: failures are now ` DOMException ` s with
17+ specification names (e.g. ` OperationError ` , ` DataError ` ) rather than plain
18+ ` Error ` s. Code inspecting ` error.message ` or custom error fields may need to
19+ switch to ` error.name ` .
20+ - ` getRandomValues ` now throws ` QuotaExceededError ` for requests larger than
21+ 65,536 bytes and ` TypeMismatchError ` for floating-point typed arrays, where
22+ previously such calls may have succeeded.
23+ - ` generateKey ` validation is stricter: AES rejects key lengths other than 128,
24+ 192, or 256 bits, and HMAC interprets ` length ` as bits. Inputs accepted by
25+ earlier versions may now be rejected.
26+ - Built output moved from ` lib/ ` to ` dist/ ` and type declarations from
27+ ` definitions/ ` to ` types/ ` . Imports by package name are unaffected, but deep
28+ paths such as ` @microsoft/msrcrypto/lib/... ` must be updated.
29+ - The minimum supported Node.js version is now 18.
2530
2631### Added
2732
@@ -50,6 +55,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
5055 65,536 bytes and ` TypeMismatchError ` for floating-point typed arrays.
5156- The library version is now injected into the bundle from ` package.json ` at
5257 build time, eliminating version drift between the package and the bundle.
58+ - The build system was migrated to [ esbuild] ( https://esbuild.github.io/ ) (driven
59+ by ` build.mjs ` ), producing the unminified and minified bundles, and the
60+ minimum supported Node.js version was raised to 18.
5361- Repository layout: built output moved from ` lib/ ` to ` dist/ ` , type
5462 declarations from ` definitions/ ` to ` types/ ` , and sources under ` src/ ` . The
5563 published ` main ` /` types ` paths are resolved through ` package.json ` , so
@@ -67,6 +75,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6775 ` wrapKey ` .
6876- Fixed an error in the worker result path that threw when assigning to the
6977 read-only ` DOMException.code ` property.
78+ - ` SubtleCrypto.generateKey ` for RSA algorithms now honors the requested key
79+ usages (routing each usage to the public or private key it applies to)
80+ instead of forcing a fixed pair. Generating an ` RSA-OAEP ` key with
81+ ` ["wrapKey", "unwrapKey"] ` now yields keys usable with ` wrapKey ` /` unwrapKey ` .
82+
83+ ### Removed
84+
85+ - Dead, unreachable ` wrapKey.js ` module (legacy JWE-style key wrapping that was
86+ never dispatched) and its orphaned JWK byte-serializer helper. The public
87+ ` wrapKey ` /` unwrapKey ` continue to work via the standard
88+ export-then-encrypt / decrypt-then-import path.
7089
7190## [ 1.6.0]
7291
@@ -100,7 +119,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
100119 is a breaking change for code using the pre-1.4 ` onComplete ` /` onError `
101120 calling conventions.
102121
103- [ Unreleased ] : https://github.com/microsoft/MSR-JavaScript-Crypto/compare/ v1.6.6...HEAD
122+ [ 1.7.0 ] : https://github.com/microsoft/MSR-JavaScript-Crypto/releases/tag/ v1.7.0
104123[ 1.6.0 ] : https://github.com/microsoft/MSR-JavaScript-Crypto/releases/tag/v1.6.0
105124[ 1.5.0 ] : https://github.com/microsoft/MSR-JavaScript-Crypto/releases/tag/v1.5.0
106125[ 1.4.0 ] : https://github.com/microsoft/MSR-JavaScript-Crypto/releases/tag/v1.4.0
0 commit comments