kxco-post-quantum 1.1.10 → 1.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,210 +1,210 @@
1
- # Changelog
2
-
3
- ## 1.1.6 — 2026-05-24
4
-
5
- Maintenance release. No breaking changes.
6
-
7
-
8
-
9
- ## 1.1.5 — 2026-05-24
10
-
11
- Maintenance release. No breaking changes.
12
-
13
-
14
-
15
- ## 1.1.4 — 2026-05-24
16
-
17
- Maintenance release. No breaking changes.
18
-
19
-
20
-
21
- ## 1.1.3 — 2026-05-23
22
-
23
- Maintenance release. No breaking changes.
24
-
25
-
26
- All notable changes to this project will be documented in this file.
27
-
28
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
29
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
30
-
31
- ## [Unreleased]
32
-
33
- ## [1.1.2] — 2026-05-22
34
-
35
- Documentation correction. No code changes; no behaviour changes; no
36
- cryptographic surface changes vs `1.1.1`.
37
-
38
- ### Fixed
39
- - **AUDIT.md** §1 previously cited a 2024 Cure53 audit of
40
- `@noble/post-quantum`. That citation was incorrect — Cure53's 2023
41
- NDS-01 audit covered `@noble/ciphers`, `@noble/curves`, and
42
- `@noble/hashes` only; the post-quantum package was not in scope. As of
43
- 2026-05-22, upstream `@noble/post-quantum` has only been self-audited
44
- by its maintainer (v0.6.1, April 2026). AUDIT.md §1 has been rewritten
45
- to reflect the actual upstream audit posture. A correction notice is
46
- included at the top of the file. Reviewers who relied on the prior
47
- citation should re-read §1 of AUDIT.md.
48
- - **CHANGELOG.md** 1.0.0 entry similarly stated "audited by Cure53,
49
- 2024" alongside the upstream pin. That sentence has been corrected
50
- in-place in this release; the substance of the 1.0.0 release is
51
- otherwise unchanged.
52
-
53
- ### Why this is a patch, not an advisory
54
- The misstatement was in documentation only. No code path, signature,
55
- key-derivation routine, or wire format depends on the cited audit. The
56
- fix is a documentation rewrite; affected installs upgrade by pulling
57
- 1.1.2. If your due-diligence pack referenced AUDIT.md from 1.0.1
58
- through 1.1.1, please refresh against 1.1.2.
59
-
60
- ## [1.1.1] — 2026-05-21
61
-
62
- Operational hardening release. No source-code changes; this is the first
63
- release published via **npm Trusted Publishing** rather than a long-lived
64
- `NPM_TOKEN`.
65
-
66
- ### Changed
67
- - `.github/workflows/publish.yml` now publishes via npm Trusted Publishing
68
- (OIDC). The `NODE_AUTH_TOKEN` / `NPM_OTP` env vars are removed; the
69
- workflow's `id-token: write` permission is the entire credential.
70
- Registered at https://www.npmjs.com/package/kxco-post-quantum/access
71
- binding `org=JackKXCO`, `repo=kxco-post-quantum`, `workflow=publish.yml`.
72
- - Repo-level `NPM_TOKEN` and `NPM_OTP` secrets removed — no long-lived
73
- credentials remain in the publishing path.
74
-
75
- ### Why this matters
76
- - Every release tarball is now signed by GitHub Actions OIDC against the
77
- exact commit being published, with no human-held secret in the loop.
78
- - No more burning recovery codes per release. The publish workflow now
79
- runs hands-free on every `v*` tag push.
80
-
81
- ## [1.1.0] — 2026-05-21
82
-
83
- Same API. Same byte-for-byte outputs (all 29 pinned vectors still match).
84
- The package now runs in **browsers** as well as Node.
85
-
86
- ### Added
87
- - Isomorphic runtime — every module works identically in modern browsers
88
- (Chromium, Firefox, Safari) and Node, served from CDNs like esm.sh
89
- with zero polyfill burden
90
- - `test/browser-smoke.test.js` runs the public API with `globalThis.Buffer`
91
- removed, asserts plain `Uint8Array` outputs and a clean hybrid-signing
92
- round trip — proves browser compatibility in CI
93
-
94
- ### Changed
95
- - HKDF-SHA-512 now sourced from `@noble/hashes/hkdf` (was `node:crypto`)
96
- - HMAC-SHA-256 now sourced from `@noble/hashes/hmac` (was `node:crypto`)
97
- - SHA-256 for kid fingerprints now sourced from `@noble/hashes/sha256`
98
- (was `node:crypto`)
99
- - Constant-time comparisons are portable byte loops (replaces
100
- `node:crypto.timingSafeEqual`) — identical security property,
101
- runs in browsers
102
- - Functions return `Buffer` on Node (when `globalThis.Buffer` is defined)
103
- and plain `Uint8Array` in browsers. **Backwards compatible** for Node
104
- callers; `Buffer extends Uint8Array` so any code accepting `Uint8Array`
105
- already works.
106
- - `engines.node` bumped to `>=20.19` to match the underlying
107
- `@noble/hashes@2` requirement (Node 18 is past EOL)
108
-
109
- ### Dependencies
110
- - Added `@noble/hashes ^2.2.0` (peer of `@noble/post-quantum`)
111
- - `@noble/post-quantum ^0.2.1` unchanged
112
-
113
- ### Verification
114
- - 9 node tests pass
115
- - 6 browser-smoke tests pass
116
- - 29 pinned vectors still match — no cryptographic surface changes,
117
- bit-for-bit identical to 1.0.3 in Node
118
-
119
- ## [1.0.3] — 2026-05-21
120
-
121
- First release ships with SLSA Level 2 provenance attestation tied to a
122
- public GitHub Actions workflow run. No cryptographic surface changes
123
- vs `1.0.2` — every diff is metadata, types, CI, and hygiene.
124
-
125
- ### Added
126
- - SLSA Level 2 provenance on every published release via GitHub Actions OIDC
127
- (`publishConfig.provenance: true`)
128
- - `.github/workflows/publish.yml` triggered by `v*` tags — runs tests then
129
- `npm publish --provenance --access public`
130
- - `.github/workflows/ci.yml` matrix over Node 18 / 20 / 22 on every push and PR
131
- - Hand-written TypeScript declarations (`.d.ts`) for all six modules; wired
132
- into `exports[*].types` so TypeScript consumers get full typings without
133
- any build step
134
- - `.github/dependabot.yml` — weekly npm + github-actions ecosystem checks
135
- - `sideEffects: false` for tree-shaking
136
- - `funding` field in `package.json`
137
- - Top-level `"types"` field in `package.json` pointing at `./src/index.d.ts`
138
-
139
- ### Changed
140
- - `package.json` `files` allowlist tightened to `["src", "README.md", "LICENSE",
141
- "SECURITY.md", "CHANGELOG.md"]` — locks down what ships to npm
142
- - `package.json` `exports` now declares per-subpath `types` + `import` keys
143
- - `SECURITY.md` rewritten in the standard short-form template with explicit
144
- in-scope / out-of-scope split delegating primitive bugs upstream to
145
- `@noble/post-quantum`
146
- - All third-party actions in workflows pinned by 40-char commit SHA, never
147
- floating tags
148
- - README badge row trimmed to four (`npm`, `license`, `Socket`, `production-live`)
149
- and a 60-second live-verify quickstart added under the title
150
-
151
- ### Security
152
- - No cryptographic code changed in this release — every change is metadata,
153
- types, CI, and documentation. Production behaviour is bit-for-bit identical
154
- to `1.0.2`.
155
-
156
- ## [1.0.2] — 2026-05-21
157
-
158
- ### Changed
159
- - Repository URL on the npm package metadata now points to
160
- `github.com/JackKXCO/kxco-post-quantum`. No code change.
161
-
162
- ## [1.0.1] — 2026-05-21
163
-
164
- ### Added
165
- - `AUDIT.md` — self-attested audit posture with roadmap (external audit
166
- Q3 2026, public bug bounty Q4 2026, FIPS 140-3 CMVP application 2027)
167
- - `test/vectors.json` — 29 deterministic test vectors pinning every primitive
168
- output bit-for-bit
169
- - `test/run-vectors.js` — runner anyone can use to verify reproducibility
170
- - `npm test` runs both the functional tests and vector verification
171
- - `npm run test:vectors` for vector check only
172
-
173
- ### Changed
174
- - `SECURITY.md` sharpened with explicit threat model and pinned upstream
175
- `@noble/post-quantum@0.2.1` integrity hash
176
- - `README.md` "Used in production at" section with file refs to chain.kxco.ai
177
-
178
- No API changes from `1.0.0`.
179
-
180
- ## [1.0.0] — 2026-05-21
181
-
182
- First stable release. Committed public API surface:
183
-
184
- - `mlDsa.keypairFromMaster(master, info—)`, `mlDsa.sign`, `mlDsa.verify`
185
- - `mlKem.keypairFromMaster(master, info—)`, `mlKem.encapsulate`, `mlKem.decapsulate`
186
- - `deriveSeed(master, info, length)`
187
- - `fingerprint(publicKey)`, `kidEquals(a, b)`
188
- - `webhook.envelope`, `webhook.hmacHex`, `webhook.verifyHmac`,
189
- `webhook.pqSign`, `webhook.verifyPq`, `webhook.signDelivery`,
190
- `webhook.verifyDelivery`
191
-
192
- Verified at release: 9/9 functional tests + 29/29 vector checks pass.
193
-
194
- Underlying primitives via `@noble/post-quantum@^0.2.1`. See `AUDIT.md` for
195
- upstream audit posture (no third-party audit of the PQ package; self-audited
196
- by maintainer at v0.6.1, April 2026). ESM-only. Node.js 18+.
197
-
198
- ## [0.1.0] — 2026-05-21
199
-
200
- Initial pre-release.
201
-
202
- [Unreleased]: https://github.com/JackKXCO/kxco-post-quantum/compare/v1.1.2...HEAD
203
- [1.1.2]: https://github.com/JackKXCO/kxco-post-quantum/compare/v1.1.1...v1.1.2
204
- [1.1.1]: https://github.com/JackKXCO/kxco-post-quantum/compare/v1.1.0...v1.1.1
205
- [1.1.0]: https://github.com/JackKXCO/kxco-post-quantum/compare/v1.0.3...v1.1.0
206
- [1.0.3]: https://github.com/JackKXCO/kxco-post-quantum/compare/v1.0.2...v1.0.3
207
- [1.0.2]: https://github.com/JackKXCO/kxco-post-quantum/compare/v1.0.1...v1.0.2
208
- [1.0.1]: https://github.com/JackKXCO/kxco-post-quantum/compare/v1.0.0...v1.0.1
209
- [1.0.0]: https://github.com/JackKXCO/kxco-post-quantum/compare/v0.1.0...v1.0.0
1
+ # Changelog
2
+
3
+ ## 1.1.6 — 2026-05-24
4
+
5
+ Maintenance release. No breaking changes.
6
+
7
+
8
+
9
+ ## 1.1.5 — 2026-05-24
10
+
11
+ Maintenance release. No breaking changes.
12
+
13
+
14
+
15
+ ## 1.1.4 — 2026-05-24
16
+
17
+ Maintenance release. No breaking changes.
18
+
19
+
20
+
21
+ ## 1.1.3 — 2026-05-23
22
+
23
+ Maintenance release. No breaking changes.
24
+
25
+
26
+ All notable changes to this project will be documented in this file.
27
+
28
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
29
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
30
+
31
+ ## [Unreleased]
32
+
33
+ ## [1.1.2] — 2026-05-22
34
+
35
+ Documentation correction. No code changes; no behaviour changes; no
36
+ cryptographic surface changes vs `1.1.1`.
37
+
38
+ ### Fixed
39
+ - **AUDIT.md** §1 previously cited a 2024 Cure53 audit of
40
+ `@noble/post-quantum`. That citation was incorrect — Cure53's 2023
41
+ NDS-01 audit covered `@noble/ciphers`, `@noble/curves`, and
42
+ `@noble/hashes` only; the post-quantum package was not in scope. As of
43
+ 2026-05-22, upstream `@noble/post-quantum` has only been self-audited
44
+ by its maintainer (v0.6.1, April 2026). AUDIT.md §1 has been rewritten
45
+ to reflect the actual upstream audit posture. A correction notice is
46
+ included at the top of the file. Reviewers who relied on the prior
47
+ citation should re-read §1 of AUDIT.md.
48
+ - **CHANGELOG.md** 1.0.0 entry similarly stated "audited by Cure53,
49
+ 2024" alongside the upstream pin. That sentence has been corrected
50
+ in-place in this release; the substance of the 1.0.0 release is
51
+ otherwise unchanged.
52
+
53
+ ### Why this is a patch, not an advisory
54
+ The misstatement was in documentation only. No code path, signature,
55
+ key-derivation routine, or wire format depends on the cited audit. The
56
+ fix is a documentation rewrite; affected installs upgrade by pulling
57
+ 1.1.2. If your due-diligence pack referenced AUDIT.md from 1.0.1
58
+ through 1.1.1, please refresh against 1.1.2.
59
+
60
+ ## [1.1.1] — 2026-05-21
61
+
62
+ Operational hardening release. No source-code changes; this is the first
63
+ release published via **npm Trusted Publishing** rather than a long-lived
64
+ `NPM_TOKEN`.
65
+
66
+ ### Changed
67
+ - `.github/workflows/publish.yml` now publishes via npm Trusted Publishing
68
+ (OIDC). The `NODE_AUTH_TOKEN` / `NPM_OTP` env vars are removed; the
69
+ workflow's `id-token: write` permission is the entire credential.
70
+ Registered at https://www.npmjs.com/package/kxco-post-quantum/access
71
+ binding `org=JackKXCO`, `repo=kxco-post-quantum`, `workflow=publish.yml`.
72
+ - Repo-level `NPM_TOKEN` and `NPM_OTP` secrets removed — no long-lived
73
+ credentials remain in the publishing path.
74
+
75
+ ### Why this matters
76
+ - Every release tarball is now signed by GitHub Actions OIDC against the
77
+ exact commit being published, with no human-held secret in the loop.
78
+ - No more burning recovery codes per release. The publish workflow now
79
+ runs hands-free on every `v*` tag push.
80
+
81
+ ## [1.1.0] — 2026-05-21
82
+
83
+ Same API. Same byte-for-byte outputs (all 29 pinned vectors still match).
84
+ The package now runs in **browsers** as well as Node.
85
+
86
+ ### Added
87
+ - Isomorphic runtime — every module works identically in modern browsers
88
+ (Chromium, Firefox, Safari) and Node, served from CDNs like esm.sh
89
+ with zero polyfill burden
90
+ - `test/browser-smoke.test.js` runs the public API with `globalThis.Buffer`
91
+ removed, asserts plain `Uint8Array` outputs and a clean hybrid-signing
92
+ round trip — proves browser compatibility in CI
93
+
94
+ ### Changed
95
+ - HKDF-SHA-512 now sourced from `@noble/hashes/hkdf` (was `node:crypto`)
96
+ - HMAC-SHA-256 now sourced from `@noble/hashes/hmac` (was `node:crypto`)
97
+ - SHA-256 for kid fingerprints now sourced from `@noble/hashes/sha256`
98
+ (was `node:crypto`)
99
+ - Constant-time comparisons are portable byte loops (replaces
100
+ `node:crypto.timingSafeEqual`) — identical security property,
101
+ runs in browsers
102
+ - Functions return `Buffer` on Node (when `globalThis.Buffer` is defined)
103
+ and plain `Uint8Array` in browsers. **Backwards compatible** for Node
104
+ callers; `Buffer extends Uint8Array` so any code accepting `Uint8Array`
105
+ already works.
106
+ - `engines.node` bumped to `>=20.19` to match the underlying
107
+ `@noble/hashes@2` requirement (Node 18 is past EOL)
108
+
109
+ ### Dependencies
110
+ - Added `@noble/hashes ^2.2.0` (peer of `@noble/post-quantum`)
111
+ - `@noble/post-quantum ^0.2.1` unchanged
112
+
113
+ ### Verification
114
+ - 9 node tests pass
115
+ - 6 browser-smoke tests pass
116
+ - 29 pinned vectors still match — no cryptographic surface changes,
117
+ bit-for-bit identical to 1.0.3 in Node
118
+
119
+ ## [1.0.3] — 2026-05-21
120
+
121
+ First release ships with SLSA Level 2 provenance attestation tied to a
122
+ public GitHub Actions workflow run. No cryptographic surface changes
123
+ vs `1.0.2` — every diff is metadata, types, CI, and hygiene.
124
+
125
+ ### Added
126
+ - SLSA Level 2 provenance on every published release via GitHub Actions OIDC
127
+ (`publishConfig.provenance: true`)
128
+ - `.github/workflows/publish.yml` triggered by `v*` tags — runs tests then
129
+ `npm publish --provenance --access public`
130
+ - `.github/workflows/ci.yml` matrix over Node 18 / 20 / 22 on every push and PR
131
+ - Hand-written TypeScript declarations (`.d.ts`) for all six modules; wired
132
+ into `exports[*].types` so TypeScript consumers get full typings without
133
+ any build step
134
+ - `.github/dependabot.yml` — weekly npm + github-actions ecosystem checks
135
+ - `sideEffects: false` for tree-shaking
136
+ - `funding` field in `package.json`
137
+ - Top-level `"types"` field in `package.json` pointing at `./src/index.d.ts`
138
+
139
+ ### Changed
140
+ - `package.json` `files` allowlist tightened to `["src", "README.md", "LICENSE",
141
+ "SECURITY.md", "CHANGELOG.md"]` — locks down what ships to npm
142
+ - `package.json` `exports` now declares per-subpath `types` + `import` keys
143
+ - `SECURITY.md` rewritten in the standard short-form template with explicit
144
+ in-scope / out-of-scope split delegating primitive bugs upstream to
145
+ `@noble/post-quantum`
146
+ - All third-party actions in workflows pinned by 40-char commit SHA, never
147
+ floating tags
148
+ - README badge row trimmed to four (`npm`, `license`, `Socket`, `production-live`)
149
+ and a 60-second live-verify quickstart added under the title
150
+
151
+ ### Security
152
+ - No cryptographic code changed in this release — every change is metadata,
153
+ types, CI, and documentation. Production behaviour is bit-for-bit identical
154
+ to `1.0.2`.
155
+
156
+ ## [1.0.2] — 2026-05-21
157
+
158
+ ### Changed
159
+ - Repository URL on the npm package metadata now points to
160
+ `github.com/JackKXCO/kxco-post-quantum`. No code change.
161
+
162
+ ## [1.0.1] — 2026-05-21
163
+
164
+ ### Added
165
+ - `AUDIT.md` — self-attested audit posture with roadmap (external audit
166
+ Q3 2026, public bug bounty Q4 2026, FIPS 140-3 CMVP application 2027)
167
+ - `test/vectors.json` — 29 deterministic test vectors pinning every primitive
168
+ output bit-for-bit
169
+ - `test/run-vectors.js` — runner anyone can use to verify reproducibility
170
+ - `npm test` runs both the functional tests and vector verification
171
+ - `npm run test:vectors` for vector check only
172
+
173
+ ### Changed
174
+ - `SECURITY.md` sharpened with explicit threat model and pinned upstream
175
+ `@noble/post-quantum@0.2.1` integrity hash
176
+ - `README.md` "Used in production at" section with file refs to chain.kxco.ai
177
+
178
+ No API changes from `1.0.0`.
179
+
180
+ ## [1.0.0] — 2026-05-21
181
+
182
+ First stable release. Committed public API surface:
183
+
184
+ - `mlDsa.keypairFromMaster(master, info—)`, `mlDsa.sign`, `mlDsa.verify`
185
+ - `mlKem.keypairFromMaster(master, info—)`, `mlKem.encapsulate`, `mlKem.decapsulate`
186
+ - `deriveSeed(master, info, length)`
187
+ - `fingerprint(publicKey)`, `kidEquals(a, b)`
188
+ - `webhook.envelope`, `webhook.hmacHex`, `webhook.verifyHmac`,
189
+ `webhook.pqSign`, `webhook.verifyPq`, `webhook.signDelivery`,
190
+ `webhook.verifyDelivery`
191
+
192
+ Verified at release: 9/9 functional tests + 29/29 vector checks pass.
193
+
194
+ Underlying primitives via `@noble/post-quantum@^0.2.1`. See `AUDIT.md` for
195
+ upstream audit posture (no third-party audit of the PQ package; self-audited
196
+ by maintainer at v0.6.1, April 2026). ESM-only. Node.js 18+.
197
+
198
+ ## [0.1.0] — 2026-05-21
199
+
200
+ Initial pre-release.
201
+
202
+ [Unreleased]: https://github.com/JackKXCO/kxco-post-quantum/compare/v1.1.2...HEAD
203
+ [1.1.2]: https://github.com/JackKXCO/kxco-post-quantum/compare/v1.1.1...v1.1.2
204
+ [1.1.1]: https://github.com/JackKXCO/kxco-post-quantum/compare/v1.1.0...v1.1.1
205
+ [1.1.0]: https://github.com/JackKXCO/kxco-post-quantum/compare/v1.0.3...v1.1.0
206
+ [1.0.3]: https://github.com/JackKXCO/kxco-post-quantum/compare/v1.0.2...v1.0.3
207
+ [1.0.2]: https://github.com/JackKXCO/kxco-post-quantum/compare/v1.0.1...v1.0.2
208
+ [1.0.1]: https://github.com/JackKXCO/kxco-post-quantum/compare/v1.0.0...v1.0.1
209
+ [1.0.0]: https://github.com/JackKXCO/kxco-post-quantum/compare/v0.1.0...v1.0.0
210
210
  [0.1.0]: https://github.com/JackKXCO/kxco-post-quantum/releases/tag/v0.1.0