usertrust-verify 1.5.0 → 2.0.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor-verify.js","sourceRoot":"","sources":["../src/anchor-verify.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -1,55 +1,369 @@
1
1
  #!/usr/bin/env node
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  // Copyright 2026 Usertools, Inc.
4
- import { exitCodeFor, verifyTransaction, verifyVault } from "./index.js";
4
+ /**
5
+ * usertrust-verify CLI.
6
+ *
7
+ * Anchor contract (spec §7.5): the CALLER fetches anchor artifacts (aws s3
8
+ * cp, git show, SIEM export) and passes them as files/stdin; trust material
9
+ * (--pubkey = THE pinned genesis root, --successor-pin = rotation pins) is
10
+ * pinned out-of-band and NEVER read from the vault under audit. --anchor-url
11
+ * is an opt-in convenience (bare node:https GET); offline is the primary path.
12
+ */
13
+ import { readFileSync } from "node:fs";
14
+ import { parseAnchorsContent } from "./anchor-verify.js";
15
+ import { exitCodeFor, exitCodeForAnchored, verifyTransaction, verifyVault, verifyVaultWithAnchors, } from "./index.js";
5
16
  const args = process.argv.slice(2);
6
- // Parse --tx flag
17
+ function usage() {
18
+ console.log(`Usage: npx usertrust-verify <path-to-.usertrust> [options]
19
+
20
+ Options:
21
+ --tx <transferId> Verify a single transaction (receipt)
22
+ --anchor <file|-> Caller-fetched anchor artifact (repeatable; - = stdin)
23
+ --anchors <file> Anchor history file (JSONL; repeatable)
24
+ --anchor-url <url> Opt-in: fetch one anchor artifact over HTTPS
25
+ --bundle <file|-> Auditor bundle {v,records,rekorReceipts} (usertrust anchor export-bundle)
26
+ --rekor-receipts <file|-> Transparency-log receipt(s), JSON or JSONL (repeatable)
27
+ --rekor-pubkey <pem-file> PINNED transparency-log public key (repeatable)
28
+ --pubkey <pem-file> PINNED genesis root public key (out-of-band)
29
+ --successor-pin <pem-file> Pinned rotation-successor key (repeatable)
30
+ --vault-id <uuid> Expected vaultId
31
+ --require-anchor Strict: UNANCHORED/UNVERIFIABLE/STALE exit 1
32
+ --require-external-anchor Strict: exit 0 only for externally anchored
33
+ --max-anchor-age <dur> Freshness policy, e.g. 1h, 30m (operator-claimed time)
34
+ --max-unanchored-events <n> Freshness policy (clock-independent; preferred)`);
35
+ process.exit(1);
36
+ }
37
+ function parseDurationMs(raw) {
38
+ const m = /^(\d+)(ms|s|m|h|d)?$/.exec(raw);
39
+ if (m === null) {
40
+ console.error(`Invalid duration: ${raw} (use e.g. 500ms, 30s, 15m, 1h, 7d)`);
41
+ process.exit(1);
42
+ }
43
+ const n = Number.parseInt(m[1], 10);
44
+ const mult = { ms: 1, s: 1000, m: 60_000, h: 3_600_000, d: 86_400_000 }[m[2] ?? "ms"];
45
+ return n * mult;
46
+ }
47
+ function readArtifact(pathOrDash) {
48
+ if (pathOrDash === "-")
49
+ return readFileSync(0, "utf-8");
50
+ return readFileSync(pathOrDash, "utf-8");
51
+ }
52
+ const MAX_PEM_BYTES = 16 * 1024;
53
+ const MAX_BUNDLE_ITEMS = 10_000;
54
+ const BUNDLE_KEYS = new Set(["v", "records", "rekorReceipts"]);
55
+ /**
56
+ * Read one pinned log key. A file that carries no usable PEM is a usage error,
57
+ * not an empty pin: the verifier discards unusable entries, so accepting one
58
+ * here would leave the caller believing they pinned a key while the receipt was
59
+ * checked against something else entirely.
60
+ */
61
+ function readPinnedPem(path) {
62
+ const pem = readFileSync(path, "utf-8");
63
+ if (Buffer.byteLength(pem, "utf8") > MAX_PEM_BYTES) {
64
+ console.error(`--rekor-pubkey ${path}: PEM exceeds 16 KiB`);
65
+ process.exit(1);
66
+ }
67
+ if (pem.trim().length === 0 || !pem.includes("-----BEGIN PUBLIC KEY-----")) {
68
+ console.error(`--rekor-pubkey ${path}: not a PEM public key (-----BEGIN PUBLIC KEY----- missing)`);
69
+ process.exit(1);
70
+ }
71
+ return pem;
72
+ }
73
+ /**
74
+ * Strict parse of an auditor bundle: `{v:1, records, rekorReceipts?}`. A bundle
75
+ * is untrusted transport, so unknown top-level fields are rejected rather than
76
+ * ignored — a field the CLI silently drops is one an exporter can use to carry
77
+ * evidence the verifier never looks at. Element shapes are NOT validated here:
78
+ * records and receipts are re-serialized and go through the same strict parsers
79
+ * every other input does.
80
+ */
81
+ function parseBundle(raw) {
82
+ let parsed;
83
+ try {
84
+ parsed = JSON.parse(raw);
85
+ }
86
+ catch {
87
+ throw new Error("--bundle: not valid JSON");
88
+ }
89
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
90
+ throw new Error("--bundle: not an object");
91
+ }
92
+ const obj = parsed;
93
+ for (const key of Object.keys(obj)) {
94
+ if (!BUNDLE_KEYS.has(key))
95
+ throw new Error(`--bundle: unknown field "${key.slice(0, 80)}"`);
96
+ }
97
+ if (obj.v !== 1)
98
+ throw new Error("--bundle: unsupported version (expected 1)");
99
+ if (!Array.isArray(obj.records))
100
+ throw new Error("--bundle: records must be an array");
101
+ if (obj.records.length > MAX_BUNDLE_ITEMS) {
102
+ throw new Error(`--bundle: records exceeds the ${MAX_BUNDLE_ITEMS} cap`);
103
+ }
104
+ const receipts = obj.rekorReceipts ?? [];
105
+ if (!Array.isArray(receipts))
106
+ throw new Error("--bundle: rekorReceipts must be an array");
107
+ if (receipts.length > MAX_BUNDLE_ITEMS) {
108
+ throw new Error(`--bundle: rekorReceipts exceeds the ${MAX_BUNDLE_ITEMS} cap`);
109
+ }
110
+ return {
111
+ anchorsRaw: obj.records.map((record) => JSON.stringify(record)).join("\n"),
112
+ receiptsRaw: receipts.map((receipt) => JSON.stringify(receipt)),
113
+ };
114
+ }
115
+ function fetchAnchorUrl(url) {
116
+ return new Promise((resolve) => {
117
+ import("node:https")
118
+ .then((https) => {
119
+ const req = https.get(url, { timeout: 15_000 }, (res) => {
120
+ const code = res.statusCode ?? 0;
121
+ if (code < 200 || code >= 300) {
122
+ res.resume();
123
+ resolve({ ok: false, error: `HTTP ${code}` });
124
+ return;
125
+ }
126
+ const chunks = [];
127
+ res.on("data", (c) => chunks.push(c));
128
+ res.on("end", () => resolve({ ok: true, body: Buffer.concat(chunks).toString("utf-8") }));
129
+ });
130
+ req.on("timeout", () => req.destroy(new Error("timeout")));
131
+ req.on("error", (err) => resolve({ ok: false, error: err.message }));
132
+ })
133
+ .catch((err) => resolve({ ok: false, error: err.message }));
134
+ });
135
+ }
136
+ // ── Parse flags ──
7
137
  let vaultPath;
8
138
  let txId;
139
+ const anchorFiles = [];
140
+ const rekorReceiptFiles = [];
141
+ const rekorPubkeyFiles = [];
142
+ let bundleFile;
143
+ let anchorUrl;
144
+ let pubkeyFile;
145
+ const successorPinFiles = [];
146
+ let vaultId;
147
+ let requireAnchor = false;
148
+ let requireExternalAnchor = false;
149
+ let maxAnchorAgeMs;
150
+ let maxUnanchoredEvents;
9
151
  for (let i = 0; i < args.length; i++) {
10
152
  const arg = args[i];
11
- if (arg === "--tx" && i + 1 < args.length) {
12
- txId = args[i + 1];
13
- i++; // skip next arg
153
+ const next = () => {
154
+ const v = args[i + 1];
155
+ if (v === undefined)
156
+ usage();
157
+ i++;
158
+ return v;
159
+ };
160
+ if (arg === "--tx")
161
+ txId = next();
162
+ else if (arg === "--anchor" || arg === "--anchors")
163
+ anchorFiles.push(next());
164
+ else if (arg === "--anchor-url")
165
+ anchorUrl = next();
166
+ else if (arg === "--rekor-receipts")
167
+ rekorReceiptFiles.push(next());
168
+ else if (arg === "--rekor-pubkey")
169
+ rekorPubkeyFiles.push(next());
170
+ else if (arg === "--bundle")
171
+ bundleFile = next();
172
+ else if (arg === "--pubkey")
173
+ pubkeyFile = next();
174
+ else if (arg === "--successor-pin")
175
+ successorPinFiles.push(next());
176
+ else if (arg === "--vault-id")
177
+ vaultId = next();
178
+ else if (arg === "--require-anchor")
179
+ requireAnchor = true;
180
+ else if (arg === "--require-external-anchor")
181
+ requireExternalAnchor = true;
182
+ else if (arg === "--max-anchor-age")
183
+ maxAnchorAgeMs = parseDurationMs(next());
184
+ else if (arg === "--max-unanchored-events") {
185
+ const rawEvents = next();
186
+ maxUnanchoredEvents = Number.parseInt(rawEvents, 10);
187
+ // parseInt("1O0") === 1 (partial parse) and NaN comparisons are always
188
+ // false — either typo would silently weaken the staleness gate.
189
+ if (!/^\d+$/.test(rawEvents) ||
190
+ !Number.isSafeInteger(maxUnanchoredEvents) ||
191
+ maxUnanchoredEvents < 0) {
192
+ console.error("Invalid --max-unanchored-events: must be a non-negative integer");
193
+ process.exit(1);
194
+ }
14
195
  }
15
- else if (!arg.startsWith("--")) {
196
+ else if (arg === "--help" || arg === "-h")
197
+ usage();
198
+ else if (!arg.startsWith("--"))
16
199
  vaultPath = arg;
200
+ else
201
+ usage();
202
+ }
203
+ if (!vaultPath)
204
+ usage();
205
+ const anchorMode = anchorFiles.length > 0 ||
206
+ anchorUrl !== undefined ||
207
+ pubkeyFile !== undefined ||
208
+ bundleFile !== undefined ||
209
+ rekorReceiptFiles.length > 0 ||
210
+ requireAnchor ||
211
+ requireExternalAnchor;
212
+ async function buildAnchorParams() {
213
+ const externalAnchorsRaw = anchorFiles.map(readArtifact);
214
+ const rekorReceiptsRaw = rekorReceiptFiles.map(readArtifact);
215
+ if (bundleFile !== undefined) {
216
+ try {
217
+ const bundle = parseBundle(readArtifact(bundleFile));
218
+ externalAnchorsRaw.push(bundle.anchorsRaw);
219
+ rekorReceiptsRaw.push(...bundle.receiptsRaw);
220
+ }
221
+ catch (err) {
222
+ console.error(err instanceof Error ? err.message : String(err));
223
+ process.exit(1);
224
+ }
225
+ }
226
+ let witness = { requested: false };
227
+ if (anchorUrl !== undefined) {
228
+ const fetched = await fetchAnchorUrl(anchorUrl);
229
+ // AC-2.4: a 2xx with an empty or fully-unparseable body is NOT a
230
+ // consulted witness — treat it as unreachable (inconclusive) and never
231
+ // let it launder mirror-only evidence into anchorSource "external".
232
+ // But a body with ANY cleanly parsed records IS evidence: keep the
233
+ // whole body (embedded parse errors fail closed downstream) — throwing
234
+ // away 50 valid records over one truncated line would discard the very
235
+ // rollback proof the witness exists to provide.
236
+ const parsed = fetched.ok && fetched.body !== undefined ? parseAnchorsContent(fetched.body) : null;
237
+ if (parsed !== null && parsed.records.length > 0) {
238
+ externalAnchorsRaw.push(fetched.body);
239
+ witness = { requested: true, ok: true };
240
+ }
241
+ else {
242
+ witness = {
243
+ requested: true,
244
+ ok: false,
245
+ error: fetched.ok
246
+ ? "witness returned an empty or unparseable body"
247
+ : (fetched.error ?? "fetch failed"),
248
+ };
249
+ }
17
250
  }
251
+ const trust = pubkeyFile !== undefined
252
+ ? {
253
+ rootPem: readFileSync(pubkeyFile, "utf-8"),
254
+ ...(successorPinFiles.length > 0
255
+ ? { successorPinsPem: successorPinFiles.map((f) => readFileSync(f, "utf-8")) }
256
+ : {}),
257
+ }
258
+ : undefined;
259
+ return {
260
+ externalAnchorsRaw,
261
+ rekorReceiptsRaw,
262
+ rekorLogPubkeysPem: rekorPubkeyFiles.map(readPinnedPem),
263
+ ...(trust !== undefined ? { trust } : {}),
264
+ witness,
265
+ ...(maxAnchorAgeMs !== undefined ? { maxAnchorAgeMs } : {}),
266
+ ...(maxUnanchoredEvents !== undefined ? { maxUnanchoredEvents } : {}),
267
+ ...(vaultId !== undefined ? { expectedVaultId: vaultId } : {}),
268
+ };
18
269
  }
19
- if (!vaultPath) {
20
- console.log("Usage: npx usertrust-verify <path-to-.usertrust> [--tx <transferId>]");
21
- process.exit(1);
270
+ /**
271
+ * A witness-attested time on its way to a terminal. The receipt parser bounds
272
+ * integratedTime, but this value also arrives from library callers, and
273
+ * `toISOString()` throws RangeError outside ±8.64e15 ms — printing raw
274
+ * milliseconds beats crashing the verifier over a number it already distrusts.
275
+ */
276
+ function formatAttestedMs(ms) {
277
+ return Number.isFinite(ms) && Math.abs(ms) <= 8.64e15 ? new Date(ms).toISOString() : `${ms} ms`;
278
+ }
279
+ function printAnchorSection(result) {
280
+ const a = result.anchoring;
281
+ if (result.anchorState === "UNANCHORED") {
282
+ console.log("Anchor state: UNANCHORED — internal consistency only; supply --anchor + --pubkey for independent verification");
283
+ return;
284
+ }
285
+ console.log(`Anchor state: ${result.anchorState} (source: ${a.anchorSource})`);
286
+ if (a.latestAnchor) {
287
+ console.log(`Latest anchor: #${a.latestAnchor.anchorSeq} treeSize ${a.latestAnchor.treeSize} keyId ${a.latestAnchor.keyId.slice(0, 19)}… (${a.latestAnchor.timestamp})`);
288
+ }
289
+ console.log(`Unanchored tail: ${a.unanchoredTail.events} event(s)`);
290
+ if (a.rekor !== undefined) {
291
+ const attested = a.rekor.latestAttestedTimeMs === null
292
+ ? ""
293
+ : `, attested ${formatAttestedMs(a.rekor.latestAttestedTimeMs)}`;
294
+ const failed = a.rekor.receiptsFailed > 0 ? `, ${a.rekor.receiptsFailed} FAILED` : "";
295
+ console.log(`Rekor: ${a.rekor.receiptsVerified} receipt(s) verified${failed}${attested}`);
296
+ }
297
+ if (a.witness.requested) {
298
+ console.log(`Witness: ${a.witness.status}${a.witness.error ? ` (${a.witness.error})` : ""}`);
299
+ }
300
+ if (a.anchorSource === "vault-mirror") {
301
+ console.log("WARNING: anchors verified from the VAULT-LOCAL mirror only — a vault-writing attacker can truncate mirror and events together. Supply an externally fetched copy.");
302
+ }
303
+ for (const w of a.warnings) {
304
+ console.log(`WARNING: ${w}`);
305
+ }
22
306
  }
23
307
  // ── Single transaction mode ──
24
308
  if (txId !== undefined) {
25
- const result = verifyTransaction(vaultPath, txId);
309
+ const params = anchorMode ? await buildAnchorParams() : undefined;
310
+ const result = verifyTransaction(vaultPath, txId, params);
26
311
  console.log(result.receipt);
27
312
  // Exit 0: verified, 1: tampered/corrupted, 2: not found
28
313
  if (!result.found)
29
314
  process.exit(2);
30
- process.exit(result.valid ? 0 : 1);
315
+ if (!result.valid)
316
+ process.exit(1);
317
+ // Strict gates apply in --tx mode too — the flags turned anchorMode on,
318
+ // so silently ignoring them here would let an UNANCHORED receipt pass a
319
+ // --require-external-anchor pipeline.
320
+ if (result.anchorState !== undefined && result.anchoring !== undefined) {
321
+ process.exit(exitCodeForAnchored({ valid: true, anchorState: result.anchorState, anchoring: result.anchoring }, { requireAnchor, requireExternalAnchor }));
322
+ }
323
+ process.exit(0);
31
324
  }
32
325
  // ── Full vault verification ──
33
- const result = verifyVault(vaultPath);
326
+ if (!anchorMode) {
327
+ const result = verifyVault(vaultPath);
328
+ if (result.valid) {
329
+ console.log("Vault integrity: VERIFIED (UNANCHORED — internal consistency only)");
330
+ }
331
+ else {
332
+ console.log("Vault integrity: FAILED");
333
+ for (const error of result.errors) {
334
+ console.log(` - ${error}`);
335
+ }
336
+ }
337
+ console.log(`Chain length: ${result.chainLength} events`);
338
+ console.log(`Merkle root: ${result.merkleRoot ?? "N/A"}`);
339
+ console.log("Hash algorithm: SHA-256");
340
+ if (result.firstEvent)
341
+ console.log(`First event: ${result.firstEvent}`);
342
+ if (result.lastEvent)
343
+ console.log(`Last event: ${result.lastEvent}`);
344
+ if (result.chainLength > 0) {
345
+ console.log(`All hashes: valid (${result.validHashes}/${result.chainLength})`);
346
+ }
347
+ process.exit(exitCodeFor(result));
348
+ }
349
+ const result = verifyVaultWithAnchors(vaultPath, await buildAnchorParams());
34
350
  if (result.valid) {
35
- console.log("Vault integrity: VERIFIED");
351
+ console.log(result.anchorState === "ANCHORED_VERIFIED"
352
+ ? `Vault integrity: VERIFIED (${result.anchoring.anchorSource === "external" ? "externally anchored" : "vault-mirror anchors only"})`
353
+ : `Vault integrity: VERIFIED (${result.anchorState})`);
36
354
  }
37
355
  else {
38
- console.log("Vault integrity: FAILED");
356
+ console.log(`Vault integrity: FAILED (${result.anchorState})`);
39
357
  for (const error of result.errors) {
40
358
  console.log(` - ${error}`);
41
359
  }
42
360
  }
361
+ printAnchorSection(result);
43
362
  console.log(`Chain length: ${result.chainLength} events`);
44
363
  console.log(`Merkle root: ${result.merkleRoot ?? "N/A"}`);
45
364
  console.log("Hash algorithm: SHA-256");
46
- if (result.firstEvent)
47
- console.log(`First event: ${result.firstEvent}`);
48
- if (result.lastEvent)
49
- console.log(`Last event: ${result.lastEvent}`);
50
365
  if (result.chainLength > 0) {
51
366
  console.log(`All hashes: valid (${result.validHashes}/${result.chainLength})`);
52
367
  }
53
- // Exit nonzero on a FAILED verdict so CI gates fail on a tampered vault.
54
- process.exit(exitCodeFor(result));
368
+ process.exit(exitCodeForAnchored(result, { requireAnchor, requireExternalAnchor }));
55
369
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,kBAAkB;AAClB,IAAI,SAA6B,CAAC;AAClC,IAAI,IAAwB,CAAC;AAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;IAC9B,IAAI,GAAG,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3C,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAW,CAAC;QAC7B,CAAC,EAAE,CAAC,CAAC,gBAAgB;IACtB,CAAC;SAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,SAAS,GAAG,GAAG,CAAC;IACjB,CAAC;AACF,CAAC;AAED,IAAI,CAAC,SAAS,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;IACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAED,gCAAgC;AAChC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;IACxB,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,wDAAwD;IACxD,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,gCAAgC;AAChC,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;AAEtC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAC1C,CAAC;KAAM,CAAC;IACP,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;IAC7B,CAAC;AACF,CAAC;AACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,WAAW,SAAS,CAAC,CAAC;AAC1D,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;AAC1D,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AACvC,IAAI,MAAM,CAAC,UAAU;IAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AACxE,IAAI,MAAM,CAAC,SAAS;IAAE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AACrE,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;AAChF,CAAC;AAED,yEAAyE;AACzE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,10 @@
1
+ import { type AnchorSource, type AnchorState, type AnchorTrust, type WitnessInput, type WitnessStatus } from "./anchor-verify.js";
2
+ export { type AnchorChainResult, type AnchorEvaluation, type AnchorEvaluationInput, type AnchorEvaluationOptions, type AnchorRecord, type AnchorRotation, type AnchorSource, type AnchorState, type AnchorTrust, anchorPayloadHash, anchorSigningPreimage, committedFieldsEqual, dedupeAnchorSet, evaluateAnchoredVault, gatherOrderedEventHashes, keyIdFromKeyObject, keyIdFromSpkiDer, parseAnchorRecord, parseAnchorsContent, publicKeyFromPem, publicKeyFromSpkiBase64, readAnchorMirror, verifyAnchorChain, verifyAnchorSignature, verifyInclusionAgainstAnchor, verifySignatureRaw, type WitnessInput, type WitnessStatus, worseAnchorState, } from "./anchor-verify.js";
1
3
  export { canonicalize } from "./canonical.js";
2
4
  export { GENESIS_HASH } from "./constants.js";
3
- export { type ReceiptData, type TransactionEvent, renderReceipt, renderNotFound, } from "./receipt.js";
4
- export { verifyChain, buildMerkleTree, hashLeaf, hashInternal, generateInclusionProof, verifyInclusionProof, generateConsistencyProof, verifyConsistencyProof, type ChainVerificationResult, type MerkleSibling, type MerkleInclusionProof, type MerkleConsistencyProof, } from "./verify.js";
5
+ export { type ReceiptData, renderNotFound, renderReceipt, type TransactionEvent, } from "./receipt.js";
6
+ export { parseRekorReceipt, parseSignedNote, REKOR_PROD_PUBKEY_PEM, type RekorReceipt, type RekorVerification, type SignedNote, verifyIndexInclusion, verifyRekorReceipt, } from "./rekor-verify.js";
7
+ export { buildMerkleTree, type ChainVerificationResult, generateConsistencyProof, generateInclusionProof, hashInternal, hashLeaf, type MerkleConsistencyProof, type MerkleInclusionProof, type MerkleSibling, verifyChain, verifyConsistencyProof, verifyInclusionProof, } from "./verify.js";
5
8
  export interface VaultVerificationResult {
6
9
  valid: boolean;
7
10
  errors: string[];
@@ -30,18 +33,102 @@ export declare function verifyVault(vaultPath: string): VaultVerificationResult;
30
33
  export declare function exitCodeFor(result: {
31
34
  valid: boolean;
32
35
  }): number;
36
+ export interface AnchorVerifyParams {
37
+ /** Raw contents of caller-fetched anchor artifacts (single JSON or JSONL). */
38
+ readonly externalAnchorsRaw?: readonly string[] | undefined;
39
+ /** Raw transparency-log receipts: one receipt JSON, or JSONL of receipts. */
40
+ readonly rekorReceiptsRaw?: readonly string[] | undefined;
41
+ /**
42
+ * Caller-pinned transparency-log keys. Supplying none is only meaningful for
43
+ * the one log whose key ships with the verifier (rekor.sigstore.dev); any
44
+ * other log without a pin is refused rather than trusted.
45
+ */
46
+ readonly rekorLogPubkeysPem?: readonly string[] | undefined;
47
+ /** Caller-pinned trust material — NEVER read from the vault under audit. */
48
+ readonly trust?: AnchorTrust | undefined;
49
+ readonly witness?: WitnessInput | undefined;
50
+ readonly maxAnchorAgeMs?: number | undefined;
51
+ readonly maxUnanchoredEvents?: number | undefined;
52
+ readonly expectedVaultId?: string | undefined;
53
+ readonly nowMs?: number | undefined;
54
+ }
55
+ export interface RekorReport {
56
+ receiptsVerified: number;
57
+ receiptsFailed: number;
58
+ /** Max attested time among verified receipts of the NEWEST anchor (ms). */
59
+ latestAttestedTimeMs: number | null;
60
+ errors: string[];
61
+ }
62
+ export interface AnchoringReport {
63
+ anchorSource: AnchorSource;
64
+ anchorCount: number;
65
+ latestAnchor: {
66
+ anchorSeq: number;
67
+ treeSize: number;
68
+ lastHash: string;
69
+ keyId: string;
70
+ timestamp: string;
71
+ } | null;
72
+ unanchoredTail: {
73
+ events: number;
74
+ sinceTimestampMs: number | null;
75
+ };
76
+ witness: {
77
+ requested: boolean;
78
+ status: WitnessStatus;
79
+ error?: string;
80
+ };
81
+ reasons: string[];
82
+ warnings: string[];
83
+ /** Present only when transparency-log receipts were supplied. */
84
+ rekor?: RekorReport;
85
+ }
86
+ export interface AnchoredVaultVerificationResult extends VaultVerificationResult {
87
+ anchorState: AnchorState;
88
+ anchoring: AnchoringReport;
89
+ }
90
+ /**
91
+ * verifyVault + the spec §7.2 anchor state machine. Existing chain semantics
92
+ * are UNCHANGED (verifyVault runs as-is); anchor evaluation is layered on
93
+ * top additively. IDENTICAL function body in packages/core/src/audit/verify.ts
94
+ * — the anchor differential test pins the two.
95
+ */
96
+ export declare function verifyVaultWithAnchors(vaultPath: string, params?: AnchorVerifyParams): AnchoredVaultVerificationResult;
97
+ /**
98
+ * Exit-code policy for anchored verification. Exit codes stay 0/1
99
+ * (constraints §4.3); `--require-anchor` and `--require-external-anchor` are
100
+ * new INPUTS, not changed defaults.
101
+ */
102
+ export declare function exitCodeForAnchored(result: {
103
+ valid: boolean;
104
+ anchorState: AnchorState;
105
+ anchoring: {
106
+ anchorSource: AnchorSource;
107
+ };
108
+ }, opts?: {
109
+ requireAnchor?: boolean;
110
+ requireExternalAnchor?: boolean;
111
+ }): number;
33
112
  export interface TransactionVerificationResult {
34
113
  readonly found: boolean;
35
114
  readonly valid: boolean;
36
115
  readonly receipt: string;
37
116
  readonly errors: string[];
117
+ /** Present when anchor inputs were supplied: the §7.2 vault-level state,
118
+ * so CLI strict gates (--require-anchor / --require-external-anchor) can
119
+ * be enforced in --tx mode too. */
120
+ readonly anchorState?: AnchorState | undefined;
121
+ readonly anchoring?: AnchoringReport | undefined;
38
122
  }
39
123
  /**
40
124
  * Verify a single transaction and return a formatted receipt.
41
125
  *
42
- * Finds the event matching `txId` (by `data.transferId`), verifies the
43
- * hash chain up to that event, generates a Merkle inclusion proof, and
44
- * returns a terminal-formatted receipt string.
126
+ * Finds the event matching `txId` (by `data.transferId`) and verifies the
127
+ * hash chain. WITHOUT anchor inputs the receipt claims chain consistency
128
+ * only the historical self-referential inclusion check (proof verified
129
+ * against a root recomputed from the same events, F1) is retired (AC-5.2).
130
+ * WITH anchor inputs the §7.2 state machine runs over the whole vault first
131
+ * (AC-5.4) and inclusion is proven against the SIGNED EXTERNAL anchor root.
45
132
  */
46
- export declare function verifyTransaction(vaultPath: string, txId: string): TransactionVerificationResult;
133
+ export declare function verifyTransaction(vaultPath: string, txId: string, anchorParams?: AnchorVerifyParams): TransactionVerificationResult;
47
134
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,aAAa,EACb,cAAc,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,WAAW,EACX,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,GAC3B,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,uBAAuB;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAkBD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,uBAAuB,CAuKtE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAE9D;AAID,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,6BAA6B,CA0FhG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}