kxco-post-quantum 1.1.3 → 1.1.4

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