@e-sig/uaid-exch 0.1.0-preview.1 → 0.1.0-preview.2

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/README.md CHANGED
@@ -120,7 +120,41 @@ try {
120
120
  }
121
121
  ```
122
122
 
123
- **Note:** this module has no exchange-verification path to hook into (verification is network-side per § 8), so `assertCredentialUsable()` is exported standalone — call it before acting on a credential, i.e. before `createExchange()` / `UaidNetworkClient.submit()`.
123
+ **Note:** this module has no revocation-check path to hook into (revocation is network-side per § 8), so `assertCredentialUsable()` is exported standalone — call it before acting on a credential, i.e. before `createExchange()` / `UaidNetworkClient.submit()`. Verifying the proofs *themselves* — no revocation check involved — is covered below.
124
+
125
+ ## Verifying proofs locally
126
+
127
+ Every `DataIntegrityProof` this package produces (both proofs on a `UaidExchange`, or a standalone challenge proof per § 12 of the [MCP signer-identity design](../../docs/architecture/esig-mcp.md)) can be verified **offline, with no network call**, against a `did:key` or JWK public key.
128
+
129
+ ```ts
130
+ import { createExchange, verifyExchange, verifyDataIntegrityProof } from "@e-sig/uaid-exch";
131
+
132
+ const exchange = await createExchange(input, agentSigner, issuerSigner);
133
+
134
+ // Verifies both proofs — proof[0] (agent, "authentication") and proof[1]
135
+ // (issuer, "assertionMethod") — resolving each key from its own
136
+ // verificationMethod (a did:key URI) unless you pass one explicitly.
137
+ const result = verifyExchange(exchange);
138
+ // { ok: true, agent: { ok: true, keyFingerprint, verificationMethod },
139
+ // issuer: { ok: true, keyFingerprint, verificationMethod }, failures: [] }
140
+
141
+ if (!result.ok) console.error(result.failures); // e.g. ["agent: signature verification failed"]
142
+
143
+ // Or verify a single arbitrary DataIntegrityProof over any JCS-canonicalizable
144
+ // document (the primitive verifyExchange is built on):
145
+ verifyDataIntegrityProof(documentWithoutProofField, someProof, {
146
+ expectedProofPurpose: "authentication", // optional
147
+ publicKey: rawEd25519PublicKeyBytes, // optional — skips verificationMethod resolution
148
+ });
149
+ ```
150
+
151
+ Key resolution (`publicKeyFromVerificationMethod`) accepts a `did:key:z...` URI (multibase `z` = base58btc, multicodec `0xed 0x01` + 32 raw Ed25519 bytes) or a raw JWK (`{kty:"OKP", crv:"Ed25519", x}` — **exactly** those three fields; any other field, notably a private-key `d`, is rejected outright) — anything else throws `UnsupportedVerificationMethodError`. `decodeMultibase`/`encodeMultibase` (`z` = base58btc, `u` = base64url) are exported standalone too.
152
+
153
+ **R6 — `uuaid:...#sk-...` verification methods are NOT independently verifiable.** `AgentSigner.verificationMethod` is documented (and used throughout this package's own tests) as a `uuaid:foundation:agent:<uuid>#sk-<label>` fragment identifier, e.g. `uuaid:foundation:agent:018f7abc#sk-2026-07-04` — this is an IDENTIFIER, not a key-encoding scheme `publicKeyFromVerificationMethod` can decode (it only understands `did:key:` URIs and raw JWKs). `verifyExchange(exchange)` called with **no options** will therefore report `agent.ok: false` (a `reason` string sourced from the internal `UnsupportedVerificationMethodError` — `verifyDataIntegrityProof`/`verifyExchange` never throw, per their own doc comments; they catch it and return `{ok:false, reason}`) for any exchange whose agent proof uses this form — that is not a bug, it is this package correctly refusing to invent a resolution for an identifier scheme it cannot cryptographically dereference. To verify such an exchange you MUST already know the agent's public key out-of-band (e.g. from a prior UUAID registry resolution) and pass it explicitly: `verifyExchange(exchange, { agentPublicKey: rawEd25519Bytes })` (same for `issuerPublicKey`). Do not treat a bare `verifyExchange(exchange)` call as sufficient proof when either `verificationMethod` uses the `uuaid:...#sk-...` form.
154
+
155
+ **Signed-bytes note:** verification mirrors `createExchange()`'s actual construction — Ed25519 over `jcsBytes(document-with-proof-omitted)` directly — not the W3C `eddsa-jcs-2022` cryptosuite's `sha256(JCS(proofConfig)) || sha256(JCS(document))` double-hash. See the `src/verify.ts` module doc comment for the full divergence note.
156
+
157
+ **R5 — what a proof's digest does and does not cover.** A `DataIntegrityProof`'s `created`, `verificationMethod`, and `proofPurpose` fields sit OUTSIDE the signed bytes by construction (the divergence note above: `createExchange()` signs only the document, with the whole `proof` object — including these fields — omitted). Consequently, anywhere a consumer (e.g. `@e-sig/mcp`'s signer-identity feature) computes a digest over the *entire presented proof object* (`sha256(jcs(proof))`) as an integrity/audit reference, that digest covers those mutable-by-construction fields too, not just the cryptographically-bound core — two proofs with the identical `proofValue`/signed content but a different `created` timestamp produce two different digests. Treat such a digest as "the digest of the artifact as presented," not as "the digest of what was cryptographically signed."
124
158
 
125
159
  ## Strictly opt-in
126
160
 
package/dist/index.d.ts CHANGED
@@ -11,42 +11,70 @@
11
11
  * draft) lives in ./revocation.ts and is re-exported below.
12
12
  */
13
13
  export * from "./revocation.js";
14
+ export * from "./verify.js";
14
15
  export type AssuranceLevel = "L0" | "L1" | "L2" | "L3" | "L4" | "L5";
16
+ /**
17
+ * IAASO tae/v1 Signing Credential (ADR-006). Reconciled field-for-field
18
+ * against the authoritative schema —
19
+ * `/Volumes/X/VMV/iaaso/artifacts/schemas/tae/v1/signing-credential/schema.json`
20
+ * — under RedTeam rt-verdict-ESIGMCP-V02-IDENTITY-20260827 (G1a). The prior
21
+ * shape here (`type: ["VerifiableCredential","UaidSigningCredential"]`, a
22
+ * root `@context`, and a `credentialSubject` carrying `id`/`principal`/ a
23
+ * nested authenticator key field (not `credentialSubject.key.publicKey`)/
24
+ * `assurance_evidence`/`kya_hash`) was never
25
+ * checked against the real schema and does not match it — see CHANGELOG for
26
+ * the full before/after diff. Both the schema root and its
27
+ * `credentialSubject`/`scope`/`key` objects are `additionalProperties:
28
+ * false`, so this type carries EXACTLY the fields the schema allows, no
29
+ * more:
30
+ * - root: dropped `@context` (not a schema property at all); added the
31
+ * required `schemaVersion`, `issuedAt`, `subjectRef`; `type` narrowed
32
+ * from a two-element VC tuple to the schema's `const
33
+ * "IAASOSigningCredential"`.
34
+ * - `credentialSubject`: dropped `id`, `principal`, the nested
35
+ * authenticator key field, `assurance_evidence`, `kya_hash` (none
36
+ * exist in the schema); kept `assurance_level`; `scope` renamed/aligned
37
+ * to the schema's own field names (`counterparties` not
38
+ * `counterparty_allowlist`, `geography` not `geographies`, no
39
+ * `resource_pattern`/`assurance_min`); added the schema's real key
40
+ * object, `key: {keyId, publicKey}` (schema.json:80-89) — THIS is the
41
+ * field RedTeam G1 is about: the drifted authenticator key field
42
+ * named a field that does not exist in the schema at all, and the
43
+ * correct field is `credentialSubject.key.publicKey`.
44
+ *
45
+ * `proof` and `signatureSuite` reference the schema's own EXTERNAL
46
+ * `common/base-object/v1.1` `$defs` (`signatureEnvelope` /
47
+ * `signatureSuite`), which this package has not fetched — typed
48
+ * structurally-unknown rather than guessed at.
49
+ */
15
50
  export interface UaidSigningCredential {
16
- "@context": string[];
17
- type: ["VerifiableCredential", "UaidSigningCredential"];
18
51
  id: string;
52
+ type: "IAASOSigningCredential";
53
+ schemaVersion: string;
54
+ issuedAt: string;
19
55
  issuer: string;
20
- validFrom: string;
21
- validUntil: string;
56
+ subjectRef: string;
22
57
  credentialSubject: {
23
- id: string;
24
- principal: string;
58
+ assurance_level: AssuranceLevel;
25
59
  scope: {
26
60
  actions: string[];
27
- resource_pattern?: string;
28
- counterparty_allowlist?: string[];
61
+ counterparties: string[];
29
62
  value_ceiling?: {
30
- currency: string;
31
63
  amount: number;
64
+ currency: string;
32
65
  };
33
- geographies?: string[];
34
- assurance_min?: AssuranceLevel;
66
+ geography?: string[];
35
67
  };
36
- authenticator: {
37
- type: "platform" | "hardware" | "hsm" | "qscd";
38
- attestation?: string;
39
- public_key_jwk: JsonWebKey;
68
+ key: {
69
+ keyId: string;
70
+ publicKey: string;
40
71
  };
41
- assurance_level: AssuranceLevel;
42
- assurance_evidence?: Array<{
43
- provider: string;
44
- evidence_uri: string;
45
- hash: string;
46
- }>;
47
- kya_hash: string;
48
72
  };
49
- proof: DataIntegrityProof;
73
+ validFrom: string;
74
+ validUntil: string;
75
+ status?: "active" | "suspended" | "revoked" | "expired";
76
+ proof: unknown[];
77
+ signatureSuite?: unknown;
50
78
  }
51
79
  export interface UaidExchange {
52
80
  "@context": string[];
@@ -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
@@ -20,6 +20,14 @@
20
20
  // UaidNetworkClient.submit).
21
21
  export * from "./revocation.js";
22
22
  // ============================================================================
23
+ // Local proof verification — did:key/JWK key resolution + eddsa-jcs-2022
24
+ // DataIntegrityProof verification for createExchange()'s output and for
25
+ // arbitrary JCS documents (e.g. the MCP sole-control challenge). See
26
+ // ./verify.ts for the signed-bytes construction and its documented
27
+ // divergence from the W3C eddsa-jcs-2022 cryptosuite.
28
+ // ============================================================================
29
+ export * from "./verify.js";
30
+ // ============================================================================
23
31
  // Exchange creation
24
32
  // ============================================================================
25
33
  const CONTEXT = [
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,115 @@
1
+ /**
2
+ * @e-sig/uaid-exch — local proof verification.
3
+ *
4
+ * Verifies the two `DataIntegrityProof` entries `createExchange()` produces
5
+ * (./index.ts:197-254) without any network round-trip, plus a generic
6
+ * `verifyDataIntegrityProof`/`verifyChallengeProof` pair usable for any
7
+ * JCS-canonicalizable document carrying an `eddsa-jcs-2022` proof — this is
8
+ * the local (L1) leg of the UUAID/IAASO signer-identity ladder described in
9
+ * docs/architecture/esig-mcp.md § 12 ("L1 proven"): a sole-control challenge
10
+ * signed by the presenter, verified here with no registry call.
11
+ *
12
+ * SIGNED-BYTES CONSTRUCTION — divergence from W3C eddsa-jcs-2022 (documented,
13
+ * intentional; ADR note per docs/architecture/esig-mcp.md § 12 "Bindings"):
14
+ * the W3C Data Integrity `eddsa-jcs-2022` cryptosuite signs
15
+ * `sha256(JCS(proofConfig)) || sha256(JCS(document))` — a hash of the proof
16
+ * options (everything in the proof object except `proofValue`) concatenated
17
+ * with a hash of the document. `createExchange()` (./index.ts:229-234) does
18
+ * NOT do this: it JCS-canonicalizes ONLY the exchange body with the `proof`
19
+ * property omitted (`const canonicalBytes = jcsBytes(body)`, ./index.ts:229)
20
+ * and signs those bytes directly — the proof's own `created`,
21
+ * `verificationMethod`, and `proofPurpose` fields are never part of the
22
+ * signed input, and there is no proof-config hash at all. Every function
23
+ * below mirrors `createExchange` exactly (interop with our own artifacts
24
+ * wins per the build ticket), NOT the W3C double-hash construction. See the
25
+ * "signs jcsBytes(document) directly (createExchange's construction), not
26
+ * the W3C eddsa-jcs-2022 proofConfig-hash construction" test in
27
+ * tests/verify.test.ts for a pinned, human-checkable example of the
28
+ * divergence.
29
+ *
30
+ * Key resolution supports two `verificationMethod` shapes (docs/architecture
31
+ * /esig-mcp.md § 12 T10): a `did:key:z...` URI (multibase + multicodec
32
+ * Ed25519) and a raw JWK (`{kty:"OKP", crv:"Ed25519", x}` — EXACTLY those
33
+ * three fields, no more; RedTeam G6, rt-verdict-ESIGMCP-V02-IDENTITY-20260827:
34
+ * a JWK carrying any other property, notably `d` (the RFC 8037 §2 PRIVATE
35
+ * half of an OKP/Ed25519 keypair), is rejected outright rather than having
36
+ * its extra fields silently ignored). This is also the encoding
37
+ * `UaidSigningCredential.credentialSubject.key.publicKey` uses when it
38
+ * carries a JWK rather than a `did:key:` string (./index.ts, schema.json:
39
+ * 80-89 — the real tae/v1 field, `credentialSubject.key.publicKey`; a
40
+ * previous doc reference here named a field that does not exist in the
41
+ * schema and has been corrected). A bare `"ed25519:<hex64>"` form was considered per the
42
+ * build ticket and rejected: neither `createExchange` (./index.ts:141-151,
43
+ * `AgentSigner.verificationMethod` is documented as
44
+ * `uuaid:foundation:agent:<uuid>#sk-...`) nor any test in tests/ uses that
45
+ * shape, so it is not implemented — inventing an unused key format would be
46
+ * unverifiable surface area.
47
+ */
48
+ import { type DataIntegrityProof, type UaidExchange } from "./index.js";
49
+ /** The multibase prefixes this module understands: `z` = base58btc, `u` = base64url (unpadded). */
50
+ export type MultibasePrefix = "z" | "u";
51
+ /**
52
+ * Decode a multibase string: `z` prefix → base58btc, `u` prefix →
53
+ * base64url (unpadded, per the multibase spec). Any other (or missing)
54
+ * prefix throws.
55
+ */
56
+ export declare function decodeMultibase(value: string): Uint8Array;
57
+ /** Encode bytes as multibase under the given prefix. Counterpart to {@link decodeMultibase}, used by tests and by callers building their own did:key values. */
58
+ export declare function encodeMultibase(bytes: Uint8Array, prefix: MultibasePrefix): string;
59
+ export declare class UnsupportedVerificationMethodError extends Error {
60
+ constructor(message: string);
61
+ }
62
+ export declare function publicKeyFromVerificationMethod(vm: string | JsonWebKey): Uint8Array;
63
+ export interface DataIntegrityProofOpts {
64
+ /** Override key resolution — skip deriving from `proof.verificationMethod`. */
65
+ publicKey?: Uint8Array;
66
+ /** Reject the proof unless `proof.proofPurpose` equals this. */
67
+ expectedProofPurpose?: "authentication" | "assertionMethod";
68
+ }
69
+ export interface DataIntegrityVerifyResult {
70
+ ok: boolean;
71
+ reason?: string;
72
+ /** sha256 hex digest of the 32 raw Ed25519 public key bytes, when a key was resolved. */
73
+ keyFingerprint?: string;
74
+ verificationMethod: string;
75
+ }
76
+ /**
77
+ * Verify an `eddsa-jcs-2022` `DataIntegrityProof` over `document`. `document`
78
+ * must NOT include the `proof` property — pass the same shape
79
+ * `createExchange` signed (everything except `proof`; see the module doc
80
+ * comment on the signed-bytes construction). Never throws: any failure
81
+ * (unknown type/cryptosuite, purpose mismatch, unresolvable or wrong-length
82
+ * key, bad multibase `proofValue`, bad signature) comes back as `ok: false`
83
+ * with a `reason`, fail-closed like the rest of this package
84
+ * (revocation.ts's `verifyRevocationListIntegrity`).
85
+ */
86
+ export declare function verifyDataIntegrityProof(document: unknown, proof: DataIntegrityProof, opts?: DataIntegrityProofOpts): DataIntegrityVerifyResult;
87
+ /**
88
+ * Thin alias of {@link verifyDataIntegrityProof} for an arbitrary
89
+ * JCS-canonicalizable document that carries no embedded `proof` field of its
90
+ * own — e.g. the MCP sole-control challenge
91
+ * (docs/architecture/esig-mcp.md § 12: `{type, envelopeId, signerId,
92
+ * htmlSha256, nonce, issuedAt, expiresAt}`, proof presented alongside it,
93
+ * never inside it).
94
+ */
95
+ export declare function verifyChallengeProof(challenge: object, proof: DataIntegrityProof, opts?: DataIntegrityProofOpts): DataIntegrityVerifyResult;
96
+ export interface VerifyExchangeOpts {
97
+ agentPublicKey?: Uint8Array;
98
+ issuerPublicKey?: Uint8Array;
99
+ }
100
+ export interface VerifyExchangeResult {
101
+ ok: boolean;
102
+ agent: DataIntegrityVerifyResult;
103
+ issuer: DataIntegrityVerifyResult;
104
+ failures: string[];
105
+ }
106
+ /**
107
+ * Verify both proofs on a `UaidExchange` produced by `createExchange`
108
+ * (./index.ts:197-254): `proof[0]` is always the agent's (`authentication`),
109
+ * `proof[1]` is always the issuer's (`assertionMethod`) — createExchange
110
+ * constructs the array in exactly that fixed order (./index.ts:253). Both
111
+ * proofs sign the same canonical bytes: the exchange with its `proof` array
112
+ * removed. Never throws.
113
+ */
114
+ export declare function verifyExchange(exchange: UaidExchange, opts?: VerifyExchangeOpts): VerifyExchangeResult;
115
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAGH,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAClB,MAAM,YAAY,CAAC;AAMpB,mGAAmG;AACnG,MAAM,MAAM,eAAe,GAAG,GAAG,GAAG,GAAG,CAAC;AAQxC;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAWzD;AAED,gKAAgK;AAChK,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,eAAe,GACtB,MAAM,CAMR;AA6DD,qBAAa,kCAAmC,SAAQ,KAAK;gBAC/C,OAAO,EAAE,MAAM;CAI5B;AA0BD,wBAAgB,+BAA+B,CAC7C,EAAE,EAAE,MAAM,GAAG,UAAU,GACtB,UAAU,CAoCZ;AA+CD,MAAM,WAAW,sBAAsB;IACrC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,CAAC;CAC7D;AAED,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yFAAyF;IACzF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,kBAAkB,EACzB,IAAI,GAAE,sBAA2B,GAChC,yBAAyB,CA+E3B;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,kBAAkB,EACzB,IAAI,GAAE,sBAA2B,GAChC,yBAAyB,CAE3B;AAMD,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,eAAe,CAAC,EAAE,UAAU,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,yBAAyB,CAAC;IACjC,MAAM,EAAE,yBAAyB,CAAC;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,YAAY,EACtB,IAAI,GAAE,kBAAuB,GAC5B,oBAAoB,CAyBtB"}
package/dist/verify.js ADDED
@@ -0,0 +1,358 @@
1
+ /**
2
+ * @e-sig/uaid-exch — local proof verification.
3
+ *
4
+ * Verifies the two `DataIntegrityProof` entries `createExchange()` produces
5
+ * (./index.ts:197-254) without any network round-trip, plus a generic
6
+ * `verifyDataIntegrityProof`/`verifyChallengeProof` pair usable for any
7
+ * JCS-canonicalizable document carrying an `eddsa-jcs-2022` proof — this is
8
+ * the local (L1) leg of the UUAID/IAASO signer-identity ladder described in
9
+ * docs/architecture/esig-mcp.md § 12 ("L1 proven"): a sole-control challenge
10
+ * signed by the presenter, verified here with no registry call.
11
+ *
12
+ * SIGNED-BYTES CONSTRUCTION — divergence from W3C eddsa-jcs-2022 (documented,
13
+ * intentional; ADR note per docs/architecture/esig-mcp.md § 12 "Bindings"):
14
+ * the W3C Data Integrity `eddsa-jcs-2022` cryptosuite signs
15
+ * `sha256(JCS(proofConfig)) || sha256(JCS(document))` — a hash of the proof
16
+ * options (everything in the proof object except `proofValue`) concatenated
17
+ * with a hash of the document. `createExchange()` (./index.ts:229-234) does
18
+ * NOT do this: it JCS-canonicalizes ONLY the exchange body with the `proof`
19
+ * property omitted (`const canonicalBytes = jcsBytes(body)`, ./index.ts:229)
20
+ * and signs those bytes directly — the proof's own `created`,
21
+ * `verificationMethod`, and `proofPurpose` fields are never part of the
22
+ * signed input, and there is no proof-config hash at all. Every function
23
+ * below mirrors `createExchange` exactly (interop with our own artifacts
24
+ * wins per the build ticket), NOT the W3C double-hash construction. See the
25
+ * "signs jcsBytes(document) directly (createExchange's construction), not
26
+ * the W3C eddsa-jcs-2022 proofConfig-hash construction" test in
27
+ * tests/verify.test.ts for a pinned, human-checkable example of the
28
+ * divergence.
29
+ *
30
+ * Key resolution supports two `verificationMethod` shapes (docs/architecture
31
+ * /esig-mcp.md § 12 T10): a `did:key:z...` URI (multibase + multicodec
32
+ * Ed25519) and a raw JWK (`{kty:"OKP", crv:"Ed25519", x}` — EXACTLY those
33
+ * three fields, no more; RedTeam G6, rt-verdict-ESIGMCP-V02-IDENTITY-20260827:
34
+ * a JWK carrying any other property, notably `d` (the RFC 8037 §2 PRIVATE
35
+ * half of an OKP/Ed25519 keypair), is rejected outright rather than having
36
+ * its extra fields silently ignored). This is also the encoding
37
+ * `UaidSigningCredential.credentialSubject.key.publicKey` uses when it
38
+ * carries a JWK rather than a `did:key:` string (./index.ts, schema.json:
39
+ * 80-89 — the real tae/v1 field, `credentialSubject.key.publicKey`; a
40
+ * previous doc reference here named a field that does not exist in the
41
+ * schema and has been corrected). A bare `"ed25519:<hex64>"` form was considered per the
42
+ * build ticket and rejected: neither `createExchange` (./index.ts:141-151,
43
+ * `AgentSigner.verificationMethod` is documented as
44
+ * `uuaid:foundation:agent:<uuid>#sk-...`) nor any test in tests/ uses that
45
+ * shape, so it is not implemented — inventing an unused key format would be
46
+ * unverifiable surface area.
47
+ */
48
+ import { createHash, createPublicKey, verify as ed25519Verify } from "node:crypto";
49
+ import { jcsBytes, } from "./index.js";
50
+ const BASE58BTC_ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
51
+ const BASE58BTC_INDEX = new Map(Array.from(BASE58BTC_ALPHABET).map((c, i) => [c, i]));
52
+ /**
53
+ * Decode a multibase string: `z` prefix → base58btc, `u` prefix →
54
+ * base64url (unpadded, per the multibase spec). Any other (or missing)
55
+ * prefix throws.
56
+ */
57
+ export function decodeMultibase(value) {
58
+ if (typeof value !== "string" || value.length < 1) {
59
+ throw new Error("decodeMultibase: expected a non-empty multibase string");
60
+ }
61
+ const prefix = value[0];
62
+ const rest = value.slice(1);
63
+ if (prefix === "z")
64
+ return base58btcDecode(rest);
65
+ if (prefix === "u")
66
+ return base64UrlDecode(rest);
67
+ throw new Error(`decodeMultibase: unsupported multibase prefix ${JSON.stringify(prefix)}`);
68
+ }
69
+ /** Encode bytes as multibase under the given prefix. Counterpart to {@link decodeMultibase}, used by tests and by callers building their own did:key values. */
70
+ export function encodeMultibase(bytes, prefix) {
71
+ if (prefix === "z")
72
+ return "z" + base58btcEncode(bytes);
73
+ if (prefix === "u")
74
+ return "u" + base64UrlEncode(bytes);
75
+ throw new Error(`encodeMultibase: unsupported multibase prefix ${JSON.stringify(prefix)}`);
76
+ }
77
+ /** Inline base58btc decoder (Bitcoin alphabet) — no dependency. */
78
+ function base58btcDecode(s) {
79
+ let num = 0n;
80
+ for (const ch of s) {
81
+ const digit = BASE58BTC_INDEX.get(ch);
82
+ if (digit === undefined) {
83
+ throw new Error(`decodeMultibase: invalid base58btc character ${JSON.stringify(ch)}`);
84
+ }
85
+ num = num * 58n + BigInt(digit);
86
+ }
87
+ let hex = num.toString(16);
88
+ if (hex.length % 2 === 1)
89
+ hex = "0" + hex;
90
+ const body = hex.length === 0
91
+ ? new Uint8Array(0)
92
+ : new Uint8Array(hex.match(/.{2}/g).map((byte) => parseInt(byte, 16)));
93
+ let leadingZeros = 0;
94
+ for (const ch of s) {
95
+ if (ch === "1")
96
+ leadingZeros++;
97
+ else
98
+ break;
99
+ }
100
+ const out = new Uint8Array(leadingZeros + body.length);
101
+ out.set(body, leadingZeros);
102
+ return out;
103
+ }
104
+ /** Inline base58btc encoder — no dependency. */
105
+ function base58btcEncode(bytes) {
106
+ let num = 0n;
107
+ for (const b of bytes)
108
+ num = (num << 8n) | BigInt(b);
109
+ let out = "";
110
+ while (num > 0n) {
111
+ const rem = Number(num % 58n);
112
+ out = BASE58BTC_ALPHABET[rem] + out;
113
+ num /= 58n;
114
+ }
115
+ let leadingZeros = 0;
116
+ for (const b of bytes) {
117
+ if (b === 0)
118
+ leadingZeros++;
119
+ else
120
+ break;
121
+ }
122
+ return BASE58BTC_ALPHABET[0].repeat(leadingZeros) + out;
123
+ }
124
+ function base64UrlDecode(s) {
125
+ if (!/^[A-Za-z0-9_-]*$/.test(s)) {
126
+ throw new Error("decodeMultibase: invalid base64url characters");
127
+ }
128
+ return new Uint8Array(Buffer.from(s, "base64url"));
129
+ }
130
+ function base64UrlEncode(bytes) {
131
+ return Buffer.from(bytes).toString("base64url");
132
+ }
133
+ // ============================================================================
134
+ // Key resolution — did:key (Ed25519 multicodec) or raw Ed25519 JWK
135
+ // ============================================================================
136
+ export class UnsupportedVerificationMethodError extends Error {
137
+ constructor(message) {
138
+ super(message);
139
+ this.name = "UnsupportedVerificationMethodError";
140
+ }
141
+ }
142
+ // multicodec varint for "ed25519-pub" (table code 0xed) is the two bytes
143
+ // [0xed, 0x01] — 0xed >= 0x80 so the varint continues: byte0 = (0xed & 0x7f)
144
+ // | 0x80 = 0xed, byte1 = 0xed >> 7 = 0x01. Verified against did:key spec
145
+ // examples (all begin `z6Mk`, decoding to this exact 2-byte prefix).
146
+ const ED25519_MULTICODEC_PREFIX = [0xed, 0x01];
147
+ /**
148
+ * Resolve the raw 32-byte Ed25519 public key from a `verificationMethod`.
149
+ * Accepts a `did:key:z...` URI (optionally with a `#fragment`, which is
150
+ * ignored — did:key's method-specific-id already IS the key) or a raw
151
+ * `{kty:"OKP", crv:"Ed25519", x}` JWK — EXACTLY those three fields.
152
+ * Anything else throws {@link UnsupportedVerificationMethodError}.
153
+ *
154
+ * G6 (RedTeam rt-verdict-ESIGMCP-V02-IDENTITY-20260827, LOW): a JWK carrying
155
+ * ANY property beyond `{kty, crv, x}` is rejected outright, before the
156
+ * shape check below even runs — most notably `d` (RFC 8037 §2's PRIVATE
157
+ * half of an OKP/Ed25519 keypair). A counterparty handing over `d`
158
+ * alongside `x` is either malformed or testing whether this verifier
159
+ * silently drops unrecognized fields on a key it is about to trust for
160
+ * authentication; either way, "pass the public half, ignore the rest" is
161
+ * the wrong response — reject the whole JWK instead.
162
+ */
163
+ const ALLOWED_JWK_FIELDS = new Set(["kty", "crv", "x"]);
164
+ export function publicKeyFromVerificationMethod(vm) {
165
+ if (typeof vm === "string")
166
+ return publicKeyFromDidKey(vm);
167
+ if (vm && typeof vm === "object") {
168
+ const extra = Object.keys(vm).filter((k) => !ALLOWED_JWK_FIELDS.has(k));
169
+ if (extra.length > 0) {
170
+ throw new UnsupportedVerificationMethodError(`unsupported Ed25519 JWK: unexpected extra field(s) ${JSON.stringify(extra)} — only ` +
171
+ `{kty, crv, x} is accepted (G6: no extra key material, e.g. a private "d")`);
172
+ }
173
+ }
174
+ if (vm &&
175
+ typeof vm === "object" &&
176
+ vm.kty === "OKP" &&
177
+ vm.crv === "Ed25519" &&
178
+ typeof vm.x === "string") {
179
+ let raw;
180
+ try {
181
+ raw = base64UrlDecode(vm.x);
182
+ }
183
+ catch (err) {
184
+ throw new UnsupportedVerificationMethodError(`unsupported Ed25519 JWK: invalid base64url "x" (${err instanceof Error ? err.message : String(err)})`);
185
+ }
186
+ if (raw.length !== 32) {
187
+ throw new UnsupportedVerificationMethodError(`unsupported Ed25519 JWK: expected 32-byte "x", got ${raw.length}`);
188
+ }
189
+ return raw;
190
+ }
191
+ throw new UnsupportedVerificationMethodError(`unsupported verificationMethod: ${JSON.stringify(vm)}`);
192
+ }
193
+ function publicKeyFromDidKey(vm) {
194
+ const match = /^did:key:([^#]+)(?:#.*)?$/.exec(vm);
195
+ if (!match) {
196
+ throw new UnsupportedVerificationMethodError(`unsupported verificationMethod: ${JSON.stringify(vm)}`);
197
+ }
198
+ let decoded;
199
+ try {
200
+ decoded = decodeMultibase(match[1]);
201
+ }
202
+ catch (err) {
203
+ throw new UnsupportedVerificationMethodError(`unsupported did:key verificationMethod ${JSON.stringify(vm)}: ${err instanceof Error ? err.message : String(err)}`);
204
+ }
205
+ if (decoded.length !== 34 ||
206
+ decoded[0] !== ED25519_MULTICODEC_PREFIX[0] ||
207
+ decoded[1] !== ED25519_MULTICODEC_PREFIX[1]) {
208
+ throw new UnsupportedVerificationMethodError(`unsupported did:key verificationMethod ${JSON.stringify(vm)}: expected Ed25519 multicodec prefix ` +
209
+ `0xed 0x01 + 32 key bytes (34 bytes total), got ${decoded.length} bytes with prefix ` +
210
+ `0x${(decoded[0] ?? 0).toString(16).padStart(2, "0")} 0x${(decoded[1] ?? 0).toString(16).padStart(2, "0")}`);
211
+ }
212
+ return decoded.slice(2);
213
+ }
214
+ // ============================================================================
215
+ // DataIntegrityProof verification
216
+ // ============================================================================
217
+ // DER SubjectPublicKeyInfo prefix for a raw Ed25519 public key (RFC 8410):
218
+ // SEQUENCE { SEQUENCE { OID 1.3.101.112 (Ed25519) } BIT STRING (32 bytes) }.
219
+ // Verified live against node:crypto's own SPKI export for a generated
220
+ // Ed25519 key (identical 12-byte prefix) before use here.
221
+ const ED25519_SPKI_PREFIX = Uint8Array.from([
222
+ 0x30, 0x2a, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65, 0x70, 0x03, 0x21, 0x00,
223
+ ]);
224
+ function sha256Hex(bytes) {
225
+ return createHash("sha256").update(bytes).digest("hex");
226
+ }
227
+ /**
228
+ * Verify an `eddsa-jcs-2022` `DataIntegrityProof` over `document`. `document`
229
+ * must NOT include the `proof` property — pass the same shape
230
+ * `createExchange` signed (everything except `proof`; see the module doc
231
+ * comment on the signed-bytes construction). Never throws: any failure
232
+ * (unknown type/cryptosuite, purpose mismatch, unresolvable or wrong-length
233
+ * key, bad multibase `proofValue`, bad signature) comes back as `ok: false`
234
+ * with a `reason`, fail-closed like the rest of this package
235
+ * (revocation.ts's `verifyRevocationListIntegrity`).
236
+ */
237
+ export function verifyDataIntegrityProof(document, proof, opts = {}) {
238
+ const verificationMethod = proof?.verificationMethod ?? "";
239
+ try {
240
+ if (proof?.type !== "DataIntegrityProof") {
241
+ return {
242
+ ok: false,
243
+ reason: `unsupported proof type: ${JSON.stringify(proof?.type)}`,
244
+ verificationMethod,
245
+ };
246
+ }
247
+ if (proof.cryptosuite !== "eddsa-jcs-2022") {
248
+ return {
249
+ ok: false,
250
+ reason: `unsupported cryptosuite: ${JSON.stringify(proof.cryptosuite)}`,
251
+ verificationMethod,
252
+ };
253
+ }
254
+ if (opts.expectedProofPurpose !== undefined &&
255
+ proof.proofPurpose !== opts.expectedProofPurpose) {
256
+ return {
257
+ ok: false,
258
+ reason: `proofPurpose mismatch: expected "${opts.expectedProofPurpose}", got "${proof.proofPurpose}"`,
259
+ verificationMethod,
260
+ };
261
+ }
262
+ let publicKey;
263
+ try {
264
+ publicKey = opts.publicKey ?? publicKeyFromVerificationMethod(proof.verificationMethod);
265
+ }
266
+ catch (err) {
267
+ return {
268
+ ok: false,
269
+ reason: err instanceof Error ? err.message : String(err),
270
+ verificationMethod,
271
+ };
272
+ }
273
+ if (publicKey.length !== 32) {
274
+ return {
275
+ ok: false,
276
+ reason: `invalid public key length: expected 32 bytes, got ${publicKey.length}`,
277
+ verificationMethod,
278
+ };
279
+ }
280
+ const keyFingerprint = sha256Hex(publicKey);
281
+ let signature;
282
+ try {
283
+ signature = decodeMultibase(proof.proofValue);
284
+ }
285
+ catch (err) {
286
+ return {
287
+ ok: false,
288
+ reason: `bad multibase proofValue: ${err instanceof Error ? err.message : String(err)}`,
289
+ keyFingerprint,
290
+ verificationMethod,
291
+ };
292
+ }
293
+ const keyObject = createPublicKey({
294
+ key: Buffer.concat([Buffer.from(ED25519_SPKI_PREFIX), Buffer.from(publicKey)]),
295
+ format: "der",
296
+ type: "spki",
297
+ });
298
+ // The exact bytes createExchange signed: jcsBytes(body-without-proof),
299
+ // NOT a W3C proofConfig-hash construction — see module doc comment.
300
+ const signedBytes = jcsBytes(document);
301
+ const sigOk = ed25519Verify(null, signedBytes, keyObject, signature);
302
+ if (!sigOk) {
303
+ return { ok: false, reason: "signature verification failed", keyFingerprint, verificationMethod };
304
+ }
305
+ return { ok: true, keyFingerprint, verificationMethod };
306
+ }
307
+ catch (err) {
308
+ return {
309
+ ok: false,
310
+ reason: `verification error: ${err instanceof Error ? err.message : String(err)}`,
311
+ verificationMethod,
312
+ };
313
+ }
314
+ }
315
+ /**
316
+ * Thin alias of {@link verifyDataIntegrityProof} for an arbitrary
317
+ * JCS-canonicalizable document that carries no embedded `proof` field of its
318
+ * own — e.g. the MCP sole-control challenge
319
+ * (docs/architecture/esig-mcp.md § 12: `{type, envelopeId, signerId,
320
+ * htmlSha256, nonce, issuedAt, expiresAt}`, proof presented alongside it,
321
+ * never inside it).
322
+ */
323
+ export function verifyChallengeProof(challenge, proof, opts = {}) {
324
+ return verifyDataIntegrityProof(challenge, proof, opts);
325
+ }
326
+ /**
327
+ * Verify both proofs on a `UaidExchange` produced by `createExchange`
328
+ * (./index.ts:197-254): `proof[0]` is always the agent's (`authentication`),
329
+ * `proof[1]` is always the issuer's (`assertionMethod`) — createExchange
330
+ * constructs the array in exactly that fixed order (./index.ts:253). Both
331
+ * proofs sign the same canonical bytes: the exchange with its `proof` array
332
+ * removed. Never throws.
333
+ */
334
+ export function verifyExchange(exchange, opts = {}) {
335
+ const proofCount = Array.isArray(exchange?.proof) ? exchange.proof.length : -1;
336
+ if (proofCount !== 2) {
337
+ const reason = `expected exactly 2 proofs (agent, issuer), got ${proofCount < 0 ? "none" : proofCount}`;
338
+ const unresolved = { ok: false, reason, verificationMethod: "" };
339
+ return { ok: false, agent: unresolved, issuer: unresolved, failures: [reason] };
340
+ }
341
+ const { proof, ...documentBody } = exchange;
342
+ const [agentProof, issuerProof] = proof;
343
+ const agent = verifyDataIntegrityProof(documentBody, agentProof, {
344
+ publicKey: opts.agentPublicKey,
345
+ expectedProofPurpose: "authentication",
346
+ });
347
+ const issuer = verifyDataIntegrityProof(documentBody, issuerProof, {
348
+ publicKey: opts.issuerPublicKey,
349
+ expectedProofPurpose: "assertionMethod",
350
+ });
351
+ const failures = [];
352
+ if (!agent.ok)
353
+ failures.push(`agent: ${agent.reason}`);
354
+ if (!issuer.ok)
355
+ failures.push(`issuer: ${issuer.reason}`);
356
+ return { ok: agent.ok && issuer.ok, agent, issuer, failures };
357
+ }
358
+ //# sourceMappingURL=verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e-sig/uaid-exch",
3
- "version": "0.1.0-preview.1",
3
+ "version": "0.1.0-preview.2",
4
4
  "description": "Preview implementation of the IAASO Exchange Profile (ADR-006, under review). Wraps @e-sig/core envelopes as per-transaction signed authorizations on the UUAID Network with subject + issuer proofs and Polygon-anchored batch receipts. Wire format will be finalized when ADR-006 is Accepted.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -45,7 +45,7 @@
45
45
  ],
46
46
  "repository": {
47
47
  "type": "git",
48
- "url": "https://github.com/vmvtech/esig-suite.git",
48
+ "url": "git+https://github.com/vmvtech/esig-suite.git",
49
49
  "directory": "packages/esig-uaid-exch"
50
50
  },
51
51
  "homepage": "https://github.com/vmvtech/esig-suite/tree/main/packages/esig-uaid-exch#readme",
@@ -53,10 +53,10 @@
53
53
  "@uuaid/sdk": "^0.1.0"
54
54
  },
55
55
  "peerDependencies": {
56
- "@e-sig/core": "^0.5.0 || ^0.6.0 || ^0.7.0"
56
+ "@e-sig/core": "^0.5.0 || ^0.6.0 || ^0.7.0 || ^0.8.0"
57
57
  },
58
58
  "devDependencies": {
59
- "@e-sig/core": "^0.7.0",
59
+ "@e-sig/core": "^0.8.0",
60
60
  "@types/node": "^22.0.0",
61
61
  "typescript": "^5.4.0",
62
62
  "vitest": "^4.1.10"