kxco-post-quantum 1.1.11 → 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 +209 -209
- package/README.md +63 -240
- package/SECURITY.md +27 -27
- package/package.json +100 -100
- package/src/derive.d.ts +20 -20
- package/src/derive.js +47 -47
- package/src/index.d.ts +7 -7
- package/src/kid.d.ts +21 -21
- package/src/kid.js +53 -53
- package/src/ml-dsa.d.ts +45 -45
- package/src/ml-dsa.js +78 -78
- package/src/ml-kem.d.ts +49 -49
- package/src/ml-kem.js +61 -61
- package/src/webhook.d.ts +119 -119
- package/src/webhook.js +135 -135
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
|