kxco-verify 1.0.5 → 1.1.0

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,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.1.0 — 2026-07-22
4
+
5
+ Engine modernization. Public API unchanged; all 50 tests pass, including live
6
+ verification of the pinned attestation fixtures.
7
+
8
+ ### Changed
9
+ - **`@noble/post-quantum` bumped `^0.2.1` → `^0.6.1`** (FIPS 203/204/205 final
10
+ reference implementation). Absorbs the upstream breaking change: `ml_dsa65.verify`
11
+ argument order is now `(signature, message, publicKey)`, and the subpath import
12
+ requires the `.js` extension. Both are handled internally — `verifySignature()`
13
+ behaves identically.
14
+ - `engines.node` raised to `>=20.19` to match the `@noble/post-quantum@0.6`
15
+ requirement.
16
+ - `author` set to Shayne Heffernan and John Heffernan.
17
+
3
18
  ## 1.0.0 — 2026-05-24
4
19
 
5
20
  Stable release.
package/README.md CHANGED
@@ -233,7 +233,7 @@ The verifier is architecturally independent of the signer — the two share no c
233
233
 
234
234
  Signature verification uses [`@noble/post-quantum`](https://github.com/paulmillr/noble-post-quantum) ML-DSA-65, independently audited by Cure53 (2024) with no transitive dependencies. The library makes no outbound requests beyond the attestation URL you supply and the `pinAt` endpoint declared in the manifest. No data is sent to KXCO.
235
235
 
236
- To report a vulnerability, open a [private security advisory](https://github.com/JackKXCO/kxco-verify/security/advisories/new) or email **security@kxco.ai**.
236
+ To report a vulnerability, open a [private security advisory](https://github.com/KnightsbridgeAIQ/kxco-verify/security/advisories/new) or email **security@kxco.ai**.
237
237
 
238
238
  ---
239
239
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "kxco-verify",
3
- "version": "1.0.5",
4
- "description": "Standalone, browser-safe verifier for KXCO ML-DSA-65 post-quantum signed attestations and credentials \u2014 for auditors, regulators, counterparties, and anyone who needs to confirm a signature without running the full KXCO SDK.",
3
+ "version": "1.1.0",
4
+ "description": "Standalone, browser-safe verifier for KXCO ML-DSA-65 post-quantum signed attestations and credentials for auditors, regulators, counterparties, and anyone who needs to confirm a signature without running the full KXCO SDK.",
5
5
  "keywords": [
6
6
  "post-quantum",
7
7
  "pqc",
@@ -22,10 +22,14 @@
22
22
  "manifest-verification"
23
23
  ],
24
24
  "license": "Apache-2.0",
25
- "author": "KXCO by Knightsbridge <hello@kxco.ai>",
25
+ "author": "Shayne Heffernan and John Heffernan",
26
26
  "contributors": [
27
- { "name": "Shayne Heffernan" },
28
- { "name": "John Heffernan" }
27
+ {
28
+ "name": "Shayne Heffernan"
29
+ },
30
+ {
31
+ "name": "John Heffernan"
32
+ }
29
33
  ],
30
34
  "homepage": "https://verify.kxco.ai",
31
35
  "funding": "https://kxco.ai",
@@ -65,10 +69,10 @@
65
69
  "CHANGELOG.md"
66
70
  ],
67
71
  "engines": {
68
- "node": ">=18"
72
+ "node": ">=20.19"
69
73
  },
70
74
  "dependencies": {
71
- "@noble/post-quantum": "^0.2.1"
75
+ "@noble/post-quantum": "^0.6.1"
72
76
  },
73
77
  "scripts": {
74
78
  "test": "node --test --test-reporter=spec test/parse.test.js test/verify.test.js test/fetch.test.js test/index.test.js",
@@ -80,4 +84,4 @@
80
84
  "provenance": true,
81
85
  "access": "public"
82
86
  }
83
- }
87
+ }
package/src/verify.js CHANGED
@@ -5,7 +5,7 @@
5
5
  // from the Web Crypto API where available (browser, Node 20+), fallback to
6
6
  // node:crypto's createHash where SubtleCrypto.digest is not present.
7
7
 
8
- import { ml_dsa65 } from '@noble/post-quantum/ml-dsa'
8
+ import { ml_dsa65 } from '@noble/post-quantum/ml-dsa.js'
9
9
 
10
10
  /**
11
11
  * Hex string → Uint8Array. Throws on malformed input.
@@ -79,10 +79,10 @@ export function verifySignature(publicKey, message, signature) {
79
79
  const pk = typeof publicKey === 'string' ? hexToBytes(publicKey) : publicKey
80
80
  const sig = typeof signature === 'string' ? hexToBytes(signature) : signature
81
81
  const msg = typeof message === 'string' ? utf8(message) : message
82
- // @noble/post-quantum signature: (publicKey, message, signature). Matches
83
- // the canonical wrapper in kxco-post-quantum/src/ml-dsa.js.
82
+ // @noble/post-quantum ≥0.6 signature order: (signature, message, publicKey).
83
+ // Matches the canonical wrapper in kxco-post-quantum/src/ml-dsa.js.
84
84
  try {
85
- return ml_dsa65.verify(pk, msg, sig)
85
+ return ml_dsa65.verify(sig, msg, pk)
86
86
  } catch {
87
87
  return false
88
88
  }