@verana-labs/vs-agent-plugin-openid4vc 2.0.0-dev.79 → 2.0.0-pr766.1

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.
Files changed (34) hide show
  1. package/README.md +41 -22
  2. package/build/index.d.ts +1 -1
  3. package/build/index.js +2 -1
  4. package/build/index.js.map +1 -1
  5. package/build/nestjs/OpenId4VcPlugin.js +7 -0
  6. package/build/nestjs/OpenId4VcPlugin.js.map +1 -1
  7. package/build/nestjs/dto/presentation.dto.js +6 -2
  8. package/build/nestjs/dto/presentation.dto.js.map +1 -1
  9. package/build/sdk/setupOpenId4Vc.js +1 -8
  10. package/build/sdk/setupOpenId4Vc.js.map +1 -1
  11. package/build/services/VerifierService.d.ts +5 -1
  12. package/build/services/VerifierService.js +73 -33
  13. package/build/services/VerifierService.js.map +1 -1
  14. package/build/services/credentialConfigurationBuilder.d.ts +7 -0
  15. package/build/services/credentialConfigurationBuilder.js +17 -0
  16. package/build/services/credentialConfigurationBuilder.js.map +1 -1
  17. package/build/services/presentationRequest.js +8 -3
  18. package/build/services/presentationRequest.js.map +1 -1
  19. package/build/trust/keyBinding.d.ts +9 -1
  20. package/build/trust/keyBinding.js +15 -5
  21. package/build/trust/keyBinding.js.map +1 -1
  22. package/build/trust/presentedIssuer.d.ts +9 -0
  23. package/build/trust/presentedIssuer.js +23 -0
  24. package/build/trust/presentedIssuer.js.map +1 -0
  25. package/build/trust/trustDecision.d.ts +31 -0
  26. package/build/trust/trustDecision.js +183 -0
  27. package/build/trust/trustDecision.js.map +1 -0
  28. package/build/trust/types.d.ts +1 -1
  29. package/build/trust/types.js +1 -1
  30. package/build/trust/types.js.map +1 -1
  31. package/build/types.d.ts +4 -1
  32. package/build/types.js +2 -1
  33. package/build/types.js.map +1 -1
  34. package/package.json +2 -2
package/README.md CHANGED
@@ -42,14 +42,8 @@ following a redirect, to bind every credential to its `vct#integrity`. It answer
42
42
 
43
43
  ## Not wired up yet
44
44
 
45
- The configuration file carries no trust setting and the agent hosts no status list. So
46
- `createPresentationRequest` answers `404 UNKNOWN_ID` for every `jsonSchemaCredentialId`,
47
- `createCredentialOffer` answers it for every `statusListId`, and reading a verified presentation
48
- answers the `RESOLVER_UNAVAILABLE` verdict. Two issues carry the rest:
49
-
50
- - [#712](https://github.com/verana-labs/vs-agent/issues/712): the verifier trust decision on the
51
- eight steps the spec now defines, with no `trust` block anywhere;
52
- - [#713](https://github.com/verana-labs/vs-agent/issues/713): status lists.
45
+ The agent hosts no status list, so `createCredentialOffer` answers `404 UNKNOWN_ID` for every
46
+ `statusListId`. [#713](https://github.com/verana-labs/vs-agent/issues/713) carries it.
53
47
 
54
48
  ## Enable it
55
49
 
@@ -123,7 +117,7 @@ answers in the v2 error envelope. Without `OID4VC_CONFIG_FILE_LOCATION`, every p
123
117
  | `listCredentialExchanges` | `GET /credential-exchanges` | Filters `jsonSchemaCredentialId`, `state`. Keyset pagination. |
124
118
  | `getCredentialExchange` | `GET /credential-exchanges/{credentialExchangeId}` | `credentialExchangeId`, `jsonSchemaCredentialId`, `state`, `createdAt`, `updatedAt`, `expiresAt`, `errorMessage`. Never the claims, the offer URL or the pre-authorized code. |
125
119
  | `deleteCredentialExchange` | `DELETE /credential-exchanges/{credentialExchangeId}` | `204`. Deletes the record only, never a credential that a wallet holds. |
126
- | `createPresentationRequest` | `POST /presentation-request` | `jsonSchemaCredentialId`, optional `requestedClaims` (defaults to every claim of the type), optional `queryLanguage` (`dcql`, `presentation_exchange`), optional `requestSigner` (`x5c`, `did`). Returns `proofExchangeId` and `url`. `404 UNKNOWN_ID`, `400 INVALID_INPUT`, `409 INVALID_STATE`. The credential type has to be one the agent derived from the VPR. |
120
+ | `createPresentationRequest` | `POST /presentation-request` | `jsonSchemaCredentialId`, optional `requestedClaims` (defaults to every claim of the type), optional `queryLanguage` (`dcql`, `presentation_exchange`), optional `requestSigner` (`x5c`, `did`). Returns `proofExchangeId` and `url`. `404 UNKNOWN_ID`, `400 INVALID_INPUT`, `409 NOT_AUTHORIZED`, `503 RESOLVER_UNAVAILABLE`, `409 INVALID_STATE`. The agent has to hold an active VERIFIER `Participant` for the `CredentialSchema` of the type. |
127
121
  | `listPresentations` | `GET /presentations` | Filters `jsonSchemaCredentialId`, `state`. Keyset pagination. |
128
122
  | `getPresentation` | `GET /presentations/{proofExchangeId}` | Adds the stored `jsonSchemaCredentialId` and `requestedClaims` of the request, then `cryptographicVerified`, `accepted`, `trust` and `credential` once the wallet answered. |
129
123
  | `deletePresentation` | `DELETE /presentations/{proofExchangeId}` | `204`. |
@@ -152,16 +146,42 @@ Admin API and the metadata return; it never builds a path itself.
152
146
 
153
147
  ## Trust decision
154
148
 
155
- There is none yet. Nothing configures a resolver URL, allowed `did:web` hosts, credential-issuer
156
- roots or development fingerprints: the file rejects a `trust` block, and
157
- [#712](https://github.com/verana-labs/vs-agent/issues/712) builds the decision on the eight steps
158
- the spec now defines, on the indexer and on DID key binding, without one. Until it lands, a
159
- verified presentation answers `cryptographicVerified: true`, `accepted: false` and the verdict
160
- `RESOLVER_UNAVAILABLE`, and is never accepted.
149
+ Nothing configures it: no resolver URL, no allowed `did:web` host, no credential-issuer root and no
150
+ development fingerprint. The agent decides on the eight steps of [[VSA-VTI-FLOW-VERIFY-OID]](https://github.com/verana-labs/verana-spec/blob/main/v4/vs-agent/spec.md#vsa-vti-flow-verify-oid-openid4vp-trust-decision),
151
+ on its DID resolver and on the VPR, and fails closed at every one of them.
152
+
153
+ `createPresentationRequest` resolves the `jsonSchemaCredentialId` to its `CredentialSchema`
154
+ through the VTJSC (`404 UNKNOWN_ID` when it binds to none), requires an active VERIFIER
155
+ `Participant` of the agent for that schema (`409 NOT_AUTHORIZED`, `503 RESOLVER_UNAVAILABLE`), and
156
+ stores the type and the requested claims on the session. The wallet then answers, and credo runs
157
+ step 1: the nonce, the audience, the holder binding, the disclosures, the signature, the validity
158
+ period (`exp` is required) and the `status` claim, if the credential carries one. For an `x5c`
159
+ issuer credo trusts the leaf certificate the wallet presented and nothing above it: step 4 binds
160
+ the key through the DID Document, so no certificate authority takes part. A failure of step 1 ends
161
+ the session in `Error`, with `cryptographicVerified: false`.
161
162
 
162
- What the agent still enforces before that point: credo verifies the OpenID4VP response, the
163
- nonce, the audience, the holder binding, the SD-JWT disclosures and the signature, and the plugin
164
- fails a presented credential that carries no numeric `exp`. The session then ends in `Error`.
163
+ The first `getPresentation` of a `ResponseVerified` session runs the rest and stores the verdict:
164
+
165
+ | Step | Check | Verdict on failure |
166
+ | --- | --- | --- |
167
+ | 2 | issuer DID: `iss` when it is a DID, else the URI SAN of the leaf certificate | `UNTRUSTED` |
168
+ | 3 | a well-formed `did:web` or `did:webvh`, resolved fresh within 5 seconds, with the requested `id` | `UNTRUSTED`, or `RESOLVER_UNAVAILABLE` when the DID does not resolve |
169
+ | 4 | the signing key under `assertionMethod` of that DID Document | `UNTRUSTED` |
170
+ | 5 | the Type Metadata at `vct`, read over `https` without a redirect, hashes to `vct#integrity` and names the VTJSC of the request | `UNTRUSTED`, or `RESOLVER_UNAVAILABLE` when the document cannot be read |
171
+ | 6 | the `status` claim, verified by credo in step 1 against the issuer chain | the session ends in `Error` |
172
+ | 7 | the Verifiable Trust resolution of the issuer DID answers `TRUSTED`, and the VPR holds an active ISSUER `Participant` of it for the `CredentialSchema` | `UNTRUSTED`, `TRUSTED_NOT_AUTHORIZED`, or `RESOLVER_UNAVAILABLE` |
173
+ | 8 | `accepted` is `true` for `TRUSTED_AUTHORIZED` only | |
174
+
175
+ `RESOLVER_UNAVAILABLE` is never stored, so the next read retries. `listPresentations` never
176
+ decides: it reports the stored verdict, and a verified session nobody read yet shows
177
+ `cryptographicVerified: true`, `accepted: false` and no `trust`. The `evidence` of a verdict
178
+ carries the issuer `did`, the `trustStatus` of the resolution, the `jsonSchemaCredentialId` of the
179
+ request, `authorized`, the `queries` the agent ran and, when the verdict is not
180
+ `TRUSTED_AUTHORIZED`, a `note` that names the failed step.
181
+
182
+ Two points where credo, not the plugin, decides step 6, and where the spec reads differently: credo
183
+ fetches the Status List Token with its own client, not under the network boundary of step 3, and a
184
+ failure ends the session in `Error` instead of the verdict `UNTRUSTED`.
165
185
 
166
186
  ## Wallet accommodations
167
187
 
@@ -176,7 +196,6 @@ the code it changes, with a one-line note.
176
196
 
177
197
  `pnpm --filter @verana-labs/vs-agent-plugin-openid4vc exec vitest run` runs the unit tests and the
178
198
  in-process end-to-end tests, which start real credo agents for the issuer, the holder and the
179
- verifier and drive a pre-authorized issuance through to a stored holder-bound credential. The
180
- presentation round trip comes back with #712, which gives the verifier a trust anchor for the
181
- credential it receives. No external wallet or conformance evidence is recorded here; see the
182
- Verana Playground for recorded wallet scenarios.
199
+ verifier, drive a pre-authorized issuance through to a stored holder-bound credential, and present
200
+ it back to the verifier through to a stored trust verdict. No external wallet or conformance
201
+ evidence is recorded here; see the Verana Playground for recorded wallet scenarios.
package/build/index.d.ts CHANGED
@@ -17,5 +17,5 @@ export type { OpenId4VcQueryLanguage } from './services/presentationRequest';
17
17
  export type { OpenId4VcVerifiedCredentialResult, PresentationDecision, } from './services/presentationVerification';
18
18
  export { TRUST_VERDICT_NAMES, VERANA_TRUST_STATUSES } from './trust/types';
19
19
  export type { TrustEvidence, TrustVerdict, TrustVerdictName, VeranaTrustStatus } from './trust/types';
20
- export { OPENID4VC_OPTIONS } from './types';
20
+ export { OPENID4VC_DID_TRUST_RESOLVER, OPENID4VC_OPTIONS } from './types';
21
21
  export type { OpenId4VcAgent, OpenId4VcConfigurationFile, OpenId4VcConfiguredSigningMaterial, OpenId4VcCredentialConfiguration, OpenId4VcPluginOptions, OpenId4VcSigningOptions, OpenId4VcVsAgentModules, } from './types';
package/build/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.OPENID4VC_OPTIONS = exports.VERANA_TRUST_STATUSES = exports.TRUST_VERDICT_NAMES = exports.OPENID4VC_QUERY_LANGUAGES = exports.VerifierService = exports.OPENID4VC_REQUEST_SIGNERS = exports.IssuerService = exports.setupOpenId4Vc = exports.V2OpenId4VcSigningCertificatesController = exports.V2OpenId4VcPresentationsController = exports.V2OpenId4VcCredentialExchangesController = exports.OpenId4VcPlugin = exports.parseOpenId4VcConfiguration = exports.parseOfferClaims = exports.OFFER_TTL_SECONDS_MIN = exports.OFFER_TTL_SECONDS_MAX = exports.findCredentialConfiguration = exports.OpenId4VcVerificationSessionState = exports.OpenId4VcIssuanceSessionState = void 0;
17
+ exports.OPENID4VC_OPTIONS = exports.OPENID4VC_DID_TRUST_RESOLVER = exports.VERANA_TRUST_STATUSES = exports.TRUST_VERDICT_NAMES = exports.OPENID4VC_QUERY_LANGUAGES = exports.VerifierService = exports.OPENID4VC_REQUEST_SIGNERS = exports.IssuerService = exports.setupOpenId4Vc = exports.V2OpenId4VcSigningCertificatesController = exports.V2OpenId4VcPresentationsController = exports.V2OpenId4VcCredentialExchangesController = exports.OpenId4VcPlugin = exports.parseOpenId4VcConfiguration = exports.parseOfferClaims = exports.OFFER_TTL_SECONDS_MIN = exports.OFFER_TTL_SECONDS_MAX = exports.findCredentialConfiguration = exports.OpenId4VcVerificationSessionState = exports.OpenId4VcIssuanceSessionState = void 0;
18
18
  var openid4vc_1 = require("@credo-ts/openid4vc");
19
19
  Object.defineProperty(exports, "OpenId4VcIssuanceSessionState", { enumerable: true, get: function () { return openid4vc_1.OpenId4VcIssuanceSessionState; } });
20
20
  Object.defineProperty(exports, "OpenId4VcVerificationSessionState", { enumerable: true, get: function () { return openid4vc_1.OpenId4VcVerificationSessionState; } });
@@ -46,5 +46,6 @@ var types_1 = require("./trust/types");
46
46
  Object.defineProperty(exports, "TRUST_VERDICT_NAMES", { enumerable: true, get: function () { return types_1.TRUST_VERDICT_NAMES; } });
47
47
  Object.defineProperty(exports, "VERANA_TRUST_STATUSES", { enumerable: true, get: function () { return types_1.VERANA_TRUST_STATUSES; } });
48
48
  var types_2 = require("./types");
49
+ Object.defineProperty(exports, "OPENID4VC_DID_TRUST_RESOLVER", { enumerable: true, get: function () { return types_2.OPENID4VC_DID_TRUST_RESOLVER; } });
49
50
  Object.defineProperty(exports, "OPENID4VC_OPTIONS", { enumerable: true, get: function () { return types_2.OPENID4VC_OPTIONS; } });
50
51
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAAsG;AAA7F,0HAAA,6BAA6B,OAAA;AAAE,8HAAA,iCAAiC,OAAA;AAEzE,mCAMiB;AALf,qHAAA,2BAA2B,OAAA;AAC3B,+GAAA,qBAAqB,OAAA;AACrB,+GAAA,qBAAqB,OAAA;AACrB,0GAAA,gBAAgB,OAAA;AAChB,qHAAA,2BAA2B,OAAA;AAE7B,4DAA0D;AAAjD,kHAAA,eAAe,OAAA;AACxB,+CAA4B;AAC5B,8GAA4G;AAAnG,oKAAA,wCAAwC,OAAA;AACjD,kGAAgG;AAAvF,wJAAA,kCAAkC,OAAA;AAC3C,8GAA4G;AAAnG,oKAAA,wCAAwC,OAAA;AACjD,uDAAqD;AAA5C,gHAAA,cAAc,OAAA;AAGvB,0DAAwD;AAA/C,8GAAA,aAAa,OAAA;AAEtB,8DAAuF;AAA9E,4HAAA,yBAAyB,OAAA;AAAE,kHAAA,eAAe,OAAA;AAOnD,sEAA0E;AAAjE,gIAAA,yBAAyB,OAAA;AAMlC,uCAA0E;AAAjE,4GAAA,mBAAmB,OAAA;AAAE,8GAAA,qBAAqB,OAAA;AAEnD,iCAA2C;AAAlC,0GAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAAsG;AAA7F,0HAAA,6BAA6B,OAAA;AAAE,8HAAA,iCAAiC,OAAA;AAEzE,mCAMiB;AALf,qHAAA,2BAA2B,OAAA;AAC3B,+GAAA,qBAAqB,OAAA;AACrB,+GAAA,qBAAqB,OAAA;AACrB,0GAAA,gBAAgB,OAAA;AAChB,qHAAA,2BAA2B,OAAA;AAE7B,4DAA0D;AAAjD,kHAAA,eAAe,OAAA;AACxB,+CAA4B;AAC5B,8GAA4G;AAAnG,oKAAA,wCAAwC,OAAA;AACjD,kGAAgG;AAAvF,wJAAA,kCAAkC,OAAA;AAC3C,8GAA4G;AAAnG,oKAAA,wCAAwC,OAAA;AACjD,uDAAqD;AAA5C,gHAAA,cAAc,OAAA;AAGvB,0DAAwD;AAA/C,8GAAA,aAAa,OAAA;AAEtB,8DAAuF;AAA9E,4HAAA,yBAAyB,OAAA;AAAE,kHAAA,eAAe,OAAA;AAOnD,sEAA0E;AAAjE,gIAAA,yBAAyB,OAAA;AAMlC,uCAA0E;AAAjE,4GAAA,mBAAmB,OAAA;AAAE,8GAAA,qBAAqB,OAAA;AAEnD,iCAAyE;AAAhE,qHAAA,4BAA4B,OAAA;AAAE,0GAAA,iBAAiB,OAAA"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OpenId4VcPlugin = OpenId4VcPlugin;
4
+ const vs_agent_sdk_1 = require("@verana-labs/vs-agent-sdk");
4
5
  const IssuerService_1 = require("../services/IssuerService");
5
6
  const VerifierService_1 = require("../services/VerifierService");
6
7
  const types_1 = require("../types");
@@ -19,6 +20,11 @@ function OpenId4VcPlugin(options) {
19
20
  const publishIssuerService = service => {
20
21
  issuerService = service;
21
22
  };
23
+ const resolveDidTrust = options.verifiablePublicRegistries
24
+ ? (0, vs_agent_sdk_1.createDidTrustResolver)({ verifiablePublicRegistries: options.verifiablePublicRegistries })
25
+ : async (did) => {
26
+ throw new Error(`the agent has no VPR to resolve "${did}" against`);
27
+ };
22
28
  return {
23
29
  name: 'openid4vc',
24
30
  credoPlugin: sdkPlugin,
@@ -32,6 +38,7 @@ function OpenId4VcPlugin(options) {
32
38
  providers: [
33
39
  { provide: types_1.OPENID4VC_OPTIONS, useValue: options },
34
40
  { provide: types_1.OPENID4VC_ISSUER_SINK, useValue: publishIssuerService },
41
+ { provide: types_1.OPENID4VC_DID_TRUST_RESOLVER, useValue: resolveDidTrust },
35
42
  IssuerService_1.IssuerService,
36
43
  VerifierService_1.VerifierService,
37
44
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"OpenId4VcPlugin.js","sourceRoot":"","sources":["../../src/nestjs/OpenId4VcPlugin.ts"],"names":[],"mappings":";;AAcA,0CA4BC;AAvCD,6DAAyD;AACzD,iEAA6D;AAC7D,oCAAmE;AAEnE,4FAAgG;AAChG,0DAAsD;AAEtD,yGAAqG;AACrG,6FAAyF;AACzF,yGAAqG;AAErG,SAAgB,eAAe,CAAC,OAA+B;IAC7D,IAAI,aAAiD,CAAA;IACrD,MAAM,SAAS,GAAG,IAAA,+BAAc,EAAC,OAAO,EAAE,GAAG,EAAE;QAC7C,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAClF,OAAO,aAAa,CAAA;IACtB,CAAC,CAAC,CAAA;IACF,MAAM,oBAAoB,GAAwB,OAAO,CAAC,EAAE;QAC1D,aAAa,GAAG,OAAO,CAAA;IACzB,CAAC,CAAA;IAED,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,SAAS;QACtB,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;QAC5C,uBAAuB,EAAE,QAAQ,CAAC,EAAE,CAClC,IAAA,yEAAuC,EAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC;QACjF,WAAW,EAAE;YACX,mFAAwC;YACxC,uEAAkC;YAClC,mFAAwC;SACzC;QACD,SAAS,EAAE;YACT,EAAE,OAAO,EAAE,yBAAiB,EAAE,QAAQ,EAAE,OAAO,EAAE;YACjD,EAAE,OAAO,EAAE,6BAAqB,EAAE,QAAQ,EAAE,oBAAoB,EAAE;YAClE,6BAAa;YACb,iCAAe;SAChB;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"OpenId4VcPlugin.js","sourceRoot":"","sources":["../../src/nestjs/OpenId4VcPlugin.ts"],"names":[],"mappings":";;AAgBA,0CAkCC;AA/CD,4DAAkE;AAElE,6DAAyD;AACzD,iEAA6D;AAC7D,oCAAiG;AAEjG,4FAAgG;AAChG,0DAAsD;AAEtD,yGAAqG;AACrG,6FAAyF;AACzF,yGAAqG;AAErG,SAAgB,eAAe,CAAC,OAA+B;IAC7D,IAAI,aAAiD,CAAA;IACrD,MAAM,SAAS,GAAG,IAAA,+BAAc,EAAC,OAAO,EAAE,GAAG,EAAE;QAC7C,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAClF,OAAO,aAAa,CAAA;IACtB,CAAC,CAAC,CAAA;IACF,MAAM,oBAAoB,GAAwB,OAAO,CAAC,EAAE;QAC1D,aAAa,GAAG,OAAO,CAAA;IACzB,CAAC,CAAA;IACD,MAAM,eAAe,GAAqB,OAAO,CAAC,0BAA0B;QAC1E,CAAC,CAAC,IAAA,qCAAsB,EAAC,EAAE,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,EAAE,CAAC;QAC5F,CAAC,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,WAAW,CAAC,CAAA;QACrE,CAAC,CAAA;IAEL,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,SAAS;QACtB,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;QAC5C,uBAAuB,EAAE,QAAQ,CAAC,EAAE,CAClC,IAAA,yEAAuC,EAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC;QACjF,WAAW,EAAE;YACX,mFAAwC;YACxC,uEAAkC;YAClC,mFAAwC;SACzC;QACD,SAAS,EAAE;YACT,EAAE,OAAO,EAAE,yBAAiB,EAAE,QAAQ,EAAE,OAAO,EAAE;YACjD,EAAE,OAAO,EAAE,6BAAqB,EAAE,QAAQ,EAAE,oBAAoB,EAAE;YAClE,EAAE,OAAO,EAAE,oCAA4B,EAAE,QAAQ,EAAE,eAAe,EAAE;YACpE,6BAAa;YACb,iCAAe;SAChB;KACF,CAAA;AACH,CAAC"}
@@ -23,7 +23,7 @@ class OpenId4VcCreatePresentationRequestBodyDto {
23
23
  exports.OpenId4VcCreatePresentationRequestBodyDto = OpenId4VcCreatePresentationRequestBodyDto;
24
24
  __decorate([
25
25
  (0, swagger_1.ApiProperty)({
26
- description: 'Credential type the request asks for. The agent derives no credential type yet, so every identifier answers UNKNOWN_ID.',
26
+ description: 'Credential type the request asks for: the jsonSchemaCredentialId of a VTJSC whose CredentialSchema the agent holds an active VERIFIER Participant for.',
27
27
  example: 'employee',
28
28
  }),
29
29
  (0, class_validator_1.IsString)(),
@@ -104,7 +104,11 @@ class OpenId4VcTrustEvidenceDto {
104
104
  }
105
105
  exports.OpenId4VcTrustEvidenceDto = OpenId4VcTrustEvidenceDto;
106
106
  __decorate([
107
- (0, swagger_1.ApiProperty)({ type: String, nullable: true, description: 'DID of the issuer, read from the certificate' }),
107
+ (0, swagger_1.ApiProperty)({
108
+ type: String,
109
+ nullable: true,
110
+ description: 'DID of the issuer: iss when it is a DID, else the URI SAN of the leaf certificate',
111
+ }),
108
112
  __metadata("design:type", Object)
109
113
  ], OpenId4VcTrustEvidenceDto.prototype, "did", void 0);
110
114
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"presentation.dto.js","sourceRoot":"","sources":["../../../src/nestjs/dto/presentation.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,mDAAuE;AACvE,6CAAkE;AAClE,4DAAuE;AACvE,qDAAsG;AAEtG,4EAA8E;AAC9E,oEAA0E;AAC1E,6CAA8E;AAE9E,kEAAkE;AAClE,MAAa,yCAAyC;CAwCrD;AAxCD,8FAwCC;AAhCC;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EACT,yHAAyH;QAC3H,OAAO,EAAE,UAAU;KACpB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;yFACkB;AAa/B;IAXC,IAAA,6BAAmB,EAAC;QACnB,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,WAAW,EACT,gHAAgH;QAClH,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;KAC1B,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,IAAA,4BAAU,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,6BAAW,GAAE;;kFACY;AAS1B;IAPC,IAAA,6BAAmB,EAAC;QACnB,IAAI,EAAE,+CAAyB;QAC/B,WAAW,EACT,qHAAqH;KACxH,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,sBAAI,EAAC,+CAAyB,CAAC;;gFACM;AAStC;IAPC,IAAA,6BAAmB,EAAC;QACnB,IAAI,EAAE,2CAAyB;QAC/B,WAAW,EACT,gHAAgH;KACnH,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,sBAAI,EAAC,2CAAyB,CAAC;;gFACM;AAGxC,8DAA8D;AAC9D,MAAa,uCAAuC;CAanD;AAbD,0FAaC;AARC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,4DAA4D;QACzE,OAAO,EAAE,sCAAsC;KAChD,CAAC;;gFACsB;AAOxB;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,8EAA8E;QAC3F,OAAO,EACL,gHAAgH;KACnH,CAAC;;oEACU;AAGd,mDAAmD;AACnD,MAAa,kCAAmC,SAAQ,iCAAkB;CAczE;AAdD,gFAcC;AATC;IAJC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACtF,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;kFACkB;AAQ/B;IANC,IAAA,6BAAmB,EAAC;QACnB,IAAI,EAAE,6CAAiC;QACvC,WAAW,EAAE,sCAAsC;KACpD,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,6CAAiC,CAAC;;iEACD;AAG3C,wFAAwF;AACxF,MAAa,yBAAyB;CA0BrC;AA1BD,8DA0BC;AAxBC;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,8CAA8C,EAAE,CAAC;;sDACxF;AAOnB;IALC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,6BAAqB;QAC3B,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,oCAAoC;KAClD,CAAC;;8DACoC;AAGtC;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;;yEACvD;AAOtC;IALC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,oEAAoE;KAClF,CAAC;;6DACyB;AAG3B;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;;0DAC7D;AAGlB;IADC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;;uDACtE;AAGf,8FAA8F;AAC9F,MAAa,wBAAwB;CAMpC;AAND,4DAMC;AAJC;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,2BAAmB,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;;yDACnD;AAG1B;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;8BAC/E,yBAAyB;0DAAA;AAGtC,4FAA4F;AAC5F,MAAa,+BAA+B;CAc3C;AAdD,0EAcC;AATC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,sCAAsC;KAChD,CAAC;;4DACU;AAQZ;IANC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,IAAI;QAC1B,WAAW,EAAE,iCAAiC;QAC9C,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;KAClC,CAAC;;wEACuC;AAG3C,mFAAmF;AACnF,MAAa,8BAA8B;CAgD1C;AAhDD,wEAgDC;AA3CC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,sCAAsC;KAChD,CAAC;;uEACsB;AAGxB;IADC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;;8EAC7D;AAO/B;IALC,IAAA,6BAAmB,EAAC;QACnB,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;KAC1B,CAAC;;uEACwB;AAG1B;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,6CAAiC,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC;;6DAClE;AAGzC;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;8BAC1F,IAAI;iEAAA;AAGhB;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC;8BACrF,IAAI;iEAAA;AAGhB;IADC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,oEAAoE,EAAE,CAAC;;oEACtF;AAKrB;IAHC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,4FAA4F;KAC1G,CAAC;;6EAC6B;AAG/B;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,8CAA8C,EAAE,CAAC;;gEAC3D;AAMlB;IAJC,IAAA,6BAAmB,EAAC;QACnB,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,yDAAyD;KACvE,CAAC;8BACM,wBAAwB;6DAAA;AAMhC;IAJC,IAAA,6BAAmB,EAAC;QACnB,IAAI,EAAE,+BAA+B;QACrC,WAAW,EAAE,yCAAyC;KACvD,CAAC;8BACW,+BAA+B;kEAAA;AAGjC,QAAA,kCAAkC,GAAG,IAAA,sBAAO,EAAC,8BAA8B,CAAC,CAAA"}
1
+ {"version":3,"file":"presentation.dto.js","sourceRoot":"","sources":["../../../src/nestjs/dto/presentation.dto.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,6 @@ const core_1 = require("@credo-ts/core");
21
21
  const openid4vc_1 = require("@credo-ts/openid4vc");
22
22
  const express_1 = __importDefault(require("express"));
23
23
  const config_1 = require("../config");
24
- const presentationVerification_1 = require("../services/presentationVerification");
25
24
  const CertificateTrust_1 = require("../trust/CertificateTrust");
26
25
  const isRecord_1 = require("../utils/isRecord");
27
26
  const ISSUER_BODY_LIMIT = '1mb';
@@ -60,13 +59,7 @@ function setupOpenId4Vc(options, getIssuerService) {
60
59
  modules: {
61
60
  openId4Vc: new openid4vc_1.OpenId4VcModule(moduleOptions),
62
61
  x509: new core_1.X509Module({
63
- getTrustedCertificatesForVerification: (_agentContext, { verification }) => {
64
- // Credo accepts an SD-JWT VC without `exp`, and this callback is the only hook inside its
65
- // presentation verification.
66
- if (verification.type === 'credential')
67
- (0, presentationVerification_1.assertCredentialExpires)(verification.credential);
68
- return (0, CertificateTrust_1.trustedCertificatesForVerification)(options, verification.type);
69
- },
62
+ getTrustedCertificatesForVerification: (_agentContext, { verification }) => (0, CertificateTrust_1.trustedCertificatesForVerification)(options, verification.type),
70
63
  }),
71
64
  },
72
65
  publicMiddleware: app,
@@ -1 +1 @@
1
- {"version":3,"file":"setupOpenId4Vc.js","sourceRoot":"","sources":["../../src/sdk/setupOpenId4Vc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setupOpenId4Vc.js","sourceRoot":"","sources":["../../src/sdk/setupOpenId4Vc.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { OpenId4VcAgent, OpenId4VcPluginOptions } from '../types';
2
2
  import type { OnModuleInit } from '@nestjs/common';
3
+ import type { DidTrustResolver } from '@verana-labs/vs-agent-sdk';
3
4
  import { OpenId4VcVerificationSessionState } from '@credo-ts/openid4vc';
4
5
  import { type SigningCertificateInfo } from './CertificateService';
5
6
  import { type OpenId4VcQueryLanguage } from './presentationRequest';
@@ -32,9 +33,10 @@ export type OpenId4VcVerificationSessionSummary = PresentationDecision & {
32
33
  export declare class VerifierService implements OnModuleInit {
33
34
  private readonly agent;
34
35
  private readonly options;
36
+ private readonly resolveDidTrust;
35
37
  private initialization?;
36
38
  private signingCertificate?;
37
- constructor(agent: OpenId4VcAgent, options: OpenId4VcPluginOptions);
39
+ constructor(agent: OpenId4VcAgent, options: OpenId4VcPluginOptions, resolveDidTrust: DidTrustResolver);
38
40
  onModuleInit(): Promise<void>;
39
41
  ensureInitialized(): Promise<void>;
40
42
  createRequest({ jsonSchemaCredentialId, requestedClaims, queryLanguage, requestSigner, }: OpenId4VcCreatePresentationRequestOptions): Promise<OpenId4VcVerificationRequest>;
@@ -43,6 +45,8 @@ export declare class VerifierService implements OnModuleInit {
43
45
  listVerificationSessions(filters?: OpenId4VcVerificationSessionFilters): Promise<OpenId4VcVerificationSessionSummary[]>;
44
46
  deleteVerificationSession(id: string): Promise<void>;
45
47
  private findOwnedSession;
48
+ private decide;
49
+ private presentedCredential;
46
50
  private toSummary;
47
51
  private storedRequest;
48
52
  private storedDecision;
@@ -19,36 +19,28 @@ const openid4vc_1 = require("@credo-ts/openid4vc");
19
19
  const vs_agent_sdk_1 = require("@verana-labs/vs-agent-sdk");
20
20
  const config_1 = require("../config");
21
21
  const keyBinding_1 = require("../trust/keyBinding");
22
+ const presentedIssuer_1 = require("../trust/presentedIssuer");
23
+ const trustDecision_1 = require("../trust/trustDecision");
22
24
  const types_1 = require("../types");
23
25
  const serviceDisplay_1 = require("../utils/serviceDisplay");
24
26
  const CertificateService_1 = require("./CertificateService");
27
+ const credentialConfigurationBuilder_1 = require("./credentialConfigurationBuilder");
25
28
  const presentationRequest_1 = require("./presentationRequest");
26
29
  exports.OPENID4VC_REQUEST_SIGNERS = ['x5c', 'did'];
27
30
  const BAD_REQUEST = 400;
28
31
  const NOT_FOUND = 404;
29
32
  const CONFLICT = 409;
30
33
  const JSON_SCHEMA_CREDENTIAL_ID_TAG = 'jsonSchemaCredentialId';
34
+ const CREDENTIAL_SCHEMA_ID_TAG = 'credentialSchemaId';
31
35
  const REQUESTED_CLAIMS_TAG = 'requestedClaims';
32
36
  const OUTCOME_METADATA_KEY = 'openid4vc/verificationOutcome';
33
- const UNDECIDED_TRUST_DECISION = {
34
- cryptographicVerified: true,
35
- accepted: false,
36
- trust: {
37
- verdict: 'RESOLVER_UNAVAILABLE',
38
- evidence: {
39
- did: null,
40
- trustStatus: null,
41
- jsonSchemaCredentialId: null,
42
- authorized: null,
43
- queries: [],
44
- note: 'the agent does not decide OpenID4VP trust yet',
45
- },
46
- },
47
- };
37
+ const UNVERIFIED = { cryptographicVerified: false, accepted: false };
38
+ const UNDECIDED = { cryptographicVerified: true, accepted: false };
48
39
  let VerifierService = class VerifierService {
49
- constructor(agent, options) {
40
+ constructor(agent, options, resolveDidTrust) {
50
41
  this.agent = agent;
51
42
  this.options = options;
43
+ this.resolveDidTrust = resolveDidTrust;
52
44
  }
53
45
  async onModuleInit() {
54
46
  await this.ensureInitialized();
@@ -63,16 +55,31 @@ let VerifierService = class VerifierService {
63
55
  }
64
56
  async createRequest({ jsonSchemaCredentialId, requestedClaims, queryLanguage = 'dcql', requestSigner, }) {
65
57
  await this.ensureInitialized();
66
- const configuration = (0, config_1.findCredentialConfiguration)(this.options, jsonSchemaCredentialId);
67
- if (!configuration) {
68
- throw new vs_agent_sdk_1.AdminApiError(vs_agent_sdk_1.AdminApiErrorCode.UnknownId, NOT_FOUND, `no credential type with id "${jsonSchemaCredentialId}"`);
58
+ let configuration;
59
+ try {
60
+ configuration = await (0, credentialConfigurationBuilder_1.resolveCredentialType)(this.agent, jsonSchemaCredentialId);
61
+ }
62
+ catch (error) {
63
+ throw (0, vs_agent_sdk_1.trustDecisionError)(error, 'agent', vs_agent_sdk_1.AdminApiErrorCode.UnknownId);
69
64
  }
70
65
  const claims = requestedClaims !== null && requestedClaims !== void 0 ? requestedClaims : configuration.claims;
71
66
  assertRequestedClaims(claims, configuration.claims);
67
+ // [VSA-VTI-FLOW-VERIFY-AC-5] for OpenID4VP: the agent asks for a type only where the Ecosystem
68
+ // accredits it as a verifier
69
+ try {
70
+ await this.agent.anonCredsTrust.assertOwnAuthorization({
71
+ role: vs_agent_sdk_1.ParticipantRole.Verifier,
72
+ credentialSchemaId: configuration.credentialSchemaId,
73
+ });
74
+ }
75
+ catch (error) {
76
+ throw (0, vs_agent_sdk_1.trustDecisionError)(error, 'agent');
77
+ }
72
78
  const { authorizationRequest, verificationSession } = await this.verifierApi().createAuthorizationRequest(Object.assign({ verifierId: config_1.VERIFIER_CAPABILITY_ID, requestSigner: await this.buildRequestSigner(requestSigner),
73
79
  // JARM (direct_post.jwt) is DCQL-only: Presentation Exchange wallets can't build the JWE it needs.
74
80
  responseMode: queryLanguage === 'presentation_exchange' ? 'direct_post' : 'direct_post.jwt' }, (0, presentationRequest_1.presentationQueryFor)(configuration, claims, queryLanguage)));
75
81
  verificationSession.setTag(JSON_SCHEMA_CREDENTIAL_ID_TAG, jsonSchemaCredentialId);
82
+ verificationSession.setTag(CREDENTIAL_SCHEMA_ID_TAG, String(configuration.credentialSchemaId));
76
83
  verificationSession.setTag(REQUESTED_CLAIMS_TAG, claims);
77
84
  await this.sessionRepository().update(this.agent.context, verificationSession);
78
85
  return {
@@ -85,11 +92,11 @@ let VerifierService = class VerifierService {
85
92
  return (0, CertificateService_1.signingCertificateInfo)('verifier', this.signingCertificateHandle());
86
93
  }
87
94
  async getVerificationSession(id) {
88
- var _a;
89
95
  await this.ensureInitialized();
90
96
  const session = await this.findOwnedSession(id);
91
- return this.toSummary(session, (_a = this.storedDecision(session)) !== null && _a !== void 0 ? _a : UNDECIDED_TRUST_DECISION);
97
+ return this.toSummary(session, await this.decide(session));
92
98
  }
99
+ // [VSA-ADM-OID-PR-LIST]: a list reports the stored verdict and never decides
93
100
  async listVerificationSessions(filters = {}) {
94
101
  await this.ensureInitialized();
95
102
  const sessions = await this.verifierApi().findVerificationSessionsByQuery({
@@ -97,10 +104,7 @@ let VerifierService = class VerifierService {
97
104
  state: filters.state,
98
105
  [JSON_SCHEMA_CREDENTIAL_ID_TAG]: filters.jsonSchemaCredentialId,
99
106
  });
100
- return sessions.map(session => {
101
- var _a;
102
- return this.toSummary(session, (_a = this.storedDecision(session)) !== null && _a !== void 0 ? _a : { cryptographicVerified: true, accepted: false });
103
- });
107
+ return sessions.map(session => { var _a; return this.toSummary(session, (_a = this.storedDecision(session)) !== null && _a !== void 0 ? _a : UNDECIDED); });
104
108
  }
105
109
  async deleteVerificationSession(id) {
106
110
  await this.ensureInitialized();
@@ -123,21 +127,55 @@ let VerifierService = class VerifierService {
123
127
  }
124
128
  return session;
125
129
  }
130
+ // [VSA-ADM-OID-PR-GET]: the verdict is computed once, on the first read of a verified session, and
131
+ // stored with it; RESOLVER_UNAVAILABLE is never stored, so the next read retries the resolver
132
+ async decide(session) {
133
+ var _a;
134
+ const stored = this.storedDecision(session);
135
+ if (stored)
136
+ return stored;
137
+ const decision = await (0, trustDecision_1.decidePresentationTrust)(await this.presentedCredential(session), this.storedRequest(session), {
138
+ agent: this.agent,
139
+ readTypeMetadata: vct => (0, vs_agent_sdk_1.fetchBoundedBytes)(vct),
140
+ resolveDidTrust: this.resolveDidTrust,
141
+ assertAuthorized: options => this.agent.anonCredsTrust.assertAuthorized(options),
142
+ });
143
+ if (((_a = decision.trust) === null || _a === void 0 ? void 0 : _a.verdict) !== 'RESOLVER_UNAVAILABLE') {
144
+ session.metadata.set(OUTCOME_METADATA_KEY, decision);
145
+ await this.sessionRepository().update(this.agent.context, session);
146
+ }
147
+ return decision;
148
+ }
149
+ async presentedCredential(session) {
150
+ var _a, _b, _c, _d;
151
+ const verified = await this.verifierApi().getVerifiedAuthorizationResponse(session.id);
152
+ const presentations = [
153
+ ...Object.values((_b = (_a = verified.dcql) === null || _a === void 0 ? void 0 : _a.presentations) !== null && _b !== void 0 ? _b : {}).flat(),
154
+ ...((_d = (_c = verified.presentationExchange) === null || _c === void 0 ? void 0 : _c.presentations) !== null && _d !== void 0 ? _d : []),
155
+ ];
156
+ const credential = presentations.find((presentation) => presentation.claimFormat === core_1.ClaimFormat.SdJwtDc);
157
+ if (!credential)
158
+ throw new Error(`the verification session "${session.id}" carries no SD-JWT VC`);
159
+ return credential;
160
+ }
126
161
  toSummary(session, decision) {
127
162
  var _a;
128
- const { jsonSchemaCredentialId, requestedClaims } = this.storedRequest(session);
129
- return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ id: session.id }, (jsonSchemaCredentialId ? { jsonSchemaCredentialId } : {})), (requestedClaims ? { requestedClaims } : {})), { state: session.state, createdAt: session.createdAt, updatedAt: (_a = session.updatedAt) !== null && _a !== void 0 ? _a : session.createdAt }), (session.errorMessage ? { errorMessage: session.errorMessage } : {})), decision);
163
+ const jsonSchemaCredentialId = session.getTag(JSON_SCHEMA_CREDENTIAL_ID_TAG);
164
+ const requestedClaims = session.getTag(REQUESTED_CLAIMS_TAG);
165
+ return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ id: session.id }, (typeof jsonSchemaCredentialId === 'string' ? { jsonSchemaCredentialId } : {})), (Array.isArray(requestedClaims) ? { requestedClaims } : {})), { state: session.state, createdAt: session.createdAt, updatedAt: (_a = session.updatedAt) !== null && _a !== void 0 ? _a : session.createdAt }), (session.errorMessage ? { errorMessage: session.errorMessage } : {})), decision);
130
166
  }
131
167
  storedRequest(session) {
132
168
  const jsonSchemaCredentialId = session.getTag(JSON_SCHEMA_CREDENTIAL_ID_TAG);
133
- const requestedClaims = session.getTag(REQUESTED_CLAIMS_TAG);
134
- return Object.assign(Object.assign({}, (typeof jsonSchemaCredentialId === 'string' ? { jsonSchemaCredentialId } : {})), (Array.isArray(requestedClaims) ? { requestedClaims } : {}));
169
+ const credentialSchemaId = session.getTag(CREDENTIAL_SCHEMA_ID_TAG);
170
+ if (typeof jsonSchemaCredentialId !== 'string' || typeof credentialSchemaId !== 'string') {
171
+ throw new Error(`the verification session "${session.id}" carries no credential type`);
172
+ }
173
+ return { jsonSchemaCredentialId, credentialSchemaId: Number(credentialSchemaId) };
135
174
  }
136
175
  storedDecision(session) {
137
176
  var _a;
138
- if (session.state !== openid4vc_1.OpenId4VcVerificationSessionState.ResponseVerified) {
139
- return { cryptographicVerified: false, accepted: false };
140
- }
177
+ if (session.state !== openid4vc_1.OpenId4VcVerificationSessionState.ResponseVerified)
178
+ return UNVERIFIED;
141
179
  return (_a = session.metadata.get(OUTCOME_METADATA_KEY)) !== null && _a !== void 0 ? _a : undefined;
142
180
  }
143
181
  sessionRepository() {
@@ -161,6 +199,7 @@ let VerifierService = class VerifierService {
161
199
  if (binding !== 'bound') {
162
200
  throw new Error('OpenID4VC verifier certificate key is not bound to the agent DID authentication');
163
201
  }
202
+ this.agent.config.setTrustedIssuersForVerification(presentedIssuer_1.trustedIssuersForPresentation);
164
203
  await this.createOrUpdateVerifier();
165
204
  this.signingCertificate = signingCertificate;
166
205
  this.agent.config.logger.info(`[OpenID4VC] verifier signs with a ${signingCertificate.development ? 'development' : 'configured'} certificate${publishedMethodId ? `, published as ${publishedMethodId}` : ''}`);
@@ -219,7 +258,8 @@ exports.VerifierService = VerifierService = __decorate([
219
258
  (0, common_1.Injectable)(),
220
259
  __param(0, (0, common_1.Inject)('VSAGENT')),
221
260
  __param(1, (0, common_1.Inject)(types_1.OPENID4VC_OPTIONS)),
222
- __metadata("design:paramtypes", [Object, Object])
261
+ __param(2, (0, common_1.Inject)(types_1.OPENID4VC_DID_TRUST_RESOLVER)),
262
+ __metadata("design:paramtypes", [Object, Object, Function])
223
263
  ], VerifierService);
224
264
  function assertRequestedClaims(requestedClaims, configuredClaims) {
225
265
  if (new Set(requestedClaims).size !== requestedClaims.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"VerifierService.js","sourceRoot":"","sources":["../../src/services/VerifierService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VerifierService.js","sourceRoot":"","sources":["../../src/services/VerifierService.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,10 @@
1
1
  import type { OpenId4VcCredentialConfiguration } from '../types';
2
2
  import type { VsAgent } from '@verana-labs/vs-agent-sdk';
3
3
  export declare function buildCredentialConfigurations(agent: VsAgent): Promise<OpenId4VcCredentialConfiguration[] | undefined>;
4
+ /**
5
+ * The credential type of one VTJSC, reached from its `jsonSchemaCredentialId` through the VTJSC
6
+ * link: the same configuration the issuers of the type derive, for a verifier that asks for it.
7
+ * Throws the `AnonCredsTrustError` of the link when the VTJSC cannot be read or binds to no
8
+ * `CredentialSchema` of this chain.
9
+ */
10
+ export declare function resolveCredentialType(agent: VsAgent, jsonSchemaCredentialId: string): Promise<OpenId4VcCredentialConfiguration>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildCredentialConfigurations = buildCredentialConfigurations;
4
+ exports.resolveCredentialType = resolveCredentialType;
4
5
  const config_1 = require("../config");
5
6
  const vs_agent_sdk_1 = require("@verana-labs/vs-agent-sdk");
6
7
  // `undefined` means the agent cannot derive the set at all, and the caller keeps the last known one.
@@ -31,6 +32,22 @@ async function buildCredentialConfigurations(agent) {
31
32
  }
32
33
  return configurations;
33
34
  }
35
+ /**
36
+ * The credential type of one VTJSC, reached from its `jsonSchemaCredentialId` through the VTJSC
37
+ * link: the same configuration the issuers of the type derive, for a verifier that asks for it.
38
+ * Throws the `AnonCredsTrustError` of the link when the VTJSC cannot be read or binds to no
39
+ * `CredentialSchema` of this chain.
40
+ */
41
+ async function resolveCredentialType(agent, jsonSchemaCredentialId) {
42
+ var _a;
43
+ const { credentialSchemaId } = await agent.anonCredsTrust.resolveCredentialSchemaLink(jsonSchemaCredentialId);
44
+ // the link names a schema of this chain, so the agent runs on one
45
+ const chainId = (_a = agent.veranaChain) === null || _a === void 0 ? void 0 : _a.getChainId;
46
+ if (!chainId) {
47
+ throw new vs_agent_sdk_1.AnonCredsTrustError(vs_agent_sdk_1.AnonCredsTrustErrorReason.Unavailable, `the agent runs on no chain, so it cannot read the CredentialSchema ${credentialSchemaId}`);
48
+ }
49
+ return await buildCredentialConfiguration(agent, agent.indexer, credentialSchemaId, chainId);
50
+ }
34
51
  async function buildCredentialConfiguration(agent, reader, credentialSchemaId, chainId) {
35
52
  const schema = await reader.getCredentialSchema(credentialSchemaId);
36
53
  const ecosystem = await reader.getEcosystem(schema.ecosystem_id);
@@ -1 +1 @@
1
- {"version":3,"file":"credentialConfigurationBuilder.js","sourceRoot":"","sources":["../../src/services/credentialConfigurationBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credentialConfigurationBuilder.js","sourceRoot":"","sources":["../../src/services/credentialConfigurationBuilder.ts"],"names":[],"mappings":";;AAsBA,sEAmCC;AAQD,sDAeC;AAxED,sCAA+C;AAE/C,4DASkC;AAElC,qGAAqG;AAC9F,KAAK,UAAU,6BAA6B,CACjD,KAAc;;IAEd,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;IACrB,MAAM,OAAO,GAAG,MAAA,KAAK,CAAC,WAAW,0CAAE,UAAU,CAAA;IAC7C,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAEtC,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACxD,GAAG;QACH,IAAI,EAAE,8BAAe,CAAC,MAAM;QAC5B,gBAAgB,EAAE,+BAAgB,CAAC,MAAM;KAC1C,CAAC,CAAA;IAEF,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC3G,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,cAAc,GAAuC,EAAE,CAAA;IAC7D,KAAK,MAAM,kBAAkB,IAAI,mBAAmB,EAAE,CAAC;QACrD,IAAI,CAAC;YACH,cAAc,CAAC,IAAI,CAAC,MAAM,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAA;QACrG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACtB,oCAAoC,kBAAkB,yCACpD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACtB,6BAA6B,GAAG,6DAA6D,CAC9F,CAAA;IACH,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,qBAAqB,CACzC,KAAc,EACd,sBAA8B;;IAE9B,MAAM,EAAE,kBAAkB,EAAE,GAC1B,MAAM,KAAK,CAAC,cAAc,CAAC,2BAA2B,CAAC,sBAAsB,CAAC,CAAA;IAChF,kEAAkE;IAClE,MAAM,OAAO,GAAG,MAAA,KAAK,CAAC,WAAW,0CAAE,UAAU,CAAA;IAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,kCAAmB,CAC3B,wCAAyB,CAAC,WAAW,EACrC,sEAAsE,kBAAkB,EAAE,CAC3F,CAAA;IACH,CAAC;IACD,OAAO,MAAM,4BAA4B,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAA;AAC9F,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,KAAc,EACd,MAA2B,EAC3B,kBAA0B,EAC1B,OAAe;IAEf,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAA;IACnE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAChE,MAAM,OAAO,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,EAAC,CAAC,CAAC,IAAA,oCAAqB,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,CAAC,YAAY,oCAAoC,CAAC,CAAA;IAC3F,CAAC;IAED,MAAM,sBAAsB,GAAG,MAAM,IAAA,4CAA6B,EAChE,KAAK,EACL,MAAM,EACN,kBAAkB,EAClB,OAAO,CACR,CAAA;IACD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAA,6BAAc,EAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IAClD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACtB,oCAAoC,kBAAkB,aAAa,QAAQ;aACxE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC;aAC1B,IAAI,CAAC,IAAI,CAAC,2EAA2E,CACzF,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;IAEjE,OAAO;QACL,EAAE,EAAE,sBAAsB;QAC1B,MAAM,EAAE,WAAW;QACnB,GAAG,EAAE,IAAA,8BAAe,EAAC,OAAO,EAAE,kBAAkB,CAAC;QACjD,IAAI,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,cAAc,OAAO,OAAO,kBAAkB,EAAE;QAC/D,OAAO,EAAE,sBAAsB;QAC/B,kBAAkB;QAClB,UAAU,EAAE,MAAM,CAAC,WAAW;QAC9B,MAAM;QACN,eAAe,EAAE,MAAM;KACxB,CAAA;AACH,CAAC;AAED,iGAAiG;AACjG,4DAA4D;AAC5D,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK,KAAK,IAAI,IAAI,IAAA,4BAAmB,EAAC,KAAK,CAAC,CAAA;AACrD,CAAC;AAED,SAAS,oBAAoB,CAAC,MAA2B;IACvD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwC,CAAA;IAC/D,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6C,CAAA;IAEvE,MAAM,IAAI,GAAG,CAAI,KAA8B,EAAE,EAAmB,EAAE,IAAsB,EAAE,EAAE;;QAC9F,MAAM,OAAO,GAAG,MAAA,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,mCAAI,IAAI,EAAE,CAAA;QAC/C,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;QAC9B,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IAED,OAAO;QACL,mBAAmB,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAClF,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;KACxE,CAAA;AACH,CAAC"}
@@ -4,6 +4,11 @@ exports.OPENID4VC_QUERY_LANGUAGES = void 0;
4
4
  exports.presentationQueryFor = presentationQueryFor;
5
5
  const PRESENTATION_ALGORITHMS = ['ES256'];
6
6
  exports.OPENID4VC_QUERY_LANGUAGES = ['dcql', 'presentation_exchange'];
7
+ // DCQL restricts a credential query id to `[a-zA-Z0-9_-]`, which the `jsonSchemaCredentialId` URL is not;
8
+ // the schema number names the one credential of the request.
9
+ function requestedCredentialId(configuration) {
10
+ return `cs-${configuration.credentialSchemaId}`;
11
+ }
7
12
  function presentationQueryFor(configuration, requestedClaims, queryLanguage) {
8
13
  if (queryLanguage === 'presentation_exchange') {
9
14
  return {
@@ -18,7 +23,7 @@ function presentationQueryFor(configuration, requestedClaims, queryLanguage) {
18
23
  query: {
19
24
  credentials: [
20
25
  {
21
- id: configuration.id,
26
+ id: requestedCredentialId(configuration),
22
27
  format: 'dc+sd-jwt',
23
28
  meta: { vct_values: [configuration.vct] },
24
29
  claims: requestedClaims.map(name => ({ path: [name] })),
@@ -33,7 +38,7 @@ function escapeForFilterPattern(value) {
33
38
  }
34
39
  function presentationDefinitionFor(configuration, requestedClaims) {
35
40
  return {
36
- id: `${configuration.id}-presentation-exchange`,
41
+ id: `${requestedCredentialId(configuration)}-presentation-exchange`,
37
42
  format: {
38
43
  // vc+sd-jwt: Presentation Exchange has no dc+sd-jwt format key.
39
44
  'vc+sd-jwt': {
@@ -43,7 +48,7 @@ function presentationDefinitionFor(configuration, requestedClaims) {
43
48
  },
44
49
  input_descriptors: [
45
50
  {
46
- id: configuration.id,
51
+ id: requestedCredentialId(configuration),
47
52
  constraints: {
48
53
  // 'preferred': holders that can't enforce 'required' refuse it; the verifier re-checks the claims.
49
54
  limit_disclosure: 'preferred',
@@ -1 +1 @@
1
- {"version":3,"file":"presentationRequest.js","sourceRoot":"","sources":["../../src/services/presentationRequest.ts"],"names":[],"mappings":";;;AAQA,oDA2BC;AAjCD,MAAM,uBAAuB,GAAG,CAAC,OAAO,CAAU,CAAA;AAErC,QAAA,yBAAyB,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAU,CAAA;AAInF,SAAgB,oBAAoB,CAClC,aAA+C,EAC/C,eAAyB,EACzB,aAAqC;IAErC,IAAI,aAAa,KAAK,uBAAuB,EAAE,CAAC;QAC9C,OAAO;YACL,kGAAkG;YAClG,aAAa;YACb,OAAO,EAAE,YAAqB;YAC9B,oBAAoB,EAAE,EAAE,UAAU,EAAE,yBAAyB,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE;SAChG,CAAA;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,EAAE;gBACL,WAAW,EAAE;oBACX;wBACE,EAAE,EAAE,aAAa,CAAC,EAAE;wBACpB,MAAM,EAAE,WAAoB;wBAC5B,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;wBACzC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBACxD;iBACF;aACF;SACF;KACF,CAAA;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;AACrD,CAAC;AAED,SAAS,yBAAyB,CAChC,aAA+C,EAC/C,eAAyB;IAEzB,OAAO;QACL,EAAE,EAAE,GAAG,aAAa,CAAC,EAAE,wBAAwB;QAC/C,MAAM,EAAE;YACN,gEAAgE;YAChE,WAAW,EAAE;gBACX,mBAAmB,EAAE,CAAC,GAAG,uBAAuB,CAAC;gBACjD,mBAAmB,EAAE,CAAC,GAAG,uBAAuB,CAAC;aAClD;SACF;QACD,iBAAiB,EAAE;YACjB;gBACE,EAAE,EAAE,aAAa,CAAC,EAAE;gBACpB,WAAW,EAAE;oBACX,mGAAmG;oBACnG,gBAAgB,EAAE,WAAoB;oBACtC,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,CAAC,OAAO,CAAC;4BACf,gGAAgG;4BAChG,MAAM,EAAE;gCACN,IAAI,EAAE,QAAiB;gCACvB,KAAK,EAAE,aAAa,CAAC,GAAG;gCACxB,OAAO,EAAE,sBAAsB,CAAC,aAAa,CAAC,GAAG,CAAC;6BACnD;yBACF;wBACD,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;qBAC1D;iBACF;aACF;SACF;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"presentationRequest.js","sourceRoot":"","sources":["../../src/services/presentationRequest.ts"],"names":[],"mappings":";;;AAcA,oDA2BC;AAvCD,MAAM,uBAAuB,GAAG,CAAC,OAAO,CAAU,CAAA;AAErC,QAAA,yBAAyB,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAU,CAAA;AAInF,0GAA0G;AAC1G,6DAA6D;AAC7D,SAAS,qBAAqB,CAAC,aAA+C;IAC5E,OAAO,MAAM,aAAa,CAAC,kBAAkB,EAAE,CAAA;AACjD,CAAC;AAED,SAAgB,oBAAoB,CAClC,aAA+C,EAC/C,eAAyB,EACzB,aAAqC;IAErC,IAAI,aAAa,KAAK,uBAAuB,EAAE,CAAC;QAC9C,OAAO;YACL,kGAAkG;YAClG,aAAa;YACb,OAAO,EAAE,YAAqB;YAC9B,oBAAoB,EAAE,EAAE,UAAU,EAAE,yBAAyB,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE;SAChG,CAAA;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE;YACJ,KAAK,EAAE;gBACL,WAAW,EAAE;oBACX;wBACE,EAAE,EAAE,qBAAqB,CAAC,aAAa,CAAC;wBACxC,MAAM,EAAE,WAAoB;wBAC5B,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;wBACzC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBACxD;iBACF;aACF;SACF;KACF,CAAA;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;AACrD,CAAC;AAED,SAAS,yBAAyB,CAChC,aAA+C,EAC/C,eAAyB;IAEzB,OAAO;QACL,EAAE,EAAE,GAAG,qBAAqB,CAAC,aAAa,CAAC,wBAAwB;QACnE,MAAM,EAAE;YACN,gEAAgE;YAChE,WAAW,EAAE;gBACX,mBAAmB,EAAE,CAAC,GAAG,uBAAuB,CAAC;gBACjD,mBAAmB,EAAE,CAAC,GAAG,uBAAuB,CAAC;aAClD;SACF;QACD,iBAAiB,EAAE;YACjB;gBACE,EAAE,EAAE,qBAAqB,CAAC,aAAa,CAAC;gBACxC,WAAW,EAAE;oBACX,mGAAmG;oBACnG,gBAAgB,EAAE,WAAoB;oBACtC,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,CAAC,OAAO,CAAC;4BACf,gGAAgG;4BAChG,MAAM,EAAE;gCACN,IAAI,EAAE,QAAiB;gCACvB,KAAK,EAAE,aAAa,CAAC,GAAG;gCACxB,OAAO,EAAE,sBAAsB,CAAC,aAAa,CAAC,GAAG,CAAC;6BACnD;yBACF;wBACD,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;qBAC1D;iBACF;aACF;SACF;KACF,CAAA;AACH,CAAC"}
@@ -1,7 +1,15 @@
1
1
  import type { KeyBindingResult } from './types';
2
- import type { BaseAgent, DidPurpose } from '@credo-ts/core';
2
+ import type { BaseAgent, DidDocument, DidPurpose } from '@credo-ts/core';
3
+ import { Kms } from '@credo-ts/core';
3
4
  type BindingPurpose = Extract<DidPurpose, 'assertionMethod' | 'authentication'>;
4
5
  export type DidResolverAgent = Pick<BaseAgent, 'dids'>;
5
6
  export declare function verifyKeyBoundToDid(agent: DidResolverAgent, did: string | null, certificatePublicJwk: unknown, purposes: BindingPurpose[]): Promise<KeyBindingResult>;
6
7
  export declare function findBoundVerificationMethodId(agent: DidResolverAgent, did: string | null, certificatePublicJwk: unknown, purposes: BindingPurpose[]): Promise<string | null>;
8
+ /** The id of the verification method under one of the purposes that carries the key, if any. */
9
+ export declare function boundVerificationMethod(didDocument: DidDocument, key: Kms.PublicJwk, purposes: BindingPurpose[]): string | undefined;
10
+ /**
11
+ * Resolves a did:web or did:webvh, fresh, within 5 seconds, and only when the document carries the
12
+ * requested DID as its id ([VSA-VTI-FLOW-VERIFY-OID] step 3). Null when any of that fails.
13
+ */
14
+ export declare function resolveDidDocument(agent: DidResolverAgent, did: string): Promise<DidDocument | null>;
7
15
  export {};
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.verifyKeyBoundToDid = verifyKeyBoundToDid;
4
4
  exports.findBoundVerificationMethodId = findBoundVerificationMethodId;
5
+ exports.boundVerificationMethod = boundVerificationMethod;
6
+ exports.resolveDidDocument = resolveDidDocument;
5
7
  const core_1 = require("@credo-ts/core");
6
8
  const vs_agent_sdk_1 = require("@verana-labs/vs-agent-sdk");
7
9
  const DID_RESOLUTION_TIMEOUT_MS = 5000;
@@ -26,16 +28,24 @@ async function lookupBoundVerificationMethod(agent, did, certificatePublicJwk, p
26
28
  const didDocument = await resolveDidDocument(agent, did);
27
29
  if (!didDocument)
28
30
  return { result: 'unresolvable' };
31
+ const verificationMethodId = boundVerificationMethod(didDocument, certificateKey, purposes);
32
+ return verificationMethodId ? { result: 'bound', verificationMethodId } : { result: 'unbound' };
33
+ }
34
+ /** The id of the verification method under one of the purposes that carries the key, if any. */
35
+ function boundVerificationMethod(didDocument, key, purposes) {
29
36
  for (const verificationMethod of verificationMethodsForPurposes(didDocument, purposes)) {
30
37
  try {
31
- if (certificateKey.equals((0, core_1.getPublicJwkFromVerificationMethod)(verificationMethod))) {
32
- return { result: 'bound', verificationMethodId: verificationMethod.id };
33
- }
38
+ if (key.equals((0, core_1.getPublicJwkFromVerificationMethod)(verificationMethod)))
39
+ return verificationMethod.id;
34
40
  }
35
- catch (_b) { }
41
+ catch (_a) { }
36
42
  }
37
- return { result: 'unbound' };
43
+ return undefined;
38
44
  }
45
+ /**
46
+ * Resolves a did:web or did:webvh, fresh, within 5 seconds, and only when the document carries the
47
+ * requested DID as its id ([VSA-VTI-FLOW-VERIFY-OID] step 3). Null when any of that fails.
48
+ */
39
49
  async function resolveDidDocument(agent, did) {
40
50
  var _a;
41
51
  if (!isDidWebTarget(did))
@@ -1 +1 @@
1
- {"version":3,"file":"keyBinding.js","sourceRoot":"","sources":["../../src/trust/keyBinding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyBinding.js","sourceRoot":"","sources":["../../src/trust/keyBinding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { GetTrustedIssuersForVerification, VerificationSigner } from '@credo-ts/core';
2
+ import type { OpenId4VcVerificationTypes } from '@credo-ts/openid4vc';
3
+ /**
4
+ * What credo may trust as the signer of a presented credential, step 1 of
5
+ * [VSA-VTI-FLOW-VERIFY-OID]. The DID Document binds the issuer key (step 4), not a certificate
6
+ * chain, so the leaf certificate the wallet presented is the one anchor credo needs for `x5c`; a
7
+ * DID signer needs none. Every other verification falls through to the next layer.
8
+ */
9
+ export declare const trustedIssuersForPresentation: GetTrustedIssuersForVerification<VerificationSigner, OpenId4VcVerificationTypes>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.trustedIssuersForPresentation = void 0;
4
+ const presentationVerification_1 = require("../services/presentationVerification");
5
+ /**
6
+ * What credo may trust as the signer of a presented credential, step 1 of
7
+ * [VSA-VTI-FLOW-VERIFY-OID]. The DID Document binds the issuer key (step 4), not a certificate
8
+ * chain, so the leaf certificate the wallet presented is the one anchor credo needs for `x5c`; a
9
+ * DID signer needs none. Every other verification falls through to the next layer.
10
+ */
11
+ const trustedIssuersForPresentation = async (_agentContext, { signer, verification }) => {
12
+ if (verification.type !== 'openId4VpCredential')
13
+ return undefined;
14
+ // credo accepts an SD-JWT VC without `exp`; the spec does not
15
+ (0, presentationVerification_1.assertCredentialExpires)(verification.credential);
16
+ if (signer.method !== 'x509')
17
+ return undefined;
18
+ return {
19
+ trustedIssuers: [{ method: 'x509', issuance: [signer.certificateChain[0].toString('base64')] }],
20
+ };
21
+ };
22
+ exports.trustedIssuersForPresentation = trustedIssuersForPresentation;
23
+ //# sourceMappingURL=presentedIssuer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentedIssuer.js","sourceRoot":"","sources":["../../src/trust/presentedIssuer.ts"],"names":[],"mappings":";;;AAGA,mFAA8E;AAE9E;;;;;GAKG;AACI,MAAM,6BAA6B,GAGtC,KAAK,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;IACpD,IAAI,YAAY,CAAC,IAAI,KAAK,qBAAqB;QAAE,OAAO,SAAS,CAAA;IACjE,8DAA8D;IAC9D,IAAA,kDAAuB,EAAC,YAAY,CAAC,UAAU,CAAC,CAAA;IAChD,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,SAAS,CAAA;IAC9C,OAAO;QACL,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;KAChG,CAAA;AACH,CAAC,CAAA;AAXY,QAAA,6BAA6B,iCAWzC"}
@@ -0,0 +1,31 @@
1
+ import type { PresentationDecision } from '../services/presentationVerification';
2
+ import type { DidResolverAgent } from './keyBinding';
3
+ import type { SdJwtVc } from '@credo-ts/core';
4
+ import type { DidTrustResolver } from '@verana-labs/vs-agent-sdk';
5
+ import { ParticipantRole } from '@verana-labs/vs-agent-sdk';
6
+ /** What the verification session stored when it created the request ([VSA-ADM-OID-PR-CREATE]). */
7
+ export interface PresentationTrustRequest {
8
+ jsonSchemaCredentialId: string;
9
+ credentialSchemaId: number;
10
+ }
11
+ export interface PresentationTrustDependencies {
12
+ agent: DidResolverAgent;
13
+ /** Reads the Type Metadata document at a `vct`, under the network boundary of step 3. */
14
+ readTypeMetadata: (vct: string) => Promise<Uint8Array>;
15
+ /** Step 7: the Verifiable Trust resolution of a DID, the one the agent applies to a DIDComm peer. */
16
+ resolveDidTrust: DidTrustResolver;
17
+ /** Step 7: the ISSUER `Participant` check of the agent; throws an `AnonCredsTrustError` otherwise. */
18
+ assertAuthorized: (options: {
19
+ did: string;
20
+ role: ParticipantRole;
21
+ credentialSchemaId: number;
22
+ }) => Promise<void>;
23
+ }
24
+ /**
25
+ * [VSA-VTI-FLOW-VERIFY-OID] steps 2 to 8 on a credential that passed step 1: credo verified the
26
+ * response, the holder binding, the disclosures, the signature, the validity period and the `status`
27
+ * claim (step 6) before the session reached `ResponseVerified`. Every step fails closed. A step the
28
+ * agent cannot complete answers `RESOLVER_UNAVAILABLE`, which the caller never stores, so the next
29
+ * read retries it.
30
+ */
31
+ export declare function decidePresentationTrust(credential: SdJwtVc, request: PresentationTrustRequest, dependencies: PresentationTrustDependencies): Promise<PresentationDecision>;
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decidePresentationTrust = decidePresentationTrust;
4
+ const core_1 = require("@credo-ts/core");
5
+ const vs_agent_sdk_1 = require("@verana-labs/vs-agent-sdk");
6
+ const config_1 = require("../config");
7
+ const CertificateService_1 = require("../services/CertificateService");
8
+ const isRecord_1 = require("../utils/isRecord");
9
+ const keyBinding_1 = require("./keyBinding");
10
+ /**
11
+ * [VSA-VTI-FLOW-VERIFY-OID] steps 2 to 8 on a credential that passed step 1: credo verified the
12
+ * response, the holder binding, the disclosures, the signature, the validity period and the `status`
13
+ * claim (step 6) before the session reached `ResponseVerified`. Every step fails closed. A step the
14
+ * agent cannot complete answers `RESOLVER_UNAVAILABLE`, which the caller never stores, so the next
15
+ * read retries it.
16
+ */
17
+ async function decidePresentationTrust(credential, request, dependencies) {
18
+ const evidence = {
19
+ did: null,
20
+ trustStatus: null,
21
+ jsonSchemaCredentialId: request.jsonSchemaCredentialId,
22
+ authorized: null,
23
+ queries: [],
24
+ };
25
+ const verdict = await runSteps(credential, request, dependencies, evidence);
26
+ return {
27
+ cryptographicVerified: true,
28
+ accepted: verdict === 'TRUSTED_AUTHORIZED',
29
+ trust: { verdict, evidence },
30
+ credential: presentedCredential(credential),
31
+ };
32
+ }
33
+ class StepFailure extends Error {
34
+ constructor(verdict, note) {
35
+ super(note);
36
+ this.verdict = verdict;
37
+ this.name = 'StepFailure';
38
+ }
39
+ }
40
+ async function runSteps(credential, request, dependencies, evidence) {
41
+ try {
42
+ const did = issuerDidOf(credential);
43
+ evidence.did = did;
44
+ await assertIssuerKeyBound(credential, did, dependencies, evidence);
45
+ await assertTypeMetadataBound(credential, request.jsonSchemaCredentialId, dependencies, evidence);
46
+ await assertIssuerTrusted(did, dependencies, evidence);
47
+ await assertIssuerAuthorized(did, request.credentialSchemaId, dependencies, evidence);
48
+ return 'TRUSTED_AUTHORIZED';
49
+ }
50
+ catch (error) {
51
+ if (!(error instanceof StepFailure))
52
+ throw error;
53
+ evidence.note = error.message;
54
+ return error.verdict;
55
+ }
56
+ }
57
+ // Step 2, [VT-CRED-SDJWT-6]: `iss` when it is a DID, else the URI SAN of the leaf of `x5c`.
58
+ function issuerDidOf(credential) {
59
+ var _a, _b, _c;
60
+ const issuer = credential.issuer;
61
+ if (issuer.method === 'did')
62
+ return (_b = (_a = (0, core_1.tryParseDid)(issuer.didUrl)) === null || _a === void 0 ? void 0 : _a.did) !== null && _b !== void 0 ? _b : fail('UNTRUSTED', 'the issuer DID URL is no DID');
63
+ const fromIss = typeof credential.payload.iss === 'string' ? (_c = (0, core_1.tryParseDid)(credential.payload.iss)) === null || _c === void 0 ? void 0 : _c.did : undefined;
64
+ if (fromIss)
65
+ return fromIss;
66
+ try {
67
+ return (0, CertificateService_1.didFromValidatedCertificate)(issuer.x5c[0]);
68
+ }
69
+ catch (_d) {
70
+ return fail('UNTRUSTED', 'the credential carries no DID in iss nor in the URI SAN of its leaf certificate');
71
+ }
72
+ }
73
+ // Steps 3 and 4: a well-formed did:web or did:webvh, resolved under the network boundary, whose
74
+ // DID Document authorizes the issuer key under assertionMethod.
75
+ async function assertIssuerKeyBound(credential, did, dependencies, evidence) {
76
+ if (!isDidWeb(did))
77
+ fail('UNTRUSTED', `the issuer DID "${did}" is no did:web nor did:webvh`);
78
+ evidence.queries.push(`resolve ${did}`);
79
+ const didDocument = await (0, keyBinding_1.resolveDidDocument)(dependencies.agent, did);
80
+ if (!didDocument)
81
+ fail('RESOLVER_UNAVAILABLE', `the issuer DID "${did}" could not be resolved`);
82
+ const issuer = credential.issuer;
83
+ let issuerKey;
84
+ if (issuer.method === 'x5c') {
85
+ issuerKey = issuer.x5c[0].publicJwk;
86
+ }
87
+ else {
88
+ try {
89
+ issuerKey = (0, core_1.getPublicJwkFromVerificationMethod)(didDocument.dereferenceVerificationMethod(issuer.didUrl));
90
+ }
91
+ catch (_a) {
92
+ return fail('UNTRUSTED', `the issuer DID Document names no key at "${issuer.didUrl}"`);
93
+ }
94
+ }
95
+ if (!(0, keyBinding_1.boundVerificationMethod)(didDocument, issuerKey, ['assertionMethod'])) {
96
+ fail('UNTRUSTED', `the issuer DID Document does not authorize the signing key under assertionMethod`);
97
+ }
98
+ }
99
+ // Step 5, [VT-CRED-SDJWT-3] and [VT-CRED-SDJWT-4]: the Type Metadata document at `vct` hashes to
100
+ // `vct#integrity` and names the VTJSC of the request.
101
+ async function assertTypeMetadataBound(credential, jsonSchemaCredentialId, dependencies, evidence) {
102
+ const { vct, 'vct#integrity': integrity } = credential.payload;
103
+ if (typeof vct !== 'string')
104
+ fail('UNTRUSTED', 'the credential carries no vct');
105
+ if (typeof integrity !== 'string')
106
+ fail('UNTRUSTED', 'the credential carries no vct#integrity');
107
+ evidence.queries.push(`GET ${vct}`);
108
+ let document;
109
+ try {
110
+ document = await dependencies.readTypeMetadata(vct);
111
+ }
112
+ catch (error) {
113
+ return fail('RESOLVER_UNAVAILABLE', `the Type Metadata at "${vct}" could not be read: ${messageOf(error)}`);
114
+ }
115
+ if ((0, vs_agent_sdk_1.digestOfBytes)(document) !== integrity) {
116
+ fail('UNTRUSTED', `the Type Metadata at "${vct}" does not hash to the vct#integrity of the credential`);
117
+ }
118
+ const related = relatedJsonSchemaCredentialIdOf(document);
119
+ if (related !== jsonSchemaCredentialId) {
120
+ fail('UNTRUSTED', `the Type Metadata at "${vct}" names the VTJSC "${related}", not "${jsonSchemaCredentialId}"`);
121
+ }
122
+ }
123
+ // Step 7, first half: the Verifiable Trust resolution answers TRUSTED for the issuer DID.
124
+ async function assertIssuerTrusted(did, dependencies, evidence) {
125
+ evidence.queries.push(`resolveDID ${did}`);
126
+ let trusted;
127
+ try {
128
+ trusted = (await dependencies.resolveDidTrust(did)).trusted;
129
+ }
130
+ catch (error) {
131
+ return fail('RESOLVER_UNAVAILABLE', `the trust resolution of "${did}" failed: ${messageOf(error)}`);
132
+ }
133
+ evidence.trustStatus = trusted ? 'TRUSTED' : 'UNTRUSTED';
134
+ if (!trusted)
135
+ fail('UNTRUSTED', `the trust resolution of "${did}" answered UNTRUSTED`);
136
+ }
137
+ // Step 7, second half: an active ISSUER Participant of the issuer DID for the CredentialSchema.
138
+ async function assertIssuerAuthorized(did, credentialSchemaId, dependencies, evidence) {
139
+ evidence.queries.push(`listParticipants did=${did} role=ISSUER schema_id=${credentialSchemaId}`);
140
+ try {
141
+ await dependencies.assertAuthorized({ did, role: vs_agent_sdk_1.ParticipantRole.Issuer, credentialSchemaId });
142
+ }
143
+ catch (error) {
144
+ if (!(error instanceof vs_agent_sdk_1.AnonCredsTrustError))
145
+ throw error;
146
+ if (error.reason === vs_agent_sdk_1.AnonCredsTrustErrorReason.NotAuthorized) {
147
+ evidence.authorized = false;
148
+ fail('TRUSTED_NOT_AUTHORIZED', error.message);
149
+ }
150
+ fail('RESOLVER_UNAVAILABLE', error.message);
151
+ }
152
+ evidence.authorized = true;
153
+ }
154
+ function presentedCredential(credential) {
155
+ const disclosedClaims = Object.fromEntries(Object.entries(credential.prettyClaims).filter(([name]) => !(0, config_1.isReservedClaimName)(name)));
156
+ return { vct: String(credential.payload.vct), disclosedClaims };
157
+ }
158
+ function isDidWeb(did) {
159
+ try {
160
+ return (0, vs_agent_sdk_1.getDidWebHttpsBaseUrl)(did) !== undefined;
161
+ }
162
+ catch (_a) {
163
+ return false;
164
+ }
165
+ }
166
+ function relatedJsonSchemaCredentialIdOf(document) {
167
+ try {
168
+ const parsed = JSON.parse(Buffer.from(document).toString('utf8'));
169
+ return (0, isRecord_1.isRecord)(parsed) && typeof parsed.relatedJsonSchemaCredentialId === 'string'
170
+ ? parsed.relatedJsonSchemaCredentialId
171
+ : undefined;
172
+ }
173
+ catch (_a) {
174
+ return undefined;
175
+ }
176
+ }
177
+ function messageOf(error) {
178
+ return error instanceof Error ? error.message : String(error);
179
+ }
180
+ function fail(verdict, note) {
181
+ throw new StepFailure(verdict, note);
182
+ }
183
+ //# sourceMappingURL=trustDecision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trustDecision.js","sourceRoot":"","sources":["../../src/trust/trustDecision.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export declare const TRUST_VERDICT_NAMES: readonly ["TRUSTED_AUTHORIZED", "TRUSTED_NOT_AUTHORIZED", "UNTRUSTED", "RESOLVER_UNAVAILABLE"];
2
2
  export type TrustVerdictName = (typeof TRUST_VERDICT_NAMES)[number];
3
- export declare const VERANA_TRUST_STATUSES: readonly ["TRUSTED", "PARTIAL", "UNTRUSTED"];
3
+ export declare const VERANA_TRUST_STATUSES: readonly ["TRUSTED", "UNTRUSTED"];
4
4
  export type VeranaTrustStatus = (typeof VERANA_TRUST_STATUSES)[number];
5
5
  export type KeyBindingResult = 'bound' | 'unbound' | 'unresolvable';
6
6
  export interface TrustEvidence {
@@ -7,5 +7,5 @@ exports.TRUST_VERDICT_NAMES = [
7
7
  'UNTRUSTED',
8
8
  'RESOLVER_UNAVAILABLE',
9
9
  ];
10
- exports.VERANA_TRUST_STATUSES = ['TRUSTED', 'PARTIAL', 'UNTRUSTED'];
10
+ exports.VERANA_TRUST_STATUSES = ['TRUSTED', 'UNTRUSTED'];
11
11
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/trust/types.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG;IACjC,oBAAoB;IACpB,wBAAwB;IACxB,WAAW;IACX,sBAAsB;CACd,CAAA;AAIG,QAAA,qBAAqB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAU,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/trust/types.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG;IACjC,oBAAoB;IACpB,wBAAwB;IACxB,WAAW;IACX,sBAAsB;CACd,CAAA;AAIG,QAAA,qBAAqB,GAAG,CAAC,SAAS,EAAE,WAAW,CAAU,CAAA"}
package/build/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { OpenId4VcIssuerRequestMapper } from './sdk/setupOpenId4Vc';
2
2
  import type { Kms, X509Module } from '@credo-ts/core';
3
3
  import type { OpenId4VcModule } from '@credo-ts/openid4vc';
4
- import type { BaseAgentModules, VsAgent } from '@verana-labs/vs-agent-sdk';
4
+ import type { BaseAgentModules, VerifiablePublicRegistries, VsAgent } from '@verana-labs/vs-agent-sdk';
5
5
  export type OpenId4VcVsAgentModules = BaseAgentModules & {
6
6
  openId4Vc: OpenId4VcModule<null, null>;
7
7
  x509: X509Module;
@@ -38,6 +38,7 @@ export interface OpenId4VcConfigurationFile {
38
38
  }
39
39
  export declare const OPENID4VC_OPTIONS = "OPENID4VC_OPTIONS";
40
40
  export declare const OPENID4VC_ISSUER_SINK = "OPENID4VC_ISSUER_SINK";
41
+ export declare const OPENID4VC_DID_TRUST_RESOLVER = "OPENID4VC_DID_TRUST_RESOLVER";
41
42
  export interface OpenId4VcIssuerRuntime extends OpenId4VcIssuerRequestMapper {
42
43
  refreshCredentialConfigurations(updatedCredentialSchemaId?: number): Promise<void>;
43
44
  }
@@ -45,4 +46,6 @@ export type OpenId4VcIssuerSink = (service: OpenId4VcIssuerRuntime) => void;
45
46
  export interface OpenId4VcPluginOptions extends OpenId4VcConfigurationFile {
46
47
  publicApiBaseUrl: string;
47
48
  credentialConfigurations: OpenId4VcCredentialConfiguration[];
49
+ /** The VPR the verifier resolves a presented issuer against; absent when the agent has no indexer. */
50
+ verifiablePublicRegistries?: VerifiablePublicRegistries;
48
51
  }
package/build/types.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OPENID4VC_ISSUER_SINK = exports.OPENID4VC_OPTIONS = void 0;
3
+ exports.OPENID4VC_DID_TRUST_RESOLVER = exports.OPENID4VC_ISSUER_SINK = exports.OPENID4VC_OPTIONS = void 0;
4
4
  exports.OPENID4VC_OPTIONS = 'OPENID4VC_OPTIONS';
5
5
  exports.OPENID4VC_ISSUER_SINK = 'OPENID4VC_ISSUER_SINK';
6
+ exports.OPENID4VC_DID_TRUST_RESOLVER = 'OPENID4VC_DID_TRUST_RESOLVER';
6
7
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA6Ca,QAAA,iBAAiB,GAAG,mBAAmB,CAAA;AACvC,QAAA,qBAAqB,GAAG,uBAAuB,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA6Ca,QAAA,iBAAiB,GAAG,mBAAmB,CAAA;AACvC,QAAA,qBAAqB,GAAG,uBAAuB,CAAA;AAC/C,QAAA,4BAA4B,GAAG,8BAA8B,CAAA"}
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "default": "./build/index.js"
10
10
  }
11
11
  },
12
- "version": "2.0.0-dev.79",
12
+ "version": "2.0.0-pr766.1",
13
13
  "repository": {
14
14
  "type": "git",
15
15
  "url": "https://github.com/verana-labs/vs-agent"
@@ -30,7 +30,7 @@
30
30
  "class-transformer": "0.5.1",
31
31
  "class-validator": "0.14.1",
32
32
  "express": "^4.18.1",
33
- "@verana-labs/vs-agent-sdk": "2.0.0-dev.79"
33
+ "@verana-labs/vs-agent-sdk": "2.0.0-pr766.1"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "@credo-ts/core": "0.7.1-pr-2704-20260909134930"