kxco-post-quantum 1.7.0 → 1.7.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.
Files changed (3) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +26 -0
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.7.1
4
+
5
+ Release integrity. No source change to the library.
6
+
7
+ Release assets are now signed with ML-DSA-65 through this package's own signing
8
+ path, and each release carries a SLSA provenance file. Until now the npm tarball
9
+ had provenance and the GitHub release, where the evidence bundle is actually
10
+ downloaded from, had neither a signature nor a statement of where it was built.
11
+
12
+ The public key is committed as release-signing-key.pub.hex and published with
13
+ each release. The signing script refuses to run if the seed in CI stops deriving
14
+ that key, and verifies every signature immediately after producing it.
15
+
3
16
  ## 1.7.0
4
17
 
5
18
  Additive. No existing export changes shape, no wire format moves, and the
package/README.md CHANGED
@@ -344,3 +344,29 @@ Apache-2.0. See [LICENSE](./LICENSE).
344
344
  ## Maintainers
345
345
 
346
346
  Shayne Heffernan and John Heffernan — [KXCO by Knightsbridge](https://kxco.ai)
347
+
348
+ ## Verifying a release
349
+
350
+ Every release asset is signed with ML-DSA-65 by this package's own signing path,
351
+ and carries a SLSA provenance file recording the workflow that built it.
352
+
353
+ ```
354
+ manifest-node24.x.json the bundle's manifest
355
+ evidence-node24.x.zip the bundle
356
+ evidence-node24.x.zip.sig ML-DSA-65 signature over the zip, hex
357
+ evidence.intoto.jsonl SLSA provenance
358
+ release-signing-key.pub.hex the public key, also committed to this repository
359
+ ```
360
+
361
+ ```js
362
+ import { readFileSync } from 'node:fs'
363
+ import { mlDsa } from 'kxco-post-quantum'
364
+
365
+ const pub = Buffer.from(readFileSync('release-signing-key.pub.hex', 'utf8').trim(), 'hex')
366
+ const sig = readFileSync('evidence-node24.x.zip.sig', 'utf8').trim()
367
+ mlDsa.verify(pub, readFileSync('evidence-node24.x.zip'), sig) // true
368
+ ```
369
+
370
+ Compare the public key against the copy in this repository before trusting a
371
+ signature: a key served alongside the artefact it signs proves only that the
372
+ same party produced both.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kxco-post-quantum",
3
- "version": "1.7.0",
3
+ "version": "1.7.1",
4
4
  "description": "ML-DSA-65, ML-KEM-768 and SLH-DSA-SHA2-192s with key fingerprinting. OpenSSL 3.5 primitives on Node 24+, JavaScript elsewhere. 2,103 NIST ACVP vectors: 1,793 passed, 0 failed, 310 skipped. 225 interop checks, 0 failed. Reproducible builds and provenance.",
5
5
  "keywords": [
6
6
  "post-quantum",