@nexart/cli 0.12.2 → 0.14.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,57 @@
1
1
  # @nexart/cli — Changelog
2
2
 
3
+ ## v0.14.0 (2026-06-17) — clearer `verify-bundle` timestamp output
4
+
5
+ Product polish for the optional RFC 3161 timestamp verification shipped in v0.13.0.
6
+ **Strictly additive and behaviour-preserving:** `certificateHash`, canonicalisation,
7
+ the signature check, the Integrity/Signature results, and the process exit code are
8
+ all byte-for-byte unchanged, and the ASN.1 stack (`pkijs`/`asn1js`) is still loaded
9
+ **only** when `--verify-timestamp` is used.
10
+
11
+ - **Clearer wording.** The timestamp line now reads `✔ Externally anchored
12
+ timestamp: valid` (and `invalid (…)` / `untrusted (unknown root)` / `present (not
13
+ verified)` / `not present`), making explicit that the check proves anchoring to an
14
+ *independent* time authority rather than an internal clock.
15
+ - **New Timestamp Details block.** When a token is actually verified, the
16
+ human-readable output now adds a `Timestamp Details:` block showing the **Provider**,
17
+ the token's **Time** (`genTime`, sub-second precision stripped), and whether the
18
+ message **Imprint** matched the bundle's `certificateHash`. The block is suppressed
19
+ when no verification was attempted (flag absent, no token, or an operational error
20
+ such as an unreadable `--tsa-roots`), so it never reports a misleading imprint state.
21
+ - **Tests:** added an imprint-mismatch case — a real TSA token minted over a
22
+ *different* digest — at both the verifier and CLI layers, asserting `invalid
23
+ (imprint mismatch)` while Integrity stays `PASS` and the exit code stays `0`.
24
+
25
+ ## v0.13.0 (2026-06-16) — optional RFC 3161 timestamp verification for `verify-bundle`
26
+
27
+ Additive feature. No breaking changes. Existing `verify-bundle` behavior is
28
+ byte-for-byte unchanged unless you opt in with `--verify-timestamp`.
29
+
30
+ - **New:** `nexart verify-bundle --verify-timestamp [--tsa-roots <pem>]` performs
31
+ an **offline** RFC 3161 TimeStampToken verification when a bundle carries one
32
+ (in `trustedTimestamps[]` or a singular `timestamp`). It checks, in order: the
33
+ TSA's CMS signature over the embedded `TSTInfo`; that the token's message
34
+ imprint equals the bundle's `certificateHash` digest; that the TSA signing
35
+ certificate chains to a trusted root supplied via `--tsa-roots`; that the
36
+ certificate is valid at the timestamp; and that the timestamp is at or after
37
+ `createdAt`.
38
+ - **Strictly additive / non-negotiable invariants:** the timestamp layer never
39
+ modifies `certificateHash`, is never included in canonicalisation, and **never
40
+ affects the Integrity or Signature results or the process exit code.** The exit
41
+ code remains a function of integrity + signature alone.
42
+ - **Dependency-light by default:** the ASN.1 stack (`pkijs` / `asn1js`) is
43
+ dynamically imported **only** when `--verify-timestamp` is used. Ordinary
44
+ integrity/signature verification loads nothing new, and `standaloneVerify.ts`
45
+ remains `node:crypto`-only and auditable.
46
+ - **Output:** a new line — `✔ Timestamp (RFC3161): VALID (<tsa>)`, or `INVALID
47
+ (signature | imprint mismatch | expired | time | malformed token)`, `UNTRUSTED
48
+ (unknown root)`, `PRESENT (not verified)` (token present, flag absent), or
49
+ `NOT PRESENT`. `--json` gains an additive, informational `timestamp` object.
50
+ - **Tests:** cross-implementation interop fixtures (OpenSSL-produced token,
51
+ pkijs-based verifier) cover valid, tampered, wrong-imprint, missing/untrusted
52
+ root, expired, time-inconsistent, malformed, present-unverified, and not-present
53
+ cases, plus CLI integration asserting integrity/exit-code are untouched.
54
+
3
55
  ## v0.12.2 (2026-06-15) — bump core to `@nexart/ai-execution@^0.23.0`
4
56
 
5
57
  Dependency alignment. No command behavior changes, no breaking changes.
package/README.md CHANGED
@@ -660,6 +660,9 @@ nexart verify-bundle cer.json --public-key node-keys.json --json
660
660
 
661
661
  # Show every intermediate step (canonical mode, byte counts, hashes)
662
662
  nexart verify-bundle cer.json --public-key node-keys.json --verbose
663
+
664
+ # Additionally verify an embedded RFC 3161 timestamp against trusted TSA roots
665
+ nexart verify-bundle cer.json --verify-timestamp --tsa-roots tsa-roots.pem
663
666
  ```
664
667
 
665
668
  ### What it checks
@@ -687,6 +690,22 @@ nexart verify-bundle cer.json --public-key node-keys.json --verbose
687
690
  If a signature is not present, integrity can still pass, but authenticity is
688
691
  not established.
689
692
 
693
+ 3. **Timestamp (RFC 3161)** *(optional, additive — `--verify-timestamp`)* — when
694
+ the bundle carries an RFC 3161 TimeStampToken (in `trustedTimestamps[]` or a
695
+ singular `timestamp`), this **offline** check confirms the token anchors the
696
+ bundle to a point in time. It verifies, in order: (1) the TSA's CMS signature
697
+ over the embedded `TSTInfo`; (2) that the token's message imprint equals the
698
+ bundle's `certificateHash` digest; (3) that the TSA signing certificate chains
699
+ to a root supplied via `--tsa-roots`; (4) that the certificate is valid at the
700
+ timestamp; and (5) that the timestamp is at or after the bundle's `createdAt`.
701
+
702
+ This layer is **strictly additive**: it never modifies `certificateHash`, is
703
+ never included in canonicalisation, and **never affects the Integrity or
704
+ Signature results or the exit code**. The ASN.1 stack (`pkijs`) is loaded
705
+ **only** when `--verify-timestamp` is passed — ordinary verification stays
706
+ dependency-light. Without the flag, an existing timestamp is reported as
707
+ `present (not verified)`; with no timestamp at all, `not present`.
708
+
690
709
  ### Output
691
710
 
692
711
  Human-readable (default):
@@ -695,6 +714,32 @@ Human-readable (default):
695
714
  ✔ Integrity: PASS
696
715
  ✔ Signature: PASS
697
716
  Protocol: 1.3.0
717
+ ✔ Externally anchored timestamp: valid
718
+
719
+ Timestamp Details:
720
+ Provider: freeTSA
721
+ Time: 2026-06-17T10:52:12Z
722
+ Imprint: match
723
+ ```
724
+
725
+ The phrasing — **"externally anchored timestamp"** — reflects that the check
726
+ proves the bundle was anchored to an *independent* time authority, not an internal
727
+ clock. When a token was actually verified, a **Timestamp Details** block follows
728
+ with the provider, the token's `genTime` (sub-second precision stripped), and
729
+ whether the message imprint matched the bundle's `certificateHash`.
730
+
731
+ The status line is one of:
732
+
733
+ ```
734
+ ✔ Externally anchored timestamp: valid
735
+ ✖ Externally anchored timestamp: invalid (signature)
736
+ ✖ Externally anchored timestamp: invalid (imprint mismatch)
737
+ ✖ Externally anchored timestamp: untrusted (unknown root)
738
+ ✖ Externally anchored timestamp: invalid (expired)
739
+ ✖ Externally anchored timestamp: invalid (time)
740
+ ✖ Externally anchored timestamp: invalid (malformed token)
741
+ ○ Externally anchored timestamp: present (not verified) # token present, flag absent
742
+ ○ Externally anchored timestamp: not present # no token in the bundle
698
743
  ```
699
744
 
700
745
  Machine-readable (`--json`):
@@ -704,13 +749,15 @@ Machine-readable (`--json`):
704
749
  "status": "verified",
705
750
  "integrity": "pass",
706
751
  "signature": "pass",
707
- "protocolVersion": "1.3.0"
752
+ "protocolVersion": "1.3.0",
753
+ "timestamp": { "status": "valid", "tsa": "freeTSA", "genTime": "2026-06-17T10:52:12.000Z" }
708
754
  }
709
755
  ```
710
756
 
711
757
  `status` is `verified` when integrity passes and the signature is not invalid
712
- (`pass` or `skipped`); otherwise it is `failed`. The process exits `0` when
713
- verified and `1` otherwise, so it is safe to use in CI.
758
+ (`pass` or `skipped`); otherwise it is `failed`. The `timestamp` field is always
759
+ present and purely informational **it never changes `status` or the exit code.**
760
+ The process exits `0` when verified and `1` otherwise, so it is safe to use in CI.
714
761
 
715
762
  **Options:**
716
763
  | Flag | Default | Description |
@@ -719,6 +766,8 @@ verified and `1` otherwise, so it is safe to use in CI.
719
766
  | `--kid` | — | Key id to select when `--public-key` is a `NodeKeysDocument`. Strict — if the requested kid is absent, the signature **fails closed** (no fallback to another key) |
720
767
  | `--json` | `false` | Emit a machine-readable result |
721
768
  | `--verbose` | `false` | Print intermediate verification steps |
769
+ | `--verify-timestamp` | `false` | Additionally verify an embedded RFC 3161 timestamp (offline; never affects the exit code) |
770
+ | `--tsa-roots` | — | Path to trusted TSA root certificate(s) (PEM) used by `--verify-timestamp`. Without trusted roots, a present token reports `UNTRUSTED` |
722
771
 
723
772
  > **Note on the command name.** This command is named `verify-bundle` rather than
724
773
  > `verify` because `nexart verify <snapshot>` already exists for Code Mode
package/dist/index.d.ts CHANGED
@@ -214,7 +214,19 @@ export declare function verifyBundleStandaloneCommand(file: string, opts: {
214
214
  kid?: string;
215
215
  json?: boolean;
216
216
  verbose?: boolean;
217
- }): StandaloneVerifyResult;
217
+ verifyTimestamp?: boolean;
218
+ tsaRoots?: string;
219
+ }): Promise<StandaloneVerifyResult>;
220
+ /**
221
+ * Render the human-readable timestamp STATUS line WITHOUT importing the ASN.1 stack.
222
+ * This deliberately mirrors formatTsaLine() in tsaVerify.ts but lives here so the
223
+ * present-unverified / not-present paths never load pkijs (non-negotiable: ASN.1
224
+ * libs are only loaded behind --verify-timestamp). The wording — "Externally
225
+ * anchored timestamp" — reflects that we are proving anchoring to an INDEPENDENT
226
+ * authority, not running an internal check. Provider/time/imprint are surfaced
227
+ * separately in the Timestamp Details block (formatTimestampDetails).
228
+ */
229
+ export declare function formatTimestampLine(status: import('./tsaVerify.js').TsaStatus): string;
218
230
  /**
219
231
  * nexart ai project-verify — Read a cer.project.bundle.v1 JSON from file or stdin,
220
232
  * delegate all verification to verifyProjectBundle() from @nexart/ai-execution,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1345,7 +1345,7 @@ export async function exportVerificationCommand(file, opts, stdinReader = readSt
1345
1345
  * NOTE: named `verify-bundle` (not `verify`) because `nexart verify <snapshot>`
1346
1346
  * already exists for Code Mode snapshots and must not change (additive only).
1347
1347
  */
1348
- export function verifyBundleStandaloneCommand(file, opts) {
1348
+ export async function verifyBundleStandaloneCommand(file, opts) {
1349
1349
  let bundle;
1350
1350
  try {
1351
1351
  bundle = JSON.parse(fs.readFileSync(file, 'utf-8'));
@@ -1369,12 +1369,63 @@ export function verifyBundleStandaloneCommand(file, opts) {
1369
1369
  kid: opts.kid,
1370
1370
  verbose: opts.verbose,
1371
1371
  });
1372
+ // ── OPTIONAL, ADDITIVE: RFC 3161 timestamp verification ──────────────────────
1373
+ // Strictly additive: this NEVER alters integrity, signature, status, or the exit
1374
+ // code, and the heavy ASN.1 stack is only imported when --verify-timestamp is set.
1375
+ const timestampInfo = evaluateBundleTimestamp(bundle);
1376
+ let tsaResult = null;
1377
+ if (timestampInfo.present) {
1378
+ if (opts.verifyTimestamp) {
1379
+ // Every operational failure in this block is mapped to a timestamp STATUS,
1380
+ // never to process.exit / a thrown error — the timestamp layer must never
1381
+ // influence the exit code (which stays integrity + signature only).
1382
+ let trustedRootsPem;
1383
+ let rootsReadError;
1384
+ if (opts.tsaRoots) {
1385
+ try {
1386
+ trustedRootsPem = fs.readFileSync(opts.tsaRoots, 'utf-8');
1387
+ }
1388
+ catch (err) {
1389
+ rootsReadError = `could not read TSA roots "${opts.tsaRoots}": ${err instanceof Error ? err.message : String(err)}`;
1390
+ }
1391
+ }
1392
+ if (rootsReadError) {
1393
+ tsaResult = { status: 'untrusted-root', reason: rootsReadError };
1394
+ }
1395
+ else {
1396
+ try {
1397
+ const { verifyRfc3161Timestamp } = await import('./tsaVerify.js');
1398
+ tsaResult = await verifyRfc3161Timestamp({
1399
+ token: timestampInfo.token,
1400
+ certificateHash: timestampInfo.certificateHash ?? '',
1401
+ createdAt: timestampInfo.createdAt,
1402
+ trustedRootsPem,
1403
+ });
1404
+ }
1405
+ catch (err) {
1406
+ tsaResult = { status: 'malformed', reason: err instanceof Error ? err.message : String(err) };
1407
+ }
1408
+ }
1409
+ }
1410
+ else {
1411
+ tsaResult = { status: 'present-unverified' };
1412
+ }
1413
+ }
1414
+ else {
1415
+ tsaResult = { status: 'not-present' };
1416
+ }
1372
1417
  if (opts.json) {
1373
1418
  process.stdout.write(JSON.stringify({
1374
1419
  status: result.status,
1375
1420
  integrity: result.integrity,
1376
1421
  signature: result.signature,
1377
1422
  protocolVersion: result.protocolVersion,
1423
+ timestamp: {
1424
+ status: tsaResult.status,
1425
+ ...(tsaResult.tsa ? { tsa: tsaResult.tsa } : {}),
1426
+ ...(tsaResult.genTime ? { genTime: tsaResult.genTime } : {}),
1427
+ ...(tsaResult.reason ? { reason: tsaResult.reason } : {}),
1428
+ },
1378
1429
  }, null, 2) + '\n');
1379
1430
  }
1380
1431
  else {
@@ -1389,14 +1440,142 @@ export function verifyBundleStandaloneCommand(file, opts) {
1389
1440
  console.log(`${mark(result.integrity)} Integrity: ${label(result.integrity)}`);
1390
1441
  console.log(`${mark(result.signature)} Signature: ${label(result.signature)}`);
1391
1442
  console.log(`Protocol: ${result.protocolVersion}`);
1443
+ console.log(formatTimestampLine(tsaResult.status));
1444
+ const tsDetails = formatTimestampDetails(tsaResult);
1445
+ if (tsDetails.length > 0) {
1446
+ console.log('');
1447
+ console.log('Timestamp Details:');
1448
+ for (const d of tsDetails)
1449
+ console.log(` ${d}`);
1450
+ }
1392
1451
  if (result.status === 'failed' || result.reasons.length > 0) {
1393
1452
  for (const r of result.reasons)
1394
1453
  console.error(` ! ${r}`);
1395
1454
  }
1455
+ if (opts.verbose && tsaResult.reason && tsaResult.status !== 'valid') {
1456
+ console.error(` ! Timestamp: ${tsaResult.reason}`);
1457
+ }
1396
1458
  }
1459
+ // Exit code is determined SOLELY by integrity + signature — never by the timestamp.
1397
1460
  process.exitCode = result.status === 'verified' ? 0 : 1;
1398
1461
  return result;
1399
1462
  }
1463
+ /**
1464
+ * Locate an RFC 3161 timestamp in a CER bundle WITHOUT mutating it. Supports both
1465
+ * the canonical `trustedTimestamps[]` array (each { type:'rfc3161', tsa, timestamp,
1466
+ * token }) and a singular `timestamp` object. Returns the base64 token plus the
1467
+ * certificateHash/createdAt needed to verify it. Reading this never affects any
1468
+ * other verification result.
1469
+ */
1470
+ function evaluateBundleTimestamp(bundle) {
1471
+ if (!bundle || typeof bundle !== 'object')
1472
+ return { present: false };
1473
+ const b = bundle;
1474
+ const certificateHash = typeof b.certificateHash === 'string' ? b.certificateHash : undefined;
1475
+ const createdAt = typeof b.createdAt === 'string' ? b.createdAt : undefined;
1476
+ let token;
1477
+ const arr = b.trustedTimestamps;
1478
+ if (Array.isArray(arr)) {
1479
+ const entry = arr.find((e) => e && typeof e === 'object' && e.type === 'rfc3161' && typeof e.token === 'string');
1480
+ if (entry)
1481
+ token = entry.token;
1482
+ }
1483
+ if (!token && b.timestamp && typeof b.timestamp === 'object') {
1484
+ const t = b.timestamp;
1485
+ if (typeof t.token === 'string')
1486
+ token = t.token;
1487
+ }
1488
+ return token ? { present: true, token, certificateHash, createdAt } : { present: false };
1489
+ }
1490
+ /**
1491
+ * Render the human-readable timestamp STATUS line WITHOUT importing the ASN.1 stack.
1492
+ * This deliberately mirrors formatTsaLine() in tsaVerify.ts but lives here so the
1493
+ * present-unverified / not-present paths never load pkijs (non-negotiable: ASN.1
1494
+ * libs are only loaded behind --verify-timestamp). The wording — "Externally
1495
+ * anchored timestamp" — reflects that we are proving anchoring to an INDEPENDENT
1496
+ * authority, not running an internal check. Provider/time/imprint are surfaced
1497
+ * separately in the Timestamp Details block (formatTimestampDetails).
1498
+ */
1499
+ export function formatTimestampLine(status) {
1500
+ const CHECK = '\u2714';
1501
+ const CROSS = '\u2716';
1502
+ const CIRCLE = '\u25CB';
1503
+ switch (status) {
1504
+ case 'valid':
1505
+ return `${CHECK} Externally anchored timestamp: valid`;
1506
+ case 'invalid-signature':
1507
+ return `${CROSS} Externally anchored timestamp: invalid (signature)`;
1508
+ case 'invalid-imprint':
1509
+ return `${CROSS} Externally anchored timestamp: invalid (imprint mismatch)`;
1510
+ case 'untrusted-root':
1511
+ return `${CROSS} Externally anchored timestamp: untrusted (unknown root)`;
1512
+ case 'expired':
1513
+ return `${CROSS} Externally anchored timestamp: invalid (expired)`;
1514
+ case 'invalid-time':
1515
+ return `${CROSS} Externally anchored timestamp: invalid (time)`;
1516
+ case 'malformed':
1517
+ return `${CROSS} Externally anchored timestamp: invalid (malformed token)`;
1518
+ case 'present-unverified':
1519
+ return `${CIRCLE} Externally anchored timestamp: present (not verified)`;
1520
+ case 'not-present':
1521
+ default:
1522
+ return `${CIRCLE} Externally anchored timestamp: not present`;
1523
+ }
1524
+ }
1525
+ /**
1526
+ * Build the "Timestamp Details" block lines (Provider / Time / Imprint). Returns an
1527
+ * empty array when no verification was attempted (flag absent → present-unverified,
1528
+ * or no token → not-present), so the block only appears for an actually-verified
1529
+ * token. Pure string logic — no ASN.1 import. The imprint state is INFERRED from the
1530
+ * status: the verifier checks signature → imprint → trust → validity → time in that
1531
+ * order, so any status at or past the trust stage implies the imprint already matched.
1532
+ */
1533
+ function formatTimestampDetails(result) {
1534
+ if (result.status === 'present-unverified' || result.status === 'not-present')
1535
+ return [];
1536
+ // No genTime ⇒ the token was never parsed (operational error such as an unreadable
1537
+ // --tsa-roots, or a malformed token). There is nothing meaningful to show, and in
1538
+ // particular the imprint was NOT checked — so suppress the block entirely.
1539
+ if (!result.genTime)
1540
+ return [];
1541
+ const time = result.genTime.replace(/\.\d{3}Z$/, 'Z');
1542
+ return [
1543
+ `Provider: ${deriveTsaProvider(result.tsa)}`,
1544
+ `Time: ${time}`,
1545
+ `Imprint: ${imprintState(result.status)}`,
1546
+ ];
1547
+ }
1548
+ /** Map a TSA signer common name to a friendly provider label (best-effort). */
1549
+ function deriveTsaProvider(tsa) {
1550
+ if (!tsa)
1551
+ return 'unknown';
1552
+ const n = tsa.toLowerCase();
1553
+ if (n.includes('digicert'))
1554
+ return 'DigiCert';
1555
+ if (n.includes('freetsa') || n.includes('free tsa'))
1556
+ return 'freeTSA';
1557
+ if (n.includes('sectigo'))
1558
+ return 'Sectigo';
1559
+ if (n.includes('globalsign'))
1560
+ return 'GlobalSign';
1561
+ if (n.includes('apple'))
1562
+ return 'Apple';
1563
+ return tsa;
1564
+ }
1565
+ /** Infer imprint state from the verification status (see formatTimestampDetails). */
1566
+ function imprintState(status) {
1567
+ switch (status) {
1568
+ case 'valid':
1569
+ case 'untrusted-root':
1570
+ case 'expired':
1571
+ case 'invalid-time':
1572
+ return 'match';
1573
+ case 'invalid-imprint':
1574
+ return 'mismatch \u2716';
1575
+ default:
1576
+ return 'not checked';
1577
+ }
1578
+ }
1400
1579
  /**
1401
1580
  * nexart ai project-verify — Read a cer.project.bundle.v1 JSON from file or stdin,
1402
1581
  * delegate all verification to verifyProjectBundle() from @nexart/ai-execution,
@@ -1876,16 +2055,28 @@ if (_isMainModule) {
1876
2055
  describe: 'Show intermediate verification steps',
1877
2056
  type: 'boolean',
1878
2057
  default: false,
2058
+ })
2059
+ .option('verify-timestamp', {
2060
+ describe: 'Additionally verify an embedded RFC 3161 timestamp (offline; never affects the exit code)',
2061
+ type: 'boolean',
2062
+ default: false,
2063
+ })
2064
+ .option('tsa-roots', {
2065
+ describe: 'Path to trusted TSA root certificate(s) (PEM) for --verify-timestamp',
2066
+ type: 'string',
1879
2067
  })
1880
2068
  .example('$0 verify-bundle cer.json', 'Verify integrity offline')
1881
2069
  .example('$0 verify-bundle cer.json --public-key node-keys.json', 'Verify integrity and the node signature')
1882
- .example('$0 verify-bundle cer.json --json', 'Emit a machine-readable result');
2070
+ .example('$0 verify-bundle cer.json --json', 'Emit a machine-readable result')
2071
+ .example('$0 verify-bundle cer.json --verify-timestamp --tsa-roots tsa-roots.pem', 'Also verify an RFC 3161 timestamp');
1883
2072
  }, async (argv) => {
1884
- verifyBundleStandaloneCommand(argv.file, {
2073
+ await verifyBundleStandaloneCommand(argv.file, {
1885
2074
  publicKey: argv['public-key'],
1886
2075
  kid: argv.kid,
1887
2076
  json: argv.json,
1888
2077
  verbose: argv.verbose,
2078
+ verifyTimestamp: argv['verify-timestamp'],
2079
+ tsaRoots: argv['tsa-roots'],
1889
2080
  });
1890
2081
  })
1891
2082
  .command('export-verification [file]', 'Produce a self-contained verification package so a third party can verify a CER bundle independently', (yargs) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ export type TsaStatus = 'valid' | 'invalid-signature' | 'invalid-imprint' | 'untrusted-root' | 'expired' | 'invalid-time' | 'malformed' | 'present-unverified' | 'not-present';
2
+ export interface TsaVerifyInput {
3
+ /** base64-encoded RFC 3161 TimeStampToken (CMS SignedData). */
4
+ token: string;
5
+ /** Bundle certificateHash, e.g. "sha256:<hex>". */
6
+ certificateHash: string;
7
+ /** Bundle createdAt (ISO 8601). Optional; if absent the time check is skipped. */
8
+ createdAt?: string;
9
+ /** Concatenated PEM of trusted TSA root certificates. */
10
+ trustedRootsPem?: string;
11
+ /** Override the verification time used for chain/validity. Defaults to genTime. */
12
+ at?: Date;
13
+ }
14
+ export interface TsaVerifyResult {
15
+ status: TsaStatus;
16
+ /** Signer common name, when recoverable. */
17
+ tsa?: string;
18
+ /** TSTInfo.genTime (ISO 8601), when recoverable. */
19
+ genTime?: string;
20
+ /** Human-readable detail for diagnostics / --json. */
21
+ reason?: string;
22
+ }
23
+ /**
24
+ * Verify an RFC 3161 TimeStampToken against a bundle's certificateHash.
25
+ * Pure, offline, additive. Never throws for verification failures — every
26
+ * failure path returns a typed status. Throws only on truly unexpected internal
27
+ * errors (which the caller renders as malformed).
28
+ */
29
+ export declare function verifyRfc3161Timestamp(input: TsaVerifyInput): Promise<TsaVerifyResult>;
30
+ /**
31
+ * Render a TsaVerifyResult as the human-readable status line. Mirrors
32
+ * formatTimestampLine() in index.ts (kept in sync; index.ts has its own copy so the
33
+ * non-flag paths never load this pkijs module). The wording reflects that we prove
34
+ * anchoring to an INDEPENDENT authority. Provider/time/imprint are shown separately
35
+ * in the CLI's Timestamp Details block.
36
+ */
37
+ export declare function formatTsaLine(result: TsaVerifyResult): string;
38
+ //# sourceMappingURL=tsaVerify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsaVerify.d.ts","sourceRoot":"","sources":["../src/tsaVerify.ts"],"names":[],"mappings":"AAuDA,MAAM,MAAM,SAAS,GACjB,OAAO,GACP,mBAAmB,GACnB,iBAAiB,GACjB,gBAAgB,GAChB,SAAS,GACT,cAAc,GACd,WAAW,GACX,oBAAoB,GACpB,aAAa,CAAC;AAElB,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,EAAE,CAAC,EAAE,IAAI,CAAC;CACX;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,CAAC;IAClB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA0CD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAsH5F;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAyB7D"}
@@ -0,0 +1,247 @@
1
+ // ─────────────────────────────────────────────────────────────────────────────
2
+ // tsaVerify.ts — OPTIONAL, additive RFC 3161 timestamp verification for the CLI.
3
+ //
4
+ // This module is LAZY-LOADED: index.ts only `await import('./tsaVerify.js')` when
5
+ // the user passes `--verify-timestamp`. The heavy ASN.1 stack (pkijs/asn1js) is
6
+ // therefore never loaded for ordinary integrity/signature verification.
7
+ //
8
+ // It is STRICTLY ADDITIVE and never touches Integrity, Signature, certificateHash,
9
+ // or the process exit code. It only inspects an already-present RFC 3161
10
+ // TimeStampToken and reports whether that token cryptographically anchors the
11
+ // bundle's certificateHash to a point in time, under a caller-supplied trust root.
12
+ //
13
+ // OFFLINE ONLY: no network. Trust roots are supplied by the caller as PEM.
14
+ //
15
+ // Verification steps (in order), per RFC 3161 §2.4.2:
16
+ // (1) signature — the TSA's CMS SignedData signature over the embedded TSTInfo.
17
+ // (2) imprint — TSTInfo.messageImprint.hashedMessage MUST equal the bundle's
18
+ // certificateHash digest (the sha256 hex, prefix stripped).
19
+ // (3) trust — the TSA signing certificate chains to a supplied trusted root.
20
+ // (4) validity — the TSA signing certificate is valid at the verification time
21
+ // (genTime by default; overridable via `at` for testing).
22
+ // (5) time — TSTInfo.genTime MUST be >= the bundle's createdAt.
23
+ //
24
+ // Status → CLI status line (rendered by index.ts), plus a Timestamp Details block
25
+ // (Provider / Time / Imprint) shown whenever a token was actually verified:
26
+ // valid ✔ Externally anchored timestamp: valid
27
+ // invalid-signature ✖ Externally anchored timestamp: invalid (signature)
28
+ // invalid-imprint ✖ Externally anchored timestamp: invalid (imprint mismatch)
29
+ // untrusted-root ✖ Externally anchored timestamp: untrusted (unknown root)
30
+ // expired ✖ Externally anchored timestamp: invalid (expired)
31
+ // invalid-time ✖ Externally anchored timestamp: invalid (time)
32
+ // malformed ✖ Externally anchored timestamp: invalid (malformed token)
33
+ // present-unverified ○ Externally anchored timestamp: present (not verified) [flag absent]
34
+ // not-present ○ Externally anchored timestamp: not present
35
+ //
36
+ // On the signature check: pkijs hard-codes RFC 3161 semantics for the TSTInfo
37
+ // eContentType (it insists on the original pre-image so it can recompute the
38
+ // imprint). NexArt instead binds the imprint *directly* to the certificateHash
39
+ // digest, so we retype the outer eContentType to id-data and let pkijs perform a
40
+ // plain CMS SignedData verification over the embedded eContent. This is sound:
41
+ // the CMS signature covers the signedAttrs (which carry the *real* content-type
42
+ // and message-digest attributes), never the outer eContentType field. We then
43
+ // assert the content-type attribute is genuinely id-ct-TSTInfo ourselves.
44
+ // ─────────────────────────────────────────────────────────────────────────────
45
+ import { webcrypto } from 'node:crypto';
46
+ import * as asn1js from 'asn1js';
47
+ import * as pkijs from 'pkijs';
48
+ const OID_SIGNED_DATA = '1.2.840.113549.1.7.2';
49
+ const OID_ID_DATA = '1.2.840.113549.1.7.1';
50
+ const OID_ID_CT_TSTINFO = '1.2.840.113549.1.9.16.1.4';
51
+ const OID_CONTENT_TYPE_ATTR = '1.2.840.113549.1.9.3';
52
+ const OID_SHA256 = '2.16.840.1.101.3.4.2.1';
53
+ let engineReady = false;
54
+ function ensureEngine() {
55
+ if (engineReady)
56
+ return;
57
+ pkijs.setEngine('nexart-node', new pkijs.CryptoEngine({ name: 'nexart-node', crypto: webcrypto }));
58
+ engineReady = true;
59
+ }
60
+ function toArrayBuffer(u8) {
61
+ return u8.byteOffset === 0 && u8.byteLength === u8.buffer.byteLength
62
+ ? u8.buffer
63
+ : u8.slice().buffer;
64
+ }
65
+ /** Parse every CERTIFICATE block out of a concatenated PEM string. */
66
+ function parsePemCertificates(pem) {
67
+ const out = [];
68
+ const re = /-----BEGIN CERTIFICATE-----([\s\S]*?)-----END CERTIFICATE-----/g;
69
+ let m;
70
+ while ((m = re.exec(pem)) !== null) {
71
+ const der = Buffer.from(m[1].replace(/\s+/g, ''), 'base64');
72
+ const asn1 = asn1js.fromBER(toArrayBuffer(new Uint8Array(der)));
73
+ if (asn1.offset === -1)
74
+ continue;
75
+ out.push(new pkijs.Certificate({ schema: asn1.result }));
76
+ }
77
+ return out;
78
+ }
79
+ function signerCommonName(cert) {
80
+ if (!cert)
81
+ return undefined;
82
+ for (const tv of cert.subject.typesAndValues) {
83
+ if (tv.type === '2.5.4.3')
84
+ return String(tv.value.valueBlock.value);
85
+ }
86
+ return undefined;
87
+ }
88
+ function hexFromCertificateHash(certificateHash) {
89
+ const m = /^sha256:([0-9a-fA-F]{64})$/.exec(certificateHash.trim());
90
+ return m ? m[1].toLowerCase() : null;
91
+ }
92
+ /**
93
+ * Verify an RFC 3161 TimeStampToken against a bundle's certificateHash.
94
+ * Pure, offline, additive. Never throws for verification failures — every
95
+ * failure path returns a typed status. Throws only on truly unexpected internal
96
+ * errors (which the caller renders as malformed).
97
+ */
98
+ export async function verifyRfc3161Timestamp(input) {
99
+ ensureEngine();
100
+ // ── decode base64 → DER → CMS ContentInfo / SignedData ──
101
+ let sd;
102
+ let eContentBytes;
103
+ let tst;
104
+ let contentTypeAttrOk = false;
105
+ try {
106
+ const der = Buffer.from(input.token, 'base64');
107
+ if (der.length === 0)
108
+ return { status: 'malformed', reason: 'empty token' };
109
+ const ciAsn1 = asn1js.fromBER(toArrayBuffer(new Uint8Array(der)));
110
+ if (ciAsn1.offset === -1)
111
+ return { status: 'malformed', reason: 'not valid DER' };
112
+ const ci = new pkijs.ContentInfo({ schema: ciAsn1.result });
113
+ if (ci.contentType !== OID_SIGNED_DATA) {
114
+ return { status: 'malformed', reason: `unexpected contentType ${ci.contentType}` };
115
+ }
116
+ sd = new pkijs.SignedData({ schema: ci.content });
117
+ if (sd.encapContentInfo.eContentType !== OID_ID_CT_TSTINFO) {
118
+ return { status: 'malformed', reason: `not an RFC 3161 token (eContentType ${sd.encapContentInfo.eContentType})` };
119
+ }
120
+ const eContent = sd.encapContentInfo.eContent;
121
+ if (!eContent)
122
+ return { status: 'malformed', reason: 'token has no embedded TSTInfo' };
123
+ eContentBytes = eContent.valueBlock.valueHexView.slice();
124
+ const tstAsn1 = asn1js.fromBER(toArrayBuffer(eContentBytes));
125
+ if (tstAsn1.offset === -1)
126
+ return { status: 'malformed', reason: 'TSTInfo is not valid DER' };
127
+ tst = new pkijs.TSTInfo({ schema: tstAsn1.result });
128
+ // The content-type signed attribute MUST genuinely be id-ct-TSTInfo. We retype
129
+ // the OUTER eContentType for the CMS verify below, so this attribute is the
130
+ // real, signature-protected assertion that this is a timestamp token.
131
+ const si = sd.signerInfos?.[0];
132
+ const ctAttr = si?.signedAttrs?.attributes.find((a) => a.type === OID_CONTENT_TYPE_ATTR);
133
+ const ctVal = ctAttr ? String(ctAttr.values[0]?.valueBlock?.toString?.() ?? '') : '';
134
+ contentTypeAttrOk = ctVal === OID_ID_CT_TSTINFO;
135
+ }
136
+ catch (err) {
137
+ return { status: 'malformed', reason: err instanceof Error ? err.message : String(err) };
138
+ }
139
+ const genTime = tst.genTime instanceof Date ? tst.genTime : undefined;
140
+ const genTimeIso = genTime ? genTime.toISOString() : undefined;
141
+ // ── (1) CMS signature over the embedded TSTInfo ──
142
+ let signerCert;
143
+ try {
144
+ // Retype outer eContentType so pkijs runs a plain CMS verify (see header note).
145
+ sd.encapContentInfo.eContentType = OID_ID_DATA;
146
+ const vr = await sd.verify({ signer: 0, extendedMode: true });
147
+ signerCert = vr.signerCertificate;
148
+ if (!vr.signatureVerified) {
149
+ return { status: 'invalid-signature', tsa: signerCommonName(signerCert), genTime: genTimeIso, reason: 'CMS signature did not verify' };
150
+ }
151
+ }
152
+ catch {
153
+ return { status: 'invalid-signature', genTime: genTimeIso, reason: 'CMS signature verification failed' };
154
+ }
155
+ if (!contentTypeAttrOk) {
156
+ return { status: 'invalid-signature', tsa: signerCommonName(signerCert), genTime: genTimeIso, reason: 'content-type attribute is not id-ct-TSTInfo' };
157
+ }
158
+ const tsa = signerCommonName(signerCert);
159
+ // ── (2) imprint MUST equal the bundle's certificateHash digest ──
160
+ const wantHex = hexFromCertificateHash(input.certificateHash);
161
+ if (!wantHex) {
162
+ return { status: 'invalid-imprint', tsa, genTime: genTimeIso, reason: `certificateHash is not a sha256 digest: ${input.certificateHash}` };
163
+ }
164
+ const imprintAlg = tst.messageImprint.hashAlgorithm.algorithmId;
165
+ if (imprintAlg !== OID_SHA256) {
166
+ return { status: 'invalid-imprint', tsa, genTime: genTimeIso, reason: `imprint hash algorithm is not sha256 (${imprintAlg})` };
167
+ }
168
+ const gotHex = Buffer.from(tst.messageImprint.hashedMessage.valueBlock.valueHexView).toString('hex').toLowerCase();
169
+ if (gotHex !== wantHex) {
170
+ return { status: 'invalid-imprint', tsa, genTime: genTimeIso, reason: `imprint ${gotHex} != certificateHash ${wantHex}` };
171
+ }
172
+ // ── (3) trust: chain the signer cert to a supplied trusted root ──
173
+ const roots = input.trustedRootsPem ? parsePemCertificates(input.trustedRootsPem) : [];
174
+ if (roots.length === 0) {
175
+ return { status: 'untrusted-root', tsa, genTime: genTimeIso, reason: 'no trusted roots provided (use --tsa-roots)' };
176
+ }
177
+ const checkDate = input.at ?? genTime ?? new Date();
178
+ const poolCerts = (sd.certificates ?? []).filter((c) => c instanceof pkijs.Certificate);
179
+ let chainOk = false;
180
+ let chainMsg = '';
181
+ try {
182
+ const engine = new pkijs.CertificateChainValidationEngine({
183
+ trustedCerts: roots,
184
+ certs: poolCerts.length > 0 ? poolCerts : signerCert ? [signerCert] : [],
185
+ checkDate,
186
+ });
187
+ const chain = await engine.verify();
188
+ chainOk = chain.result === true;
189
+ chainMsg = chain.resultMessage ?? '';
190
+ }
191
+ catch (err) {
192
+ chainMsg = err instanceof Error ? err.message : String(err);
193
+ }
194
+ // ── (4) validity window of the signer cert at the verification time ──
195
+ if (signerCert) {
196
+ const notBefore = signerCert.notBefore.value;
197
+ const notAfter = signerCert.notAfter.value;
198
+ if (checkDate < notBefore || checkDate > notAfter) {
199
+ return { status: 'expired', tsa, genTime: genTimeIso, reason: `signing certificate not valid at ${checkDate.toISOString()}` };
200
+ }
201
+ }
202
+ if (!chainOk) {
203
+ return { status: 'untrusted-root', tsa, genTime: genTimeIso, reason: chainMsg || 'no path to a trusted root' };
204
+ }
205
+ // ── (5) genTime >= createdAt ──
206
+ if (input.createdAt) {
207
+ const created = new Date(input.createdAt);
208
+ if (!Number.isNaN(created.getTime()) && genTime && genTime.getTime() < created.getTime()) {
209
+ return { status: 'invalid-time', tsa, genTime: genTimeIso, reason: `genTime ${genTimeIso} precedes createdAt ${input.createdAt}` };
210
+ }
211
+ }
212
+ return { status: 'valid', tsa, genTime: genTimeIso };
213
+ }
214
+ /**
215
+ * Render a TsaVerifyResult as the human-readable status line. Mirrors
216
+ * formatTimestampLine() in index.ts (kept in sync; index.ts has its own copy so the
217
+ * non-flag paths never load this pkijs module). The wording reflects that we prove
218
+ * anchoring to an INDEPENDENT authority. Provider/time/imprint are shown separately
219
+ * in the CLI's Timestamp Details block.
220
+ */
221
+ export function formatTsaLine(result) {
222
+ const CHECK = '\u2714';
223
+ const CROSS = '\u2716';
224
+ const CIRCLE = '\u25CB';
225
+ switch (result.status) {
226
+ case 'valid':
227
+ return `${CHECK} Externally anchored timestamp: valid`;
228
+ case 'invalid-signature':
229
+ return `${CROSS} Externally anchored timestamp: invalid (signature)`;
230
+ case 'invalid-imprint':
231
+ return `${CROSS} Externally anchored timestamp: invalid (imprint mismatch)`;
232
+ case 'untrusted-root':
233
+ return `${CROSS} Externally anchored timestamp: untrusted (unknown root)`;
234
+ case 'expired':
235
+ return `${CROSS} Externally anchored timestamp: invalid (expired)`;
236
+ case 'invalid-time':
237
+ return `${CROSS} Externally anchored timestamp: invalid (time)`;
238
+ case 'malformed':
239
+ return `${CROSS} Externally anchored timestamp: invalid (malformed token)`;
240
+ case 'present-unverified':
241
+ return `${CIRCLE} Externally anchored timestamp: present (not verified)`;
242
+ case 'not-present':
243
+ default:
244
+ return `${CIRCLE} Externally anchored timestamp: not present`;
245
+ }
246
+ }
247
+ //# sourceMappingURL=tsaVerify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsaVerify.js","sourceRoot":"","sources":["../src/tsaVerify.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexart/cli",
3
- "version": "0.12.2",
3
+ "version": "0.14.0",
4
4
  "description": "NexArt CLI — Code Mode and AI execution certification",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -11,7 +11,7 @@
11
11
  "scripts": {
12
12
  "build": "tsc",
13
13
  "dev": "tsx src/index.ts",
14
- "test": "tsc && node --test --test-concurrency 1 dist/__tests__/ai.test.js dist/__tests__/replay.test.js",
14
+ "test": "tsc && node --test --test-concurrency 1 dist/__tests__/ai.test.js dist/__tests__/replay.test.js dist/__tests__/tsa.test.js",
15
15
  "smoke": "node dist/index.js --help > /dev/null && node dist/index.js ai --help > /dev/null && node dist/index.js ai project-verify --help > /dev/null && echo '[smoke] PASS: --help, ai --help, and ai project-verify --help all print output'",
16
16
  "prepublishOnly": "npm run build && npm run test && npm run smoke"
17
17
  },
@@ -31,6 +31,8 @@
31
31
  "dependencies": {
32
32
  "@nexart/ai-execution": "^0.23.0",
33
33
  "@nexart/codemode-sdk": "^1.12.0",
34
+ "asn1js": "^3.0.5",
35
+ "pkijs": "^3.4.0",
34
36
  "yargs": "^17.7.2"
35
37
  },
36
38
  "optionalDependencies": {