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.
package/dist/index.js CHANGED
@@ -2,16 +2,20 @@
2
2
  // Copyright 2026 Usertools, Inc.
3
3
  // usertrust-verify — Standalone Audit Verification (zero dependencies)
4
4
  import { createHash } from "node:crypto";
5
- import { existsSync, readFileSync, readdirSync } from "node:fs";
5
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
6
6
  import { basename, join } from "node:path";
7
+ import { dedupeAnchorSet, evaluateAnchoredVault, gatherOrderedEventHashes, parseAnchorsContent, publicKeyFromSpkiBase64, readAnchorMirror, verifyInclusionAgainstAnchor, worseAnchorState, } from "./anchor-verify.js";
7
8
  import { canonicalize } from "./canonical.js";
8
9
  import { GENESIS_HASH } from "./constants.js";
9
10
  import { renderNotFound, renderReceipt, } from "./receipt.js";
10
- import { buildMerkleTree, generateInclusionProof, readAnchor, verifyChain, verifyInclusionProof, } from "./verify.js";
11
+ import { parseRekorReceipt, verifyRekorReceipt } from "./rekor-verify.js";
12
+ import { buildMerkleTree, generateInclusionProof, readAnchor, verifyChain, } from "./verify.js";
13
+ export { anchorPayloadHash, anchorSigningPreimage, committedFieldsEqual, dedupeAnchorSet, evaluateAnchoredVault, gatherOrderedEventHashes, keyIdFromKeyObject, keyIdFromSpkiDer, parseAnchorRecord, parseAnchorsContent, publicKeyFromPem, publicKeyFromSpkiBase64, readAnchorMirror, verifyAnchorChain, verifyAnchorSignature, verifyInclusionAgainstAnchor, verifySignatureRaw, worseAnchorState, } from "./anchor-verify.js";
11
14
  export { canonicalize } from "./canonical.js";
12
15
  export { GENESIS_HASH } from "./constants.js";
13
- export { renderReceipt, renderNotFound, } from "./receipt.js";
14
- export { verifyChain, buildMerkleTree, hashLeaf, hashInternal, generateInclusionProof, verifyInclusionProof, generateConsistencyProof, verifyConsistencyProof, } from "./verify.js";
16
+ export { renderNotFound, renderReceipt, } from "./receipt.js";
17
+ export { parseRekorReceipt, parseSignedNote, REKOR_PROD_PUBKEY_PEM, verifyIndexInclusion, verifyRekorReceipt, } from "./rekor-verify.js";
18
+ export { buildMerkleTree, generateConsistencyProof, generateInclusionProof, hashInternal, hashLeaf, verifyChain, verifyConsistencyProof, verifyInclusionProof, } from "./verify.js";
15
19
  /**
16
20
  * Verify an entire `.usertrust` vault directory, anchored to the `.meta` head.
17
21
  *
@@ -181,14 +185,209 @@ export function verifyVault(vaultPath) {
181
185
  export function exitCodeFor(result) {
182
186
  return result.valid ? 0 : 1;
183
187
  }
188
+ /**
189
+ * Split one raw receipt artifact into receipt documents. A file may hold a
190
+ * single (possibly pretty-printed) receipt or JSONL of many, so the whole-file
191
+ * parse is tried first and line-splitting is the fallback — the reverse would
192
+ * shred a pretty-printed receipt into unparseable fragments.
193
+ *
194
+ * IDENTICAL in packages/core/src/audit/verify.ts.
195
+ */
196
+ function splitReceiptDocuments(raw) {
197
+ const trimmed = raw.trim();
198
+ if (trimmed.length === 0)
199
+ return [];
200
+ try {
201
+ JSON.parse(trimmed);
202
+ return [trimmed];
203
+ }
204
+ catch {
205
+ return trimmed
206
+ .split("\n")
207
+ .map((line) => line.trim())
208
+ .filter((line) => line.length > 0);
209
+ }
210
+ }
211
+ /**
212
+ * Verify every supplied transparency-log receipt against the anchor record it
213
+ * names. Receipts are OPTIONAL evidence, but supplied evidence is not
214
+ * advisory: a receipt is only ever presented to strengthen a claim, so one
215
+ * that does not verify fails the vault closed rather than being dropped.
216
+ *
217
+ * Records are matched by anchorSeq with the external copy governing (the same
218
+ * precedence the evaluator's merge uses). A receipt may bind to ANY record at
219
+ * its anchorSeq: committed-equal twins differ in exactly the timestamp and
220
+ * signature a receipt commits to, so the emitter's published twin must not
221
+ * depend on which copy the auditor happened to fetch first.
222
+ *
223
+ * IDENTICAL in packages/core/src/audit/verify.ts.
224
+ */
225
+ function verifySuppliedRekorReceipts(receiptsRaw, externalRecords, mirrorRecords, logPubkeysPem) {
226
+ if (receiptsRaw.length === 0)
227
+ return null;
228
+ const bySeq = new Map();
229
+ for (const record of [...externalRecords, ...mirrorRecords]) {
230
+ const twins = bySeq.get(record.anchorSeq);
231
+ if (twins === undefined) {
232
+ bySeq.set(record.anchorSeq, [record]);
233
+ }
234
+ else {
235
+ twins.push(record);
236
+ }
237
+ }
238
+ // The NEWEST anchor by the evaluator's own rule (largest treeSize, earliest
239
+ // anchorSeq on a tie) — only its receipts may speak for freshness.
240
+ const merged = [...bySeq.keys()]
241
+ .sort((a, b) => a - b)
242
+ .map((seq) => bySeq.get(seq)[0]);
243
+ const latestSeq = [...merged].sort((a, b) => b.treeSize - a.treeSize)[0]?.anchorSeq ?? null;
244
+ const errors = [];
245
+ let receiptsVerified = 0;
246
+ let receiptsFailed = 0;
247
+ let latestAttestedTimeMs = null;
248
+ for (const raw of receiptsRaw) {
249
+ const documents = splitReceiptDocuments(raw);
250
+ if (documents.length === 0) {
251
+ // A receipts artifact that holds no receipts is a supply failure, not an
252
+ // absence of evidence: the caller passed --rekor-receipts, so an empty
253
+ // file means the receipt they meant to present never made it here.
254
+ receiptsFailed++;
255
+ errors.push("rekor-receipt-invalid: receipts artifact contained no receipts");
256
+ continue;
257
+ }
258
+ for (const document of documents) {
259
+ const parsed = parseRekorReceipt(document);
260
+ if (parsed.receipt === null) {
261
+ receiptsFailed++;
262
+ errors.push(parsed.error);
263
+ continue;
264
+ }
265
+ const receipt = parsed.receipt;
266
+ const candidates = bySeq.get(receipt.anchorSeq) ?? [];
267
+ if (candidates.length === 0) {
268
+ receiptsFailed++;
269
+ errors.push(`rekor-receipt-invalid: receipt for unknown anchorSeq ${receipt.anchorSeq}`);
270
+ continue;
271
+ }
272
+ let verified = null;
273
+ let firstErrors = [];
274
+ for (const candidate of candidates) {
275
+ const result = verifyRekorReceipt(receipt, candidate, logPubkeysPem);
276
+ if (result.ok) {
277
+ verified = result;
278
+ break;
279
+ }
280
+ if (firstErrors.length === 0)
281
+ firstErrors = result.errors;
282
+ }
283
+ if (verified === null) {
284
+ receiptsFailed++;
285
+ errors.push(...firstErrors);
286
+ continue;
287
+ }
288
+ receiptsVerified++;
289
+ if (receipt.anchorSeq === latestSeq && verified.attestedTimeMs !== null) {
290
+ latestAttestedTimeMs =
291
+ latestAttestedTimeMs === null
292
+ ? verified.attestedTimeMs
293
+ : Math.max(latestAttestedTimeMs, verified.attestedTimeMs);
294
+ }
295
+ }
296
+ }
297
+ return { receiptsVerified, receiptsFailed, latestAttestedTimeMs, errors };
298
+ }
299
+ /**
300
+ * verifyVault + the spec §7.2 anchor state machine. Existing chain semantics
301
+ * are UNCHANGED (verifyVault runs as-is); anchor evaluation is layered on
302
+ * top additively. IDENTICAL function body in packages/core/src/audit/verify.ts
303
+ * — the anchor differential test pins the two.
304
+ */
305
+ export function verifyVaultWithAnchors(vaultPath, params = {}) {
306
+ const base = verifyVault(vaultPath);
307
+ const externalRecords = [];
308
+ const externalErrors = [];
309
+ for (const raw of params.externalAnchorsRaw ?? []) {
310
+ const parsed = parseAnchorsContent(raw);
311
+ externalRecords.push(...parsed.records);
312
+ externalErrors.push(...parsed.errors);
313
+ }
314
+ const mirror = readAnchorMirror(vaultPath);
315
+ const rekor = verifySuppliedRekorReceipts(params.rekorReceiptsRaw ?? [], externalRecords, mirror.records, params.rekorLogPubkeysPem ?? []);
316
+ const evaluation = evaluateAnchoredVault({
317
+ orderedHashes: gatherOrderedEventHashes(vaultPath),
318
+ externalAnchors: externalRecords,
319
+ externalErrors,
320
+ mirrorAnchors: mirror.records,
321
+ mirrorErrors: mirror.errors,
322
+ trust: params.trust ?? null,
323
+ witness: params.witness ?? { requested: false },
324
+ opts: {
325
+ ...(params.maxAnchorAgeMs !== undefined ? { maxAnchorAgeMs: params.maxAnchorAgeMs } : {}),
326
+ ...(params.maxUnanchoredEvents !== undefined
327
+ ? { maxUnanchoredEvents: params.maxUnanchoredEvents }
328
+ : {}),
329
+ ...(params.expectedVaultId !== undefined ? { expectedVaultId: params.expectedVaultId } : {}),
330
+ ...(params.nowMs !== undefined ? { nowMs: params.nowMs } : {}),
331
+ ...(rekor !== null && rekor.latestAttestedTimeMs !== null
332
+ ? { attestedTimeMs: rekor.latestAttestedTimeMs }
333
+ : {}),
334
+ },
335
+ });
336
+ // A broken receipt is ANCHOR_INVALID (fail-closed), escalated by the state
337
+ // machine's own severity ordering so MISMATCH still outranks it.
338
+ const rekorFailed = rekor !== null && rekor.receiptsFailed > 0;
339
+ return {
340
+ ...base,
341
+ valid: base.valid && evaluation.anchorsValid && !rekorFailed,
342
+ errors: [...base.errors, ...evaluation.errors, ...(rekor?.errors ?? [])],
343
+ anchorState: rekorFailed
344
+ ? worseAnchorState(evaluation.anchorState, "ANCHOR_INVALID")
345
+ : evaluation.anchorState,
346
+ anchoring: {
347
+ anchorSource: evaluation.anchorSource,
348
+ anchorCount: evaluation.anchorCount,
349
+ latestAnchor: evaluation.latestAnchor,
350
+ unanchoredTail: evaluation.unanchoredTail,
351
+ witness: evaluation.witness,
352
+ reasons: rekorFailed
353
+ ? [...new Set([...evaluation.reasons, "rekor-receipt-invalid"])]
354
+ : evaluation.reasons,
355
+ warnings: evaluation.warnings,
356
+ ...(rekor !== null ? { rekor } : {}),
357
+ },
358
+ };
359
+ }
360
+ /**
361
+ * Exit-code policy for anchored verification. Exit codes stay 0/1
362
+ * (constraints §4.3); `--require-anchor` and `--require-external-anchor` are
363
+ * new INPUTS, not changed defaults.
364
+ */
365
+ export function exitCodeForAnchored(result, opts) {
366
+ if (!result.valid)
367
+ return 1;
368
+ if (opts?.requireAnchor === true &&
369
+ (result.anchorState === "UNANCHORED" ||
370
+ result.anchorState === "ANCHOR_UNVERIFIABLE" ||
371
+ result.anchorState === "ANCHOR_STALE")) {
372
+ return 1;
373
+ }
374
+ if (opts?.requireExternalAnchor === true &&
375
+ (result.anchorState !== "ANCHORED_VERIFIED" || result.anchoring.anchorSource !== "external")) {
376
+ return 1;
377
+ }
378
+ return 0;
379
+ }
184
380
  /**
185
381
  * Verify a single transaction and return a formatted receipt.
186
382
  *
187
- * Finds the event matching `txId` (by `data.transferId`), verifies the
188
- * hash chain up to that event, generates a Merkle inclusion proof, and
189
- * returns a terminal-formatted receipt string.
383
+ * Finds the event matching `txId` (by `data.transferId`) and verifies the
384
+ * hash chain. WITHOUT anchor inputs the receipt claims chain consistency
385
+ * only the historical self-referential inclusion check (proof verified
386
+ * against a root recomputed from the same events, F1) is retired (AC-5.2).
387
+ * WITH anchor inputs the §7.2 state machine runs over the whole vault first
388
+ * (AC-5.4) and inclusion is proven against the SIGNED EXTERNAL anchor root.
190
389
  */
191
- export function verifyTransaction(vaultPath, txId) {
390
+ export function verifyTransaction(vaultPath, txId, anchorParams) {
192
391
  const auditDir = join(vaultPath, "audit");
193
392
  const mainLog = join(auditDir, "events.jsonl");
194
393
  if (!existsSync(mainLog)) {
@@ -232,15 +431,97 @@ export function verifyTransaction(vaultPath, txId) {
232
431
  // Verify the full chain
233
432
  const chainResult = verifyChain(mainLog);
234
433
  const chainVerified = chainResult.valid;
235
- // Build Merkle tree and generate inclusion proof
434
+ // Merkle root over the stored hashes — informational display only. The
435
+ // self-referential inclusion check (F1: proof AND root computed from the
436
+ // same allHashes) is retired; inclusion is only ever claimed against a
437
+ // verified EXTERNAL anchor root below (AC-5.2).
236
438
  const allHashes = events.map((e) => e.hash);
237
439
  const tree = buildMerkleTree(allHashes);
238
- const merkleRoot = tree.root ?? "";
440
+ let merkleRoot = tree.root ?? "";
239
441
  const leafIndex = events.indexOf(targetEvent);
240
- let merkleVerified = false;
241
- if (tree.root !== undefined && leafIndex >= 0) {
242
- const proof = generateInclusionProof(leafIndex, allHashes, "events.jsonl");
243
- merkleVerified = verifyInclusionProof(proof, tree.root, allHashes.length);
442
+ let merkleVerified;
443
+ let merkleLabel;
444
+ let anchorsValid = true;
445
+ let anchorState;
446
+ let anchoring;
447
+ const anchorErrors = [];
448
+ if (anchorParams === undefined) {
449
+ merkleVerified = chainVerified;
450
+ merkleLabel = chainVerified ? "CHAIN CONSISTENT (UNANCHORED)" : "CHAIN INCONSISTENT";
451
+ }
452
+ else {
453
+ // AC-5.4: the anchor state machine runs over the WHOLE vault first —
454
+ // an ANCHOR_INVALID / ANCHOR_MISMATCH vault must never render
455
+ // "INCLUSION VERIFIED", whatever the single-event proof says.
456
+ const vaultResult = verifyVaultWithAnchors(vaultPath, anchorParams);
457
+ anchorsValid = vaultResult.valid;
458
+ anchorState = vaultResult.anchorState;
459
+ anchoring = vaultResult.anchoring;
460
+ anchorErrors.push(...vaultResult.anchoring.reasons.map((r) => `anchor: ${r}`));
461
+ const state = vaultResult.anchorState;
462
+ if (state === "ANCHORED_VERIFIED" || state === "ANCHOR_STALE") {
463
+ const orderedHashes = gatherOrderedEventHashes(vaultPath);
464
+ const pos = typeof targetEvent.sequence === "number" ? targetEvent.sequence : leafIndex + 1;
465
+ const candidates = [];
466
+ for (const raw of anchorParams.externalAnchorsRaw ?? []) {
467
+ candidates.push(...parseAnchorsContent(raw).records);
468
+ }
469
+ candidates.push(...readAnchorMirror(vaultPath).records);
470
+ const uniqueAnchors = dedupeAnchorSet(candidates).unique;
471
+ const covering = uniqueAnchors
472
+ .filter((r) => r.treeSize >= pos)
473
+ .sort((a, b) => a.treeSize - b.treeSize)[0];
474
+ if (covering === undefined) {
475
+ // Honest tail label — never "verified" for unanchored events.
476
+ merkleVerified = chainVerified;
477
+ merkleLabel = "IN UNANCHORED TAIL";
478
+ }
479
+ else if (anchorParams.trust !== undefined &&
480
+ pos >= 1 &&
481
+ covering.treeSize <= orderedHashes.length) {
482
+ const proof = generateInclusionProof(pos - 1, orderedHashes.slice(0, covering.treeSize), "events.jsonl");
483
+ // §7.1: resolve the covering record's epoch key the way the chain
484
+ // walk does — root + caller pins + in-chain rotation successors.
485
+ // This branch is gated on ANCHORED_VERIFIED/ANCHOR_STALE, so every
486
+ // rotation here was already validated; a forged rotation never
487
+ // reaches this point. Without this, a post-rotation-covered event
488
+ // falsely reports INCLUSION FAILED (the state machine accepted it).
489
+ const inChainSuccessorPems = uniqueAnchors.flatMap((r) => {
490
+ if (r.rotation === undefined)
491
+ return [];
492
+ const k = publicKeyFromSpkiBase64(r.rotation.nextPublicKeySpki);
493
+ return k === null ? [] : [k.export({ type: "spki", format: "pem" })];
494
+ });
495
+ const ok = verifyInclusionAgainstAnchor(proof, covering, {
496
+ ...anchorParams.trust,
497
+ successorPinsPem: [
498
+ ...(anchorParams.trust.successorPinsPem ?? []),
499
+ ...inChainSuccessorPems,
500
+ ],
501
+ });
502
+ merkleVerified = ok;
503
+ merkleRoot = covering.merkleRoot;
504
+ merkleLabel = ok
505
+ ? `INCLUSION VERIFIED (anchor #${covering.anchorSeq})`
506
+ : "INCLUSION FAILED (anchored root)";
507
+ }
508
+ else {
509
+ merkleVerified = false;
510
+ merkleLabel = "INCLUSION UNVERIFIABLE";
511
+ }
512
+ }
513
+ else if (state === "UNANCHORED") {
514
+ merkleVerified = chainVerified;
515
+ merkleLabel = chainVerified ? "CHAIN CONSISTENT (UNANCHORED)" : "CHAIN INCONSISTENT";
516
+ }
517
+ else if (state === "ANCHOR_UNVERIFIABLE") {
518
+ merkleVerified = chainVerified;
519
+ merkleLabel = "INCLUSION UNVERIFIABLE";
520
+ }
521
+ else {
522
+ merkleVerified = false;
523
+ merkleLabel = "INCLUSION UNVERIFIABLE";
524
+ }
244
525
  }
245
526
  // Compute cumulative spend up to and including this event
246
527
  let cumulativeSpend = 0;
@@ -259,13 +540,16 @@ export function verifyTransaction(vaultPath, txId) {
259
540
  chainVerified,
260
541
  cumulativeSpend,
261
542
  verifiedAt: new Date(),
543
+ merkleLabel,
262
544
  };
263
- const allErrors = [...parseErrors, ...chainResult.errors];
545
+ const allErrors = [...parseErrors, ...chainResult.errors, ...anchorErrors];
264
546
  return {
265
547
  found: true,
266
- valid: chainVerified && merkleVerified,
548
+ valid: chainVerified && merkleVerified && anchorsValid,
267
549
  receipt: renderReceipt(receiptData),
268
550
  errors: allErrors,
551
+ ...(anchorState !== undefined ? { anchorState } : {}),
552
+ ...(anchoring !== undefined ? { anchoring } : {}),
269
553
  };
270
554
  }
271
555
  //# sourceMappingURL=index.js.map
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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"}
package/dist/receipt.d.ts CHANGED
@@ -28,6 +28,13 @@ export interface ReceiptData {
28
28
  readonly chainVerified: boolean;
29
29
  readonly cumulativeSpend: number;
30
30
  readonly verifiedAt: Date;
31
+ /**
32
+ * Honest Merkle-row label. "INCLUSION VERIFIED" may ONLY be passed when
33
+ * the proof was checked against a verified EXTERNAL anchor root — never
34
+ * from a root recomputed out of the same events (the retired F1 path).
35
+ * Absent → the truthful unanchored default is rendered.
36
+ */
37
+ readonly merkleLabel?: string | undefined;
31
38
  }
32
39
  export declare function renderReceipt(data: ReceiptData): string;
33
40
  export declare function renderNotFound(txId: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAIH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE;QACd,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;CAC1B;AAgJD,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAyFvD;AAID,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoBnD"}
1
+ {"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAIH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE;QACd,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAgJD,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CA6FvD;AAID,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoBnD"}
package/dist/receipt.js CHANGED
@@ -175,7 +175,10 @@ export function renderReceipt(data) {
175
175
  lines.push(row(`${dotted(" Position", `Event ${event.sequence} of ${chainLength}`, WIDTH - 1)} `));
176
176
  lines.push(row(`${dotted(" Hash", truncHash(event.hash), WIDTH - 1)} `));
177
177
  lines.push(row(`${dotted(" Prev", truncHash(event.previousHash), WIDTH - 1)} `));
178
- const merkleStatus = merkleVerified ? "INCLUSION VERIFIED" : "INCLUSION FAILED";
178
+ // AC-5.3: without an external anchor the truthful claim is chain
179
+ // consistency, not inclusion — the old unconditional "INCLUSION VERIFIED"
180
+ // came from a self-referential proof and is retired.
181
+ const merkleStatus = data.merkleLabel ?? (merkleVerified ? "CHAIN CONSISTENT (UNANCHORED)" : "INCLUSION FAILED");
179
182
  lines.push(row(`${dotted(" Merkle", merkleStatus, WIDTH - 1)} `));
180
183
  lines.push(blank());
181
184
  // ── Verdict ──
@@ -1 +1 @@
1
- {"version":3,"file":"receipt.js","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"receipt.js","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import { type AnchorRecord } from "./anchor-verify.js";
2
+ export interface RekorReceipt {
3
+ v: 1;
4
+ vaultId: string;
5
+ anchorSeq: number;
6
+ /** 64-hex — MUST equal anchorPayloadHash(record). */
7
+ artifactHash: string;
8
+ /** base64 of the entry bytes AS STORED BY THE LOG, never a reserialization. */
9
+ entryBody: string;
10
+ log: {
11
+ url: string;
12
+ logIndex: number;
13
+ treeSize: number;
14
+ /** 64-hex root the inclusion path must reconstruct. */
15
+ rootHash: string;
16
+ /** 64-hex inclusion path, leaf -> root order. */
17
+ hashes: string[];
18
+ /** Signed note (checkpoint) over treeSize + rootHash. */
19
+ checkpoint: string;
20
+ /**
21
+ * Unix seconds the log CLAIMS it integrated the entry. Signed by nothing
22
+ * on its own — only the SET below turns it into an attested time.
23
+ */
24
+ integratedTime: number;
25
+ /**
26
+ * base64 ECDSA signature over the sorted-key JSON of
27
+ * `{body, integratedTime, logID, logIndex}` — the log's only signature
28
+ * covering integratedTime. Optional: a log that does not emit one still
29
+ * yields a valid INCLUSION proof, just no attested time.
30
+ */
31
+ signedEntryTimestamp?: string;
32
+ /** 64-hex log identity, part of the SET payload. Required with a SET. */
33
+ logID?: string;
34
+ };
35
+ }
36
+ export interface SignedNote {
37
+ origin: string;
38
+ treeSize: number;
39
+ rootHashHex: string;
40
+ /** EXACTLY the bytes the log signs: 3 body lines including the trailing LF. */
41
+ body: string;
42
+ /**
43
+ * Note signatures, each with its 4-byte key hint stripped off the front. A
44
+ * checkpoint carries the log's own signature plus one per co-signing witness.
45
+ */
46
+ sigs: Buffer[];
47
+ }
48
+ export interface RekorVerification {
49
+ ok: boolean;
50
+ /**
51
+ * Witness-attested time in ms — the input to staleness policy when present.
52
+ * Non-null ONLY when a signed entry timestamp verified: an unsigned
53
+ * integratedTime is a number the party under audit could have chosen.
54
+ */
55
+ attestedTimeMs: number | null;
56
+ errors: string[];
57
+ }
58
+ /**
59
+ * The rekor.sigstore.dev v1 log key, as served by
60
+ * https://rekor.sigstore.dev/api/v1/log/publicKey — ECDSA P-256, SPKI sha256
61
+ * c0d23d6ad406973f9559f3ba2d1ca01f84147d8ffc5b8445c224f98b9591801d (the log's
62
+ * published logID). This is DATA, not a dependency, and it is not a blanket
63
+ * trust root: it is consulted ONLY for receipts whose log URL host IS
64
+ * rekor.sigstore.dev. Any other log must be pinned by the operator with
65
+ * --rekor-pubkey.
66
+ */
67
+ export declare const REKOR_PROD_PUBKEY_PEM = "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE2G2Y+2tabdTV5BcGiBIx0a9fAFwr\nkBbmLSGtks4L3qX6yYY0zufBnhC8Ur/iy55GhWP/9A/bY2LhC30M9+RYtw==\n-----END PUBLIC KEY-----\n";
68
+ /**
69
+ * Parse a signed note:
70
+ * <origin>\n<treeSize>\n<base64 rootHash>\n\n— <keyname> <base64 sig>\n...
71
+ * Strictly LF-only and strictly this shape — a note is a signed artifact, so
72
+ * accepting variants would mean verifying a signature over bytes we did not
73
+ * actually parse. The signature payload is `4-byte keyhint || DER signature`;
74
+ * the hint identifies which key the log used and is ADVISORY only, because the
75
+ * auditor pins the key out-of-band. Only its 4 bytes are skipped.
76
+ *
77
+ * ONE OR MORE signature lines are accepted: a production checkpoint is signed by
78
+ * the log and co-signed by its witnesses, and every line must still be
79
+ * well-formed. Which of them (if any) speaks for the auditor is decided later,
80
+ * against the pinned keyring — never here.
81
+ */
82
+ export declare function parseSignedNote(note: string): SignedNote | null;
83
+ /**
84
+ * RFC 9162 §2.1.3.2 inclusion verification: walk the audit path from the leaf
85
+ * to the root, deciding sibling order from the leaf index rather than from any
86
+ * hint the proof supplies. `fn`/`sn` track the leaf's and the last leaf's
87
+ * positions within the current subtree; the right-shift after a left-sibling
88
+ * merge is what makes right-edge (incomplete) subtrees come out correct.
89
+ *
90
+ * Never throws: malformed hex, out-of-range indices, and over-long paths are
91
+ * rejections, because this runs on attacker-supplied input.
92
+ */
93
+ export declare function verifyIndexInclusion(leafHex: string, index: number, treeSize: number, pathHex: readonly string[], rootHex: string): boolean;
94
+ /**
95
+ * Strict parse of one receipt. Unknown fields, wrong types, and range
96
+ * violations are all rejected before any crypto runs — the same fail-closed
97
+ * posture as parseAnchorRecord, for the same reason: a field the verifier
98
+ * silently ignores is a field an attacker can use.
99
+ */
100
+ export declare function parseRekorReceipt(raw: string): {
101
+ receipt: RekorReceipt | null;
102
+ error: string | null;
103
+ };
104
+ /**
105
+ * Verify one receipt against the anchor record it claims to witness, under a
106
+ * caller-pinned keyring (any key in the ring may verify the checkpoint).
107
+ *
108
+ * The order below is the binding chain, and it is deliberate: cheap identity
109
+ * and hash checks first, then the entry decode, then the inclusion walk, and
110
+ * only then the signatures — so a receipt for the wrong record can never cost
111
+ * an ECDSA verification, and a failure always names the earliest broken link.
112
+ * `ok` is the INCLUSION verdict; `attestedTimeMs` is the strictly weaker time
113
+ * claim, and only a verifying signed entry timestamp produces it.
114
+ */
115
+ export declare function verifyRekorReceipt(receipt: RekorReceipt, record: AnchorRecord, logPubkeysPem: readonly string[]): RekorVerification;
116
+ //# sourceMappingURL=rekor-verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rekor-verify.d.ts","sourceRoot":"","sources":["../src/rekor-verify.ts"],"names":[],"mappings":"AAoCA,OAAO,EACN,KAAK,YAAY,EAIjB,MAAM,oBAAoB,CAAC;AAI5B,MAAM,WAAW,YAAY;IAC5B,CAAC,EAAE,CAAC,CAAC;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,uDAAuD;QACvD,QAAQ,EAAE,MAAM,CAAC;QACjB,iDAAiD;QACjD,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,yDAAyD;QACzD,UAAU,EAAE,MAAM,CAAC;QACnB;;;WAGG;QACH,cAAc,EAAE,MAAM,CAAC;QACvB;;;;;WAKG;QACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,yEAAyE;QACzE,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACF;AAED,MAAM,WAAW,UAAU;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ;;;;OAIG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,2LAIjC,CAAC;AAqGF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAiC/D;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CACnC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,OAAO,EAAE,MAAM,GACb,OAAO,CA4BT;AAID;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG;IAC/C,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAwFA;AAmFD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CACjC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,SAAS,MAAM,EAAE,GAC9B,iBAAiB,CAqGnB"}