kxco-verify 1.4.1 → 1.5.1
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 +19 -0
- package/README.md +6 -6
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.5.1 (2026-10-16)
|
|
4
|
+
|
|
5
|
+
**`@noble/post-quantum` 0.7.0 to 0.7.1, exact pin.** No change to the API or its behaviour.
|
|
6
|
+
|
|
7
|
+
The hold at 0.7.0 rested on a finding that 0.7.1 failed nine NIST SLH-DSA verification vectors. That finding was a fault in kxco-post-quantum's ACVP runner, corrected there on 15 October 2026, not in 0.7.1. On the corrected runner the full NIST ACVP set on 0.7.1 returns 1793 passed, 0 failed, 310 skipped, the same totals as 0.7.0. 0.7.1 snapshots its options object and rejects options it does not recognise; this package passes none, so nothing on its verification path changes.
|
|
8
|
+
|
|
9
|
+
## 1.5.0 (2026-10-09)
|
|
10
|
+
|
|
11
|
+
Runtime support. No change to the API or its behaviour.
|
|
12
|
+
|
|
13
|
+
**Node.js 22.12 or later is required.** `engines.node` moves from `>=20.19`
|
|
14
|
+
to `>=22.12`. Node 20 reached end of life on 30 April 2026. 22.12 is the
|
|
15
|
+
first Node 22 release that loads ES modules through `require()` without a
|
|
16
|
+
flag, the same property the 20.19 floor provided.
|
|
17
|
+
|
|
18
|
+
**CI tests every change on Node 22, 24 and 26.** It tested Node 18, 20 and 22 before.
|
|
19
|
+
|
|
20
|
+
**Releases are built on Node 26**, where they were built on Node 24.
|
|
21
|
+
|
|
3
22
|
## 1.4.1
|
|
4
23
|
|
|
5
24
|
Documentation. No source change.
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
[](https://nodejs.org)
|
|
12
12
|
[](https://verify.kxco.ai)
|
|
13
13
|
|
|
14
|
-
Standalone post-quantum credential and attestation verifier for KXCO ML-DSA-87 and ML-DSA-65 signed documents. One dependency, pinned exactly. Works in any modern browser and in Node.js
|
|
14
|
+
Standalone post-quantum credential and attestation verifier for KXCO ML-DSA-87 and ML-DSA-65 signed documents. One dependency, pinned exactly. Works in any modern browser and in Node.js 22.12 and later.
|
|
15
15
|
|
|
16
16
|
- **No KXCO server in the trust path.** `verifyManifest()` makes no network request at all, and `verifyUrl()` contacts only the attestation URL you pass and the key endpoint the manifest names.
|
|
17
17
|
- **Runs in the browser as shipped.** No `Buffer`, no `process` and SHA-256 from WebCrypto, which is how [verify.kxco.ai](https://verify.kxco.ai) checks a signature entirely in the tab.
|
|
@@ -19,7 +19,7 @@ Standalone post-quantum credential and attestation verifier for KXCO ML-DSA-87 a
|
|
|
19
19
|
- **Live revocation on request.** `--live` asks the KXCO key registry whether the signing kid is still active, and fails closed.
|
|
20
20
|
- **Made for CI.** `npx kxco-verify <url>` exits 0 for valid, 1 for invalid or revoked, 2 when it cannot fetch or parse and 3 for rotated, with `--json` for machines.
|
|
21
21
|
- **Independent of the signer.** It calls the primitive directly and shares none of the KXCO signing code, so it can be audited on its own.
|
|
22
|
-
- **The primitive NIST's vectors pass.** Verification runs `@noble/post-quantum` 0.7.
|
|
22
|
+
- **The primitive NIST's vectors pass.** Verification runs `@noble/post-quantum` 0.7.1, pinned exactly: the version [`kxco-post-quantum`](https://github.com/KnightsbridgeAIQ/kxco-post-quantum/blob/main/CONFORMANCE.md) holds to 1,793 NIST ACVP vectors passed, 0 failed, and 225 interoperability checks against liboqs, Bouncy Castle and the Python reference implementations, 0 failed.
|
|
23
23
|
|
|
24
24
|
**The migration has dates.**
|
|
25
25
|
|
|
@@ -49,7 +49,7 @@ To **sign** attestations, pick the signing package from [the KXCO post-quantum f
|
|
|
49
49
|
npm install kxco-verify
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
Node.js
|
|
52
|
+
Node.js 22.12 and later. ESM only. One dependency, and no KXCO server in the trust path.
|
|
53
53
|
|
|
54
54
|
## Command line
|
|
55
55
|
|
|
@@ -258,7 +258,7 @@ hexEquals(a: string, b: string): boolean
|
|
|
258
258
|
|
|
259
259
|
## Browser usage
|
|
260
260
|
|
|
261
|
-
The library is browser-safe by construction. It uses no `Buffer` and no `process`, and takes SHA-256 from `crypto.subtle`, which every modern browser and Node.js
|
|
261
|
+
The library is browser-safe by construction. It uses no `Buffer` and no `process`, and takes SHA-256 from `crypto.subtle`, which every modern browser and Node.js 22.12 and later provide.
|
|
262
262
|
|
|
263
263
|
Use a bundler (Vite, esbuild, Rollup, webpack), or load as ESM via an import map that points each package at its folder:
|
|
264
264
|
|
|
@@ -322,11 +322,11 @@ version, and every GitHub Action is pinned by commit SHA.
|
|
|
322
322
|
|
|
323
323
|
## Security
|
|
324
324
|
|
|
325
|
-
**ML-DSA-87** and **ML-DSA-65** (NIST FIPS 204) via [`@noble/post-quantum`](https://github.com/paulmillr/noble-post-quantum) 0.7.
|
|
325
|
+
**ML-DSA-87** and **ML-DSA-65** (NIST FIPS 204) via [`@noble/post-quantum`](https://github.com/paulmillr/noble-post-quantum) 0.7.1, pinned exactly. No custom cryptography.
|
|
326
326
|
|
|
327
327
|
Evidenced, and reproducible on your own machine:
|
|
328
328
|
|
|
329
|
-
- **1,793 NIST ACVP vectors passed, 0 failed** across FIPS 203, 204 and 205 on `@noble/post-quantum` 0.7.
|
|
329
|
+
- **1,793 NIST ACVP vectors passed, 0 failed** across FIPS 203, 204 and 205 on `@noble/post-quantum` 0.7.1, pinned by digest, per [CONFORMANCE.md](https://github.com/KnightsbridgeAIQ/kxco-post-quantum/blob/main/CONFORMANCE.md). The other 310 are pairings the library refuses as weaker than the parameter set
|
|
330
330
|
- **225 interoperability checks passed, 0 failed**, against OpenSSL 3.5, liboqs, Bouncy Castle and dilithium-py/kyber-py, in both directions
|
|
331
331
|
- **SLSA provenance** on every release since 1.2.1: verify with `npm audit signatures`
|
|
332
332
|
- **CycloneDX SBOM** published with every release since 1.2.1
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kxco-verify",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"description": "Free, browser-safe verifier for KXCO ML-DSA-87 and ML-DSA-65 signatures, with no KXCO server in the trust path. An auditor, regulator or counterparty confirms a signature from the artefact alone, years later, and can check the key is still live on chain.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"post-quantum",
|
|
@@ -78,10 +78,10 @@
|
|
|
78
78
|
"src"
|
|
79
79
|
],
|
|
80
80
|
"engines": {
|
|
81
|
-
"node": ">=
|
|
81
|
+
"node": ">=22.12"
|
|
82
82
|
},
|
|
83
83
|
"dependencies": {
|
|
84
|
-
"@noble/post-quantum": "0.7.
|
|
84
|
+
"@noble/post-quantum": "0.7.1"
|
|
85
85
|
},
|
|
86
86
|
"scripts": {
|
|
87
87
|
"test": "node --test --test-reporter=spec test/parse.test.js test/verify.test.js test/fetch.test.js test/index.test.js test/ml-dsa-87.test.js test/property.test.js",
|
|
@@ -106,6 +106,6 @@
|
|
|
106
106
|
},
|
|
107
107
|
"devDependencies": {
|
|
108
108
|
"fast-check": "4.10.2",
|
|
109
|
-
"kxco-post-quantum": "1.
|
|
109
|
+
"kxco-post-quantum": "1.11.0"
|
|
110
110
|
}
|
|
111
111
|
}
|