@atrib/verify 0.3.7 → 0.4.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.
@@ -12,9 +12,10 @@
12
12
  * - informed_by_resolution: { resolved: string[], dangling: string[] } (D041 / §1.2.5, §3.2.4)
13
13
  * - posture: { timestamp_granularity, timestamp_consistent, ...} (D045 / §8.2 / §8.3 / §8.4)
14
14
  * - capability_check: { envelope, in_envelope, mismatches, unresolvable } (D051 / §6.7)
15
+ * - cross_attestation: { signers_count, signers_valid, missing } (D052 / §1.7.6)
16
+ * - ap2_vi_evidence: AP2 receipt + Verifiable Intent evidence result (D094 / §5.5.4)
15
17
  *
16
18
  * Pending annotations (tracked in DECISIONS.md P005):
17
- * - cross_attestation: D052 / §1.7.6 (needs `signers[]` type addition + transaction-record signing variant in @atrib/mcp)
18
19
  * - cross_log_*: D050 / §2.11 (needs multi-log proof-bundle infrastructure)
19
20
  *
20
21
  * Design note on dependencies. The capability_check annotation does NOT
@@ -26,6 +27,7 @@
26
27
  */
27
28
  import { base64urlDecode, base64urlEncode, canonicalCrossAttestationInput, canonicalRecord, hexEncode, sha256, verifyRecord as verifyRecordSignature, } from '@atrib/mcp';
28
29
  import * as ed from '@noble/ed25519';
30
+ import { verifyAp2ViEvidenceAsync } from './ap2-vi-evidence.js';
29
31
  const PROVENANCE_TOKEN_PATTERN = /^[A-Za-z0-9_-]{22}$/;
30
32
  const SHA256_REF_PATTERN = /^sha256:[0-9a-f]{64}$/;
31
33
  // §8.2 hashed tool_name form per D061. The verbatim and opaque-label forms
@@ -51,20 +53,23 @@ const GRANULARITY_MULTIPLIER = {
51
53
  export async function verifyRecord(record, options = {}) {
52
54
  const warnings = [];
53
55
  // §1.2.1 + §1.7.6: the top-level `signature` field is OPTIONAL on
54
- // transaction records that carry the `signers[]` array. Skip the
55
- // legacy single-sig check when (a) the record is a transaction AND
56
- // (b) signers[] is present and non-empty. The cross_attestation
57
- // annotation below covers signature verification per signer.
56
+ // transaction records that carry the `signers[]` array. For that shape,
57
+ // the creator's signer entry is the record's base signature path. Other
58
+ // signers stay cross-attestation evidence and do not make a record valid
59
+ // on behalf of the top-level creator.
58
60
  const isTransaction = record.event_type === 'https://atrib.dev/v1/types/transaction';
59
61
  const hasSignersArray = Array.isArray(record.signers) && record.signers.length > 0;
60
- const skipLegacySignatureCheck = isTransaction && hasSignersArray;
62
+ const useCreatorSignerSignature = isTransaction && hasSignersArray;
61
63
  let signatureOk = false;
62
- if (skipLegacySignatureCheck) {
63
- // §1.7.6: signature validity for transaction records lives in
64
- // cross_attestation, not signatureOk. We treat signatureOk as true
65
- // here so consumers' valid-bit logic isn't broken; the actual
66
- // multi-sig validity is exposed via cross_attestation.signers_valid.
67
- signatureOk = true;
64
+ if (useCreatorSignerSignature) {
65
+ try {
66
+ signatureOk = await verifyCreatorSignerSignature(record);
67
+ if (!signatureOk)
68
+ warnings.push('creator signer verification failed');
69
+ }
70
+ catch (err) {
71
+ warnings.push(`creator signer verification error: ${err.message}`);
72
+ }
68
73
  }
69
74
  else {
70
75
  try {
@@ -107,9 +112,39 @@ export async function verifyRecord(record, options = {}) {
107
112
  if (record.event_type === 'https://atrib.dev/v1/types/transaction') {
108
113
  result.cross_attestation = await resolveCrossAttestation(record);
109
114
  }
115
+ if (options.ap2ViEvidence !== undefined) {
116
+ if (record.event_type === 'https://atrib.dev/v1/types/transaction') {
117
+ try {
118
+ result.ap2_vi_evidence = await verifyAp2ViEvidenceAsync(options.ap2ViEvidence, options.ap2ViEvidenceOptions);
119
+ }
120
+ catch (err) {
121
+ result.ap2_vi_evidence = ap2ViEvidenceErrorResult(err);
122
+ }
123
+ }
124
+ else {
125
+ warnings.push('ap2_vi_evidence supplied for non-transaction record');
126
+ }
127
+ }
110
128
  result.valid = signatureOk && warnings.length === 0;
111
129
  return result;
112
130
  }
131
+ function ap2ViEvidenceErrorResult(err) {
132
+ const message = err instanceof Error ? err.message : String(err);
133
+ return {
134
+ valid: false,
135
+ transactionAccepted: false,
136
+ ap2: {},
137
+ vi: {
138
+ mode: 'unknown',
139
+ credentials: [],
140
+ delegationOk: null,
141
+ checkoutPaymentBindingOk: null,
142
+ constraints: { status: 'not_checked', checks: [] },
143
+ },
144
+ errors: [`ap2_vi_evidence verification error: ${message}`],
145
+ warnings: [],
146
+ };
147
+ }
113
148
  function resolveProvenance(token, upstreamCandidate) {
114
149
  if (!upstreamCandidate) {
115
150
  return { token, upstream_record_hash: null, upstream_resolved: false };
@@ -204,7 +239,8 @@ function resolveCapabilityCheck(record, claim, _warnings) {
204
239
  // Future API extension: accept resolved amount + counterparty as
205
240
  // VerifyRecordOptions inputs if a real consumer needs it.
206
241
  if (record.event_type === 'https://atrib.dev/v1/types/transaction') {
207
- if (envelope.max_amount || (Array.isArray(envelope.counterparties) && envelope.counterparties.length > 0)) {
242
+ if (envelope.max_amount ||
243
+ (Array.isArray(envelope.counterparties) && envelope.counterparties.length > 0)) {
208
244
  unresolvable = true;
209
245
  }
210
246
  }
@@ -268,6 +304,17 @@ async function resolveCrossAttestation(record) {
268
304
  missing: signers_valid < 2,
269
305
  };
270
306
  }
307
+ async function verifyCreatorSignerSignature(record) {
308
+ const signers = Array.isArray(record.signers) ? record.signers : [];
309
+ const creatorSigner = signers.find((entry) => entry.creator_key === record.creator_key);
310
+ if (!creatorSigner)
311
+ return false;
312
+ const pubKey = base64urlDecode(creatorSigner.creator_key);
313
+ const sig = base64urlDecode(creatorSigner.signature);
314
+ if (pubKey.length !== 32 || sig.length !== 64)
315
+ return false;
316
+ return ed.verifyAsync(sig, canonicalCrossAttestationInput(record), pubKey);
317
+ }
271
318
  function detectPosture(record, warnings) {
272
319
  const declared = record.timestamp_granularity;
273
320
  const explicit = typeof declared === 'string';
@@ -1 +1 @@
1
- {"version":3,"file":"verify-record.js","sourceRoot":"","sources":["../src/verify-record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify-record.js","sourceRoot":"","sources":["../src/verify-record.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atrib/verify",
3
- "version": "0.3.7",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -29,9 +29,11 @@
29
29
  "dependencies": {
30
30
  "@noble/ed25519": "^3.1.0",
31
31
  "@noble/hashes": "^2.2.0",
32
+ "@sd-jwt/core": "0.19.0",
33
+ "@sd-jwt/sd-jwt-vc": "0.19.0",
32
34
  "canonicalize": "^3.0.0",
33
35
  "jose": "6.2.3",
34
- "@atrib/mcp": "0.12.0"
36
+ "@atrib/mcp": "0.13.0"
35
37
  },
36
38
  "devDependencies": {
37
39
  "@types/node": "^25.9.1",