@verana-labs/vs-agent-plugin-openid4vc 2.0.0-dev.73 → 2.0.0-dev.74
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 +29 -10
- package/build/config.d.ts +7 -0
- package/build/config.js +46 -5
- package/build/config.js.map +1 -1
- package/build/nestjs/OpenId4VcPlugin.js +2 -0
- package/build/nestjs/OpenId4VcPlugin.js.map +1 -1
- package/build/sdk/credentialConfigurationHandlers.d.ts +4 -0
- package/build/sdk/credentialConfigurationHandlers.js +57 -0
- package/build/sdk/credentialConfigurationHandlers.js.map +1 -0
- package/build/sdk/setupOpenId4Vc.d.ts +1 -1
- package/build/sdk/setupOpenId4Vc.js +3 -3
- package/build/sdk/setupOpenId4Vc.js.map +1 -1
- package/build/services/IssuerService.d.ts +7 -0
- package/build/services/IssuerService.js +85 -4
- package/build/services/IssuerService.js.map +1 -1
- package/build/services/credentialConfigurationBuilder.d.ts +3 -0
- package/build/services/credentialConfigurationBuilder.js +81 -0
- package/build/services/credentialConfigurationBuilder.js.map +1 -0
- package/build/services/typeMetadataIntegrity.d.ts +6 -0
- package/build/services/typeMetadataIntegrity.js +32 -0
- package/build/services/typeMetadataIntegrity.js.map +1 -0
- package/build/trust/keyBinding.js +5 -27
- package/build/trust/keyBinding.js.map +1 -1
- package/build/types.d.ts +6 -1
- package/build/types.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -17,17 +17,36 @@ What it does:
|
|
|
17
17
|
Out of scope, and not implied: W3C VCDM credentials, ISO mdoc, authorization-code issuance,
|
|
18
18
|
wallet-attestation trust-list distribution, production PKI onboarding, formal conformance.
|
|
19
19
|
|
|
20
|
+
## Credential types
|
|
21
|
+
|
|
22
|
+
The configuration file carries no credential type. The agent reads them from the VPR instead: one
|
|
23
|
+
per `CredentialSchema` for which it holds an active ISSUER `Participant`, identified by the
|
|
24
|
+
`jsonSchemaCredentialId` of that schema. Claims come from the `credentialSubject` properties of
|
|
25
|
+
the JSON schema, every one of them selectively disclosable, and the display name from its `title`,
|
|
26
|
+
or from the on-chain reference `vpr:verana:{chainId}:cs:{credentialSchemaId}` when it carries none.
|
|
27
|
+
The `vct` is the Type Metadata URL of the type, `{ecosystem base}/vt/vct/{credentialSchemaId}`.
|
|
28
|
+
A schema the agent cannot resolve is skipped with a warning and the rest of the set still stands.
|
|
29
|
+
A `credentialSubject` property named after an SD-JWT VC envelope claim (`vct`, `vct#integrity`,
|
|
30
|
+
`iat`, `exp`, `nbf`, `iss`, `cnf`, `status`) is no claim of the type: the issuer stamps those itself,
|
|
31
|
+
and an offer that carries one is rejected with `400 INVALID_INPUT`. Neither is `id`: SD-JWT VC binds
|
|
32
|
+
the holder through `cnf`, so an `id` the caller supplies would assert a subject the issuer never
|
|
33
|
+
checked.
|
|
34
|
+
|
|
35
|
+
The set follows the VPR without a restart: a `Participant` or `CredentialSchema` notification
|
|
36
|
+
rebuilds it and re-renders the served issuer metadata. `createCredentialOffer` validates the
|
|
37
|
+
claims against the JSON schema (`400 INVALID_INPUT` with the violations), checks the active
|
|
38
|
+
ISSUER `Participant` through the indexer (`409 NOT_AUTHORIZED`, or `503 RESOLVER_UNAVAILABLE`
|
|
39
|
+
when the indexer cannot answer), and reads the Type Metadata document over `https`, without
|
|
40
|
+
following a redirect, to bind every credential to its `vct#integrity`. It answers
|
|
41
|
+
`503 RESOLVER_UNAVAILABLE` when that document cannot be read.
|
|
42
|
+
|
|
20
43
|
## Not wired up yet
|
|
21
44
|
|
|
22
|
-
The configuration file
|
|
23
|
-
|
|
24
|
-
`
|
|
25
|
-
|
|
26
|
-
The Ecosystem side is in place: the agent serves the SD-JWT VC Type Metadata of each VTJSC it
|
|
27
|
-
issues at `/vt/vct/{credentialSchemaId}`, with or without this plugin. Three issues carry the rest:
|
|
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:
|
|
28
49
|
|
|
29
|
-
- [#711](https://github.com/verana-labs/vs-agent/issues/711): credential types read from the VPR,
|
|
30
|
-
one per active issuer participant;
|
|
31
50
|
- [#712](https://github.com/verana-labs/vs-agent/issues/712): the verifier trust decision on the
|
|
32
51
|
eight steps the spec now defines, with no `trust` block anywhere;
|
|
33
52
|
- [#713](https://github.com/verana-labs/vs-agent/issues/713): status lists.
|
|
@@ -100,11 +119,11 @@ answers in the v2 error envelope. Without `OID4VC_CONFIG_FILE_LOCATION`, every p
|
|
|
100
119
|
|
|
101
120
|
| Method | Path | Notes |
|
|
102
121
|
| --- | --- | --- |
|
|
103
|
-
| `createCredentialOffer` | `POST /credential-offer` | `jsonSchemaCredentialId`, `claims`, `ttlSeconds` (60 to 7776000), optional `statusListId` and `statusListIndex` together. Returns `credentialExchangeId` and `url`. `404 UNKNOWN_ID`, `400 INVALID_INPUT`. Answers `UNKNOWN_ID` for every
|
|
122
|
+
| `createCredentialOffer` | `POST /credential-offer` | `jsonSchemaCredentialId`, `claims`, `ttlSeconds` (60 to 7776000), optional `statusListId` and `statusListIndex` together. Returns `credentialExchangeId` and `url`. `404 UNKNOWN_ID`, `400 INVALID_INPUT`, `409 NOT_AUTHORIZED`, `503 RESOLVER_UNAVAILABLE`. Answers `UNKNOWN_ID` for every status list until #713. |
|
|
104
123
|
| `listCredentialExchanges` | `GET /credential-exchanges` | Filters `jsonSchemaCredentialId`, `state`. Keyset pagination. |
|
|
105
124
|
| `getCredentialExchange` | `GET /credential-exchanges/{credentialExchangeId}` | `credentialExchangeId`, `jsonSchemaCredentialId`, `state`, `createdAt`, `updatedAt`, `expiresAt`, `errorMessage`. Never the claims, the offer URL or the pre-authorized code. |
|
|
106
125
|
| `deleteCredentialExchange` | `DELETE /credential-exchanges/{credentialExchangeId}` | `204`. Deletes the record only, never a credential that a wallet holds. |
|
|
107
|
-
| `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`.
|
|
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. |
|
|
108
127
|
| `listPresentations` | `GET /presentations` | Filters `jsonSchemaCredentialId`, `state`. Keyset pagination. |
|
|
109
128
|
| `getPresentation` | `GET /presentations/{proofExchangeId}` | Adds the stored `jsonSchemaCredentialId` and `requestedClaims` of the request, then `cryptographicVerified`, `accepted`, `trust` and `credential` once the wallet answered. |
|
|
110
129
|
| `deletePresentation` | `DELETE /presentations/{proofExchangeId}` | `204`. |
|
package/build/config.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import type { OpenId4VcConfigurationFile, OpenId4VcCredentialConfiguration, OpenId4VcPluginOptions } from './types';
|
|
2
|
+
import type { SchemaViolation } from '@verana-labs/vs-agent-sdk';
|
|
2
3
|
export declare const ISSUER_CAPABILITY_ID = "issuer";
|
|
3
4
|
export declare const VERIFIER_CAPABILITY_ID = "verifier";
|
|
4
5
|
export declare const OFFER_TTL_SECONDS_MIN = 60;
|
|
5
6
|
export declare const OFFER_TTL_SECONDS_MAX = 7776000;
|
|
7
|
+
export declare function isReservedClaimName(name: string): boolean;
|
|
8
|
+
/** A claim set the credential type refuses, which the Administration API answers as INVALID_INPUT. */
|
|
9
|
+
export declare class OfferClaimsError extends Error {
|
|
10
|
+
readonly violations?: SchemaViolation[] | undefined;
|
|
11
|
+
constructor(message: string, violations?: SchemaViolation[] | undefined);
|
|
12
|
+
}
|
|
6
13
|
/** [VSA-VTI-CFG-ENV-OID] Validation of the OpenID4VC configuration file. */
|
|
7
14
|
export declare function parseOpenId4VcConfiguration(document: unknown): OpenId4VcConfigurationFile;
|
|
8
15
|
export declare function findCredentialConfiguration(options: Pick<OpenId4VcPluginOptions, 'credentialConfigurations'>, id: string): OpenId4VcCredentialConfiguration | undefined;
|
package/build/config.js
CHANGED
|
@@ -1,17 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OFFER_TTL_SECONDS_MAX = exports.OFFER_TTL_SECONDS_MIN = exports.VERIFIER_CAPABILITY_ID = exports.ISSUER_CAPABILITY_ID = void 0;
|
|
3
|
+
exports.OfferClaimsError = exports.OFFER_TTL_SECONDS_MAX = exports.OFFER_TTL_SECONDS_MIN = exports.VERIFIER_CAPABILITY_ID = exports.ISSUER_CAPABILITY_ID = void 0;
|
|
4
|
+
exports.isReservedClaimName = isReservedClaimName;
|
|
4
5
|
exports.parseOpenId4VcConfiguration = parseOpenId4VcConfiguration;
|
|
5
6
|
exports.findCredentialConfiguration = findCredentialConfiguration;
|
|
6
7
|
exports.parseOfferClaims = parseOfferClaims;
|
|
7
8
|
exports.parseOfferTtlSeconds = parseOfferTtlSeconds;
|
|
8
9
|
exports.parseOfferIssuanceMetadata = parseOfferIssuanceMetadata;
|
|
9
10
|
const core_1 = require("@credo-ts/core");
|
|
11
|
+
const vs_agent_sdk_1 = require("@verana-labs/vs-agent-sdk");
|
|
10
12
|
const isRecord_1 = require("./utils/isRecord");
|
|
11
13
|
exports.ISSUER_CAPABILITY_ID = 'issuer';
|
|
12
14
|
exports.VERIFIER_CAPABILITY_ID = 'verifier';
|
|
13
15
|
exports.OFFER_TTL_SECONDS_MIN = 60;
|
|
14
16
|
exports.OFFER_TTL_SECONDS_MAX = 7776000;
|
|
17
|
+
// The issuer stamps these claims itself, so a credential never carries a value a caller supplied for one.
|
|
18
|
+
const RESERVED_CLAIM_NAMES = [
|
|
19
|
+
'vct',
|
|
20
|
+
'vct#integrity',
|
|
21
|
+
'iat',
|
|
22
|
+
'exp',
|
|
23
|
+
'nbf',
|
|
24
|
+
'iss',
|
|
25
|
+
'cnf',
|
|
26
|
+
'status',
|
|
27
|
+
];
|
|
28
|
+
function isReservedClaimName(name) {
|
|
29
|
+
return RESERVED_CLAIM_NAMES.includes(name);
|
|
30
|
+
}
|
|
31
|
+
/** A claim set the credential type refuses, which the Administration API answers as INVALID_INPUT. */
|
|
32
|
+
class OfferClaimsError extends Error {
|
|
33
|
+
constructor(message, violations) {
|
|
34
|
+
super(message);
|
|
35
|
+
this.violations = violations;
|
|
36
|
+
this.name = 'OfferClaimsError';
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.OfferClaimsError = OfferClaimsError;
|
|
15
40
|
/** [VSA-VTI-CFG-ENV-OID] Validation of the OpenID4VC configuration file. */
|
|
16
41
|
function parseOpenId4VcConfiguration(document) {
|
|
17
42
|
const configuration = assertJsonObject(document, '');
|
|
@@ -105,11 +130,14 @@ function findCredentialConfiguration(options, id) {
|
|
|
105
130
|
}
|
|
106
131
|
function parseOfferClaims(configuration, input) {
|
|
107
132
|
if (!(0, isRecord_1.isRecord)(input)) {
|
|
108
|
-
throw new
|
|
133
|
+
throw new OfferClaimsError('claims must be an object');
|
|
109
134
|
}
|
|
110
135
|
for (const name of Object.keys(input)) {
|
|
136
|
+
if (isReservedClaimName(name)) {
|
|
137
|
+
throw new OfferClaimsError(`claim '${name}' is reserved by SD-JWT VC`);
|
|
138
|
+
}
|
|
111
139
|
if (!configuration.claims.includes(name)) {
|
|
112
|
-
throw new
|
|
140
|
+
throw new OfferClaimsError(`unknown claim '${name}'`);
|
|
113
141
|
}
|
|
114
142
|
}
|
|
115
143
|
const claims = {};
|
|
@@ -118,15 +146,28 @@ function parseOfferClaims(configuration, input) {
|
|
|
118
146
|
continue;
|
|
119
147
|
const value = input[name];
|
|
120
148
|
if (isEmptyClaim(value)) {
|
|
121
|
-
throw new
|
|
149
|
+
throw new OfferClaimsError(`claim '${name}' must be non-empty`);
|
|
122
150
|
}
|
|
123
151
|
claims[name] = value;
|
|
124
152
|
}
|
|
125
153
|
if (Object.keys(claims).length === 0) {
|
|
126
|
-
throw new
|
|
154
|
+
throw new OfferClaimsError('claims must include at least one configured claim');
|
|
155
|
+
}
|
|
156
|
+
const violations = (0, vs_agent_sdk_1.schemaViolations)(claimSetSchema(configuration.jsonSchema), claims);
|
|
157
|
+
if (violations.length > 0) {
|
|
158
|
+
throw new OfferClaimsError('the claim set does not satisfy the json_schema', violations);
|
|
127
159
|
}
|
|
128
160
|
return claims;
|
|
129
161
|
}
|
|
162
|
+
// An SD-JWT VTC carries no `credentialSubject.id`, so `id` is never a required property of a claim set.
|
|
163
|
+
function claimSetSchema(jsonSchema) {
|
|
164
|
+
var _a;
|
|
165
|
+
const schema = JSON.parse(jsonSchema);
|
|
166
|
+
const credentialSubject = (_a = schema === null || schema === void 0 ? void 0 : schema.properties) === null || _a === void 0 ? void 0 : _a.credentialSubject;
|
|
167
|
+
if (!(0, isRecord_1.isRecord)(credentialSubject) || !Array.isArray(credentialSubject.required))
|
|
168
|
+
return schema;
|
|
169
|
+
return Object.assign(Object.assign({}, schema), { properties: Object.assign(Object.assign({}, schema.properties), { credentialSubject: Object.assign(Object.assign({}, credentialSubject), { required: credentialSubject.required.filter(name => name !== 'id') }) }) });
|
|
170
|
+
}
|
|
130
171
|
function parseOfferTtlSeconds(input) {
|
|
131
172
|
if (typeof input !== 'number' ||
|
|
132
173
|
!Number.isInteger(input) ||
|
package/build/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ exports.OpenId4VcPlugin = OpenId4VcPlugin;
|
|
|
4
4
|
const IssuerService_1 = require("../services/IssuerService");
|
|
5
5
|
const VerifierService_1 = require("../services/VerifierService");
|
|
6
6
|
const types_1 = require("../types");
|
|
7
|
+
const credentialConfigurationHandlers_1 = require("../sdk/credentialConfigurationHandlers");
|
|
7
8
|
const setupOpenId4Vc_1 = require("../sdk/setupOpenId4Vc");
|
|
8
9
|
const V2OpenId4VcCredentialExchangesController_1 = require("./V2OpenId4VcCredentialExchangesController");
|
|
9
10
|
const V2OpenId4VcPresentationsController_1 = require("./V2OpenId4VcPresentationsController");
|
|
@@ -22,6 +23,7 @@ function OpenId4VcPlugin(options) {
|
|
|
22
23
|
name: 'openid4vc',
|
|
23
24
|
credoPlugin: sdkPlugin,
|
|
24
25
|
publicMiddleware: sdkPlugin.publicMiddleware,
|
|
26
|
+
registerIndexerHandlers: registry => (0, credentialConfigurationHandlers_1.registerCredentialConfigurationHandlers)(registry, options, () => issuerService),
|
|
25
27
|
controllers: [
|
|
26
28
|
V2OpenId4VcCredentialExchangesController_1.V2OpenId4VcCredentialExchangesController,
|
|
27
29
|
V2OpenId4VcPresentationsController_1.V2OpenId4VcPresentationsController,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenId4VcPlugin.js","sourceRoot":"","sources":["../../src/nestjs/OpenId4VcPlugin.ts"],"names":[],"mappings":";;AAcA,
|
|
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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { OpenId4VcIssuerRuntime, OpenId4VcPluginOptions } from '../types';
|
|
2
|
+
import type { IndexerHandlerRegistry } from '@verana-labs/vs-agent-sdk';
|
|
3
|
+
/** Call after the default registry is built and overridden so the originals are preserved. */
|
|
4
|
+
export declare function registerCredentialConfigurationHandlers(registry: IndexerHandlerRegistry, options: Pick<OpenId4VcPluginOptions, 'credentialConfigurations'>, getIssuerService: () => OpenId4VcIssuerRuntime | undefined): void;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerCredentialConfigurationHandlers = registerCredentialConfigurationHandlers;
|
|
4
|
+
const vs_agent_sdk_1 = require("@verana-labs/vs-agent-sdk");
|
|
5
|
+
const PARTICIPANT_MSGS = [
|
|
6
|
+
'StartParticipantOP',
|
|
7
|
+
'RenewParticipantOP',
|
|
8
|
+
'SetParticipantOPToValidated',
|
|
9
|
+
'SetParticipantEffectiveUntil',
|
|
10
|
+
'RevokeParticipant',
|
|
11
|
+
'SelfCreateParticipant',
|
|
12
|
+
'CreateRootParticipant',
|
|
13
|
+
'SlashParticipantTrustDeposit',
|
|
14
|
+
'CancelParticipantOPLastRequest',
|
|
15
|
+
'RepayParticipantSlashedTrustDeposit',
|
|
16
|
+
];
|
|
17
|
+
const CREDENTIAL_SCHEMA_MSGS = [
|
|
18
|
+
'CreateNewCredentialSchema',
|
|
19
|
+
'UpdateCredentialSchema',
|
|
20
|
+
'ArchiveCredentialSchema',
|
|
21
|
+
];
|
|
22
|
+
/** Call after the default registry is built and overridden so the originals are preserved. */
|
|
23
|
+
function registerCredentialConfigurationHandlers(registry, options, getIssuerService) {
|
|
24
|
+
const advertised = (credentialSchemaId) => options.credentialConfigurations.some(configuration => configuration.credentialSchemaId === credentialSchemaId);
|
|
25
|
+
const wrap = (msg, concerns, updatedCredentialSchemaId) => {
|
|
26
|
+
const original = registry.get(msg);
|
|
27
|
+
registry.register({
|
|
28
|
+
msg,
|
|
29
|
+
handle: async (activity, ctx) => {
|
|
30
|
+
var _a;
|
|
31
|
+
if (original)
|
|
32
|
+
await original.handle(activity, ctx);
|
|
33
|
+
try {
|
|
34
|
+
if (!(await concerns(activity, ctx)))
|
|
35
|
+
return;
|
|
36
|
+
await ((_a = getIssuerService()) === null || _a === void 0 ? void 0 : _a.refreshCredentialConfigurations(updatedCredentialSchemaId === null || updatedCredentialSchemaId === void 0 ? void 0 : updatedCredentialSchemaId(activity)));
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
ctx.agent.config.logger.error(`[OpenID4VC] credential configuration refresh failed for ${msg}`, error);
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
for (const msg of PARTICIPANT_MSGS) {
|
|
45
|
+
wrap(msg, async (activity, ctx) => {
|
|
46
|
+
const { agent } = ctx;
|
|
47
|
+
if (!agent.did)
|
|
48
|
+
return false;
|
|
49
|
+
const participant = await agent.indexer.getParticipant(String(activity.entity_id));
|
|
50
|
+
return participant.did === agent.did && participant.role === vs_agent_sdk_1.ParticipantRole.Issuer;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
for (const msg of CREDENTIAL_SCHEMA_MSGS) {
|
|
54
|
+
wrap(msg, async (activity) => advertised(Number(activity.entity_id)), activity => (msg === 'UpdateCredentialSchema' ? Number(activity.entity_id) : undefined));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=credentialConfigurationHandlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentialConfigurationHandlers.js","sourceRoot":"","sources":["../../src/sdk/credentialConfigurationHandlers.ts"],"names":[],"mappings":";;AA6BA,0FAiDC;AAvED,4DAA2D;AAE3D,MAAM,gBAAgB,GAAG;IACvB,oBAAoB;IACpB,oBAAoB;IACpB,6BAA6B;IAC7B,8BAA8B;IAC9B,mBAAmB;IACnB,uBAAuB;IACvB,uBAAuB;IACvB,8BAA8B;IAC9B,gCAAgC;IAChC,qCAAqC;CAC7B,CAAA;AAEV,MAAM,sBAAsB,GAAG;IAC7B,2BAA2B;IAC3B,wBAAwB;IACxB,yBAAyB;CACjB,CAAA;AAEV,8FAA8F;AAC9F,SAAgB,uCAAuC,CACrD,QAAgC,EAChC,OAAiE,EACjE,gBAA0D;IAE1D,MAAM,UAAU,GAAG,CAAC,kBAA0B,EAAW,EAAE,CACzD,OAAO,CAAC,wBAAwB,CAAC,IAAI,CACnC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,kBAAkB,KAAK,kBAAkB,CACzE,CAAA;IAEH,MAAM,IAAI,GAAG,CACX,GAAW,EACX,QAAqF,EACrF,yBAA6E,EACvE,EAAE;QACR,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClC,QAAQ,CAAC,QAAQ,CAAC;YAChB,GAAG;YACH,MAAM,EAAE,KAAK,EAAE,QAAyB,EAAE,GAA0B,EAAE,EAAE;;gBACtE,IAAI,QAAQ;oBAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;gBAClD,IAAI,CAAC;oBACH,IAAI,CAAC,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBAAE,OAAM;oBAC5C,MAAM,CAAA,MAAA,gBAAgB,EAAE,0CAAE,+BAA+B,CAAC,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAG,QAAQ,CAAC,CAAC,CAAA,CAAA;gBAClG,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC3B,2DAA2D,GAAG,EAAE,EAChE,KAAgC,CACjC,CAAA;gBACH,CAAC;YACH,CAAC;SACF,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE;YAChC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;YACrB,IAAI,CAAC,KAAK,CAAC,GAAG;gBAAE,OAAO,KAAK,CAAA;YAC5B,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;YAClF,OAAO,WAAW,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,WAAW,CAAC,IAAI,KAAK,8BAAe,CAAC,MAAM,CAAA;QACrF,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,sBAAsB,EAAE,CAAC;QACzC,IAAI,CACF,GAAG,EACH,KAAK,EAAC,QAAQ,EAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EACxD,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CACxF,CAAA;IACH,CAAC;AACH,CAAC"}
|
|
@@ -10,5 +10,5 @@ export interface OpenId4VcSdkPlugin {
|
|
|
10
10
|
publicMiddleware: Express;
|
|
11
11
|
}
|
|
12
12
|
export declare function setupOpenId4Vc(options: OpenId4VcPluginOptions, getIssuerService: () => OpenId4VcIssuerRequestMapper): OpenId4VcSdkPlugin;
|
|
13
|
-
export declare function acceptDraftCredentialRequests(
|
|
13
|
+
export declare function acceptDraftCredentialRequests(getConfigurations: () => OpenId4VcCredentialConfiguration[]): (request: Request, _response: Response, next: NextFunction) => void;
|
|
14
14
|
export declare function accommodateLegacyMetadataAccept(request: Request, _response: Response, next: NextFunction): void;
|
|
@@ -33,7 +33,7 @@ function setupOpenId4Vc(options, getIssuerService) {
|
|
|
33
33
|
// Credo raises the body limits of its own routers (1 MB issuer, 5 MB verifier), and a parser registered on
|
|
34
34
|
// the same app before them decides first, so this one covers the issuer path alone and at the limit credo
|
|
35
35
|
// sets there.
|
|
36
|
-
app.use(new URL(`${options.publicApiBaseUrl}/oid4vci`).pathname, express_1.default.json({ limit: ISSUER_BODY_LIMIT }), acceptDraftCredentialRequests(options.credentialConfigurations));
|
|
36
|
+
app.use(new URL(`${options.publicApiBaseUrl}/oid4vci`).pathname, express_1.default.json({ limit: ISSUER_BODY_LIMIT }), acceptDraftCredentialRequests(() => options.credentialConfigurations));
|
|
37
37
|
// RFC 8615 puts the issuer path after the well-known segment, so a holder whose issuer identifier carries a
|
|
38
38
|
// path requests `/.well-known/jwt-vc-issuer/oid4vci/<id>`, not just the bare form.
|
|
39
39
|
app.get(['/.well-known/jwt-vc-issuer', '/.well-known/jwt-vc-issuer/*'], (_request, response, next) => {
|
|
@@ -89,7 +89,7 @@ function withoutTrailingSlash(path) {
|
|
|
89
89
|
}
|
|
90
90
|
// Draft wallets predating OpenID4VCI 1.0 still send `format` alongside `vct` on the credential request, which
|
|
91
91
|
// Credo answers with `unsupported_credential_format`.
|
|
92
|
-
function acceptDraftCredentialRequests(
|
|
92
|
+
function acceptDraftCredentialRequests(getConfigurations) {
|
|
93
93
|
return (request, _response, next) => {
|
|
94
94
|
const body = request.body;
|
|
95
95
|
if (request.method !== 'POST' || !request.path.endsWith('/credential') || !(0, isRecord_1.isRecord)(body)) {
|
|
@@ -100,7 +100,7 @@ function acceptDraftCredentialRequests(configurations) {
|
|
|
100
100
|
next();
|
|
101
101
|
return;
|
|
102
102
|
}
|
|
103
|
-
const configuration =
|
|
103
|
+
const configuration = getConfigurations().find(candidate => candidate.vct === body.vct);
|
|
104
104
|
if (configuration) {
|
|
105
105
|
const { format: _format, vct: _vct } = body, rest = __rest(body, ["format", "vct"]);
|
|
106
106
|
request.body = Object.assign(Object.assign({}, rest), { credential_configuration_id: configuration.id });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupOpenId4Vc.js","sourceRoot":"","sources":["../../src/sdk/setupOpenId4Vc.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA+BA,wCAsDC;AAwBD,sEAmBC;AAID,0EAmBC;AAjJD,yCAA2C;AAC3C,mDAI4B;AAC5B,sDAA+F;AAE/F,sCAAgD;AAChD,mFAA8E;AAC9E,gEAA8E;AAC9E,gDAA4C;AAE5C,MAAM,iBAAiB,GAAG,KAAK,CAAA;AAY/B,SAAgB,cAAc,CAC5B,OAA+B,EAC/B,gBAAoD;;IAEpD,MAAM,wBAAwB,GAAG,OAAO,CAAC,MAAA,MAAA,OAAO,CAAC,MAAM,0CAAE,6BAA6B,0CAAE,MAAM,CAAC,CAAA;IAE/F,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAA;IACrB,GAAG,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;IACxC,2GAA2G;IAC3G,0GAA0G;IAC1G,cAAc;IACd,GAAG,CAAC,GAAG,CACL,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,gBAAgB,UAAU,CAAC,CAAC,QAAQ,EACvD,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAC1C,6BAA6B,CAAC,OAAO,CAAC,wBAAwB,CAAC,
|
|
1
|
+
{"version":3,"file":"setupOpenId4Vc.js","sourceRoot":"","sources":["../../src/sdk/setupOpenId4Vc.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,8 +32,11 @@ export declare class IssuerService implements OnModuleInit {
|
|
|
32
32
|
private readonly publishIssuerService;
|
|
33
33
|
private initialization?;
|
|
34
34
|
private signingCertificate?;
|
|
35
|
+
private replacement;
|
|
36
|
+
private readonly typeMetadataIntegrity;
|
|
35
37
|
constructor(agent: OpenId4VcAgent, options: OpenId4VcPluginOptions, publishIssuerService: OpenId4VcIssuerSink);
|
|
36
38
|
onModuleInit(): Promise<void>;
|
|
39
|
+
refreshCredentialConfigurations(updatedCredentialSchemaId?: number): Promise<void>;
|
|
37
40
|
ensureInitialized(): Promise<void>;
|
|
38
41
|
createOffer({ jsonSchemaCredentialId, claims, ttlSeconds, statusListId, statusListIndex, }: OpenId4VcCreateOfferOptions): Promise<OpenId4VcOfferResult>;
|
|
39
42
|
getIssuanceSession(id: string): Promise<OpenId4VcIssuanceSessionSummary>;
|
|
@@ -44,6 +47,10 @@ export declare class IssuerService implements OnModuleInit {
|
|
|
44
47
|
getJwtVcIssuerMetadata(): Record<string, unknown>;
|
|
45
48
|
mapCredentialRequest: OpenId4VciCredentialRequestToCredentialMapper;
|
|
46
49
|
private initialize;
|
|
50
|
+
private assertTypeMetadataReadable;
|
|
51
|
+
private replaceCredentialConfigurations;
|
|
52
|
+
private deriveAndRender;
|
|
53
|
+
private deriveCredentialConfigurations;
|
|
47
54
|
private createOrUpdateIssuer;
|
|
48
55
|
private credentialConfigurationsSupported;
|
|
49
56
|
private sessionRepository;
|
|
@@ -21,9 +21,12 @@ const config_1 = require("../config");
|
|
|
21
21
|
const keyBinding_1 = require("../trust/keyBinding");
|
|
22
22
|
const types_1 = require("../types");
|
|
23
23
|
const serviceDisplay_1 = require("../utils/serviceDisplay");
|
|
24
|
+
const credentialConfigurationBuilder_1 = require("./credentialConfigurationBuilder");
|
|
25
|
+
const typeMetadataIntegrity_1 = require("./typeMetadataIntegrity");
|
|
24
26
|
const CertificateService_1 = require("./CertificateService");
|
|
25
27
|
const BAD_REQUEST = 400;
|
|
26
28
|
const NOT_FOUND = 404;
|
|
29
|
+
const SERVICE_UNAVAILABLE = 503;
|
|
27
30
|
const JSON_SCHEMA_CREDENTIAL_ID_TAG = 'jsonSchemaCredentialId';
|
|
28
31
|
const DPOP_ALGORITHMS = ['ES256'];
|
|
29
32
|
const ATTESTATION_ALGORITHMS = ['ES256'];
|
|
@@ -32,6 +35,8 @@ let IssuerService = class IssuerService {
|
|
|
32
35
|
this.agent = agent;
|
|
33
36
|
this.options = options;
|
|
34
37
|
this.publishIssuerService = publishIssuerService;
|
|
38
|
+
this.replacement = Promise.resolve();
|
|
39
|
+
this.typeMetadataIntegrity = (0, typeMetadataIntegrity_1.createTypeMetadataIntegrity)();
|
|
35
40
|
this.mapCredentialRequest = async (input) => {
|
|
36
41
|
const signingCertificate = this.signingCertificateHandle();
|
|
37
42
|
const configuration = (0, config_1.findCredentialConfiguration)(this.options, input.credentialConfigurationId);
|
|
@@ -39,8 +44,9 @@ let IssuerService = class IssuerService {
|
|
|
39
44
|
throw new Error(`unknown credential configuration '${input.credentialConfigurationId}'`);
|
|
40
45
|
}
|
|
41
46
|
const { claims, ttlSeconds } = (0, config_1.parseOfferIssuanceMetadata)(configuration, input.issuanceSession.issuanceMetadata);
|
|
47
|
+
const integrity = await this.typeMetadataIntegrity.digest(configuration.vct);
|
|
42
48
|
const issuedAt = Math.floor(Date.now() / 1000);
|
|
43
|
-
const payload = Object.assign(Object.assign({}, claims), { vct: configuration.vct, iat: issuedAt, exp: issuedAt + ttlSeconds });
|
|
49
|
+
const payload = Object.assign(Object.assign({}, claims), { vct: configuration.vct, 'vct#integrity': integrity, iat: issuedAt, exp: issuedAt + ttlSeconds });
|
|
44
50
|
return {
|
|
45
51
|
type: 'credentials',
|
|
46
52
|
format: core_1.ClaimFormat.SdJwtDc,
|
|
@@ -64,6 +70,14 @@ let IssuerService = class IssuerService {
|
|
|
64
70
|
this.publishIssuerService(this);
|
|
65
71
|
await this.ensureInitialized();
|
|
66
72
|
}
|
|
73
|
+
async refreshCredentialConfigurations(updatedCredentialSchemaId) {
|
|
74
|
+
if (!this.signingCertificate)
|
|
75
|
+
return;
|
|
76
|
+
const updated = this.options.credentialConfigurations.find(configuration => configuration.credentialSchemaId === updatedCredentialSchemaId);
|
|
77
|
+
if (updated)
|
|
78
|
+
this.typeMetadataIntegrity.invalidate(updated.vct);
|
|
79
|
+
await this.replaceCredentialConfigurations();
|
|
80
|
+
}
|
|
67
81
|
ensureInitialized() {
|
|
68
82
|
var _a;
|
|
69
83
|
(_a = this.initialization) !== null && _a !== void 0 ? _a : (this.initialization = this.initialize().catch(error => {
|
|
@@ -92,8 +106,18 @@ let IssuerService = class IssuerService {
|
|
|
92
106
|
};
|
|
93
107
|
}
|
|
94
108
|
catch (error) {
|
|
95
|
-
throw new vs_agent_sdk_1.AdminApiError(vs_agent_sdk_1.AdminApiErrorCode.InvalidInput, BAD_REQUEST, error instanceof Error ? error.message : 'invalid credential offer');
|
|
109
|
+
throw new vs_agent_sdk_1.AdminApiError(vs_agent_sdk_1.AdminApiErrorCode.InvalidInput, BAD_REQUEST, error instanceof Error ? error.message : 'invalid credential offer', error instanceof config_1.OfferClaimsError && error.violations ? { violations: error.violations } : undefined);
|
|
96
110
|
}
|
|
111
|
+
try {
|
|
112
|
+
await this.agent.anonCredsTrust.assertOwnAuthorization({
|
|
113
|
+
role: vs_agent_sdk_1.ParticipantRole.Issuer,
|
|
114
|
+
credentialSchemaId: configuration.credentialSchemaId,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
throw (0, vs_agent_sdk_1.trustDecisionError)(error, 'agent');
|
|
119
|
+
}
|
|
120
|
+
await this.assertTypeMetadataReadable(configuration.vct);
|
|
97
121
|
const { credentialOffer, issuanceSession } = await this.issuerApi().createCredentialOffer({
|
|
98
122
|
issuerId: config_1.ISSUER_CAPABILITY_ID,
|
|
99
123
|
credentialConfigurationIds: [configuration.id],
|
|
@@ -166,9 +190,62 @@ let IssuerService = class IssuerService {
|
|
|
166
190
|
if (binding !== 'bound') {
|
|
167
191
|
throw new Error('OpenID4VC issuer certificate key is not bound to the agent DID assertionMethod');
|
|
168
192
|
}
|
|
169
|
-
await this.createOrUpdateIssuer(signingCertificate);
|
|
170
193
|
this.signingCertificate = signingCertificate;
|
|
171
|
-
|
|
194
|
+
try {
|
|
195
|
+
await this.replaceCredentialConfigurations(true);
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
this.signingCertificate = undefined;
|
|
199
|
+
throw error;
|
|
200
|
+
}
|
|
201
|
+
const mode = signingCertificate.development ? 'development' : 'configured';
|
|
202
|
+
const publication = publishedMethodId ? `, published as ${publishedMethodId}` : '';
|
|
203
|
+
this.agent.config.logger.info(`[OpenID4VC] issuer signs with a ${mode} certificate${publication}`);
|
|
204
|
+
}
|
|
205
|
+
async assertTypeMetadataReadable(vct) {
|
|
206
|
+
try {
|
|
207
|
+
await this.typeMetadataIntegrity.digest(vct);
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
throw new vs_agent_sdk_1.AdminApiError(vs_agent_sdk_1.AdminApiErrorCode.ResolverUnavailable, SERVICE_UNAVAILABLE, `the Type Metadata at ${vct} could not be read: ${error instanceof Error ? error.message : String(error)}`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// A notification can trigger a refresh while the initialization still runs, so the derived sets
|
|
214
|
+
// reach the served metadata in the order they were derived.
|
|
215
|
+
replaceCredentialConfigurations(render = false) {
|
|
216
|
+
const derive = () => this.deriveAndRender(render);
|
|
217
|
+
const next = this.replacement.then(derive, derive);
|
|
218
|
+
this.replacement = next.then(() => undefined, () => undefined);
|
|
219
|
+
return next;
|
|
220
|
+
}
|
|
221
|
+
async deriveAndRender(render) {
|
|
222
|
+
const signingCertificate = this.signingCertificate;
|
|
223
|
+
if (!signingCertificate)
|
|
224
|
+
return;
|
|
225
|
+
const previous = this.options.credentialConfigurations;
|
|
226
|
+
const derived = await this.deriveCredentialConfigurations();
|
|
227
|
+
if (derived && !sameCredentialConfigurations(previous, derived)) {
|
|
228
|
+
this.options.credentialConfigurations = derived;
|
|
229
|
+
render = true;
|
|
230
|
+
}
|
|
231
|
+
if (!render)
|
|
232
|
+
return;
|
|
233
|
+
try {
|
|
234
|
+
await this.createOrUpdateIssuer(signingCertificate);
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
this.options.credentialConfigurations = previous;
|
|
238
|
+
throw error;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
async deriveCredentialConfigurations() {
|
|
242
|
+
try {
|
|
243
|
+
return await (0, credentialConfigurationBuilder_1.buildCredentialConfigurations)(this.agent);
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
this.agent.config.logger.warn(`[OpenID4VC] the credential configuration set keeps its last known contents: ${error instanceof Error ? error.message : String(error)}`);
|
|
247
|
+
return undefined;
|
|
248
|
+
}
|
|
172
249
|
}
|
|
173
250
|
async createOrUpdateIssuer(signingCertificate) {
|
|
174
251
|
var _a, _b;
|
|
@@ -251,6 +328,10 @@ exports.IssuerService = IssuerService = __decorate([
|
|
|
251
328
|
__param(2, (0, common_1.Inject)(types_1.OPENID4VC_ISSUER_SINK)),
|
|
252
329
|
__metadata("design:paramtypes", [Object, Object, Function])
|
|
253
330
|
], IssuerService);
|
|
331
|
+
function sameCredentialConfigurations(one, other) {
|
|
332
|
+
const serialize = (configurations) => JSON.stringify([...configurations].sort((a, b) => a.id.localeCompare(b.id)));
|
|
333
|
+
return serialize(one) === serialize(other);
|
|
334
|
+
}
|
|
254
335
|
function summarizeIssuanceSession(session) {
|
|
255
336
|
var _a;
|
|
256
337
|
const jsonSchemaCredentialId = session.getTag(JSON_SCHEMA_CREDENTIAL_ID_TAG);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IssuerService.js","sourceRoot":"","sources":["../../src/services/IssuerService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IssuerService.js","sourceRoot":"","sources":["../../src/services/IssuerService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildCredentialConfigurations = buildCredentialConfigurations;
|
|
4
|
+
const config_1 = require("../config");
|
|
5
|
+
const vs_agent_sdk_1 = require("@verana-labs/vs-agent-sdk");
|
|
6
|
+
// `undefined` means the agent cannot derive the set at all, and the caller keeps the last known one.
|
|
7
|
+
async function buildCredentialConfigurations(agent) {
|
|
8
|
+
var _a;
|
|
9
|
+
const did = agent.did;
|
|
10
|
+
const chainId = (_a = agent.veranaChain) === null || _a === void 0 ? void 0 : _a.getChainId;
|
|
11
|
+
if (!did || !chainId)
|
|
12
|
+
return undefined;
|
|
13
|
+
const participants = await agent.indexer.listParticipants({
|
|
14
|
+
did,
|
|
15
|
+
role: vs_agent_sdk_1.ParticipantRole.Issuer,
|
|
16
|
+
participantState: vs_agent_sdk_1.ParticipantState.Active,
|
|
17
|
+
});
|
|
18
|
+
const credentialSchemaIds = new Set((participants !== null && participants !== void 0 ? participants : []).map(participant => Number(participant.schema_id)));
|
|
19
|
+
const reader = memoizedSchemaReader(agent.indexer);
|
|
20
|
+
const configurations = [];
|
|
21
|
+
for (const credentialSchemaId of credentialSchemaIds) {
|
|
22
|
+
try {
|
|
23
|
+
configurations.push(await buildCredentialConfiguration(agent, reader, credentialSchemaId, chainId));
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
agent.config.logger.warn(`[OpenID4VC] the CredentialSchema ${credentialSchemaId} carries no credential configuration: ${error instanceof Error ? error.message : String(error)}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (configurations.length === 0) {
|
|
30
|
+
agent.config.logger.info(`[OpenID4VC] the VPR gives ${did} no credential type to issue, so the issuer advertises none`);
|
|
31
|
+
}
|
|
32
|
+
return configurations;
|
|
33
|
+
}
|
|
34
|
+
async function buildCredentialConfiguration(agent, reader, credentialSchemaId, chainId) {
|
|
35
|
+
const schema = await reader.getCredentialSchema(credentialSchemaId);
|
|
36
|
+
const ecosystem = await reader.getEcosystem(schema.ecosystem_id);
|
|
37
|
+
const baseUrl = (ecosystem === null || ecosystem === void 0 ? void 0 : ecosystem.did) ? (0, vs_agent_sdk_1.getDidWebHttpsBaseUrl)(ecosystem.did) : undefined;
|
|
38
|
+
if (!baseUrl) {
|
|
39
|
+
throw new Error(`the Ecosystem ${schema.ecosystem_id} maps its DID to no https base url`);
|
|
40
|
+
}
|
|
41
|
+
const jsonSchemaCredentialId = await (0, vs_agent_sdk_1.resolveJsonSchemaCredentialId)(agent, reader, credentialSchemaId, chainId);
|
|
42
|
+
const { title, attrNames } = (0, vs_agent_sdk_1.readJsonSchema)(schema.json_schema);
|
|
43
|
+
const envelope = attrNames.filter(isEnvelopeClaim);
|
|
44
|
+
if (envelope.length > 0) {
|
|
45
|
+
agent.config.logger.warn(`[OpenID4VC] the CredentialSchema ${credentialSchemaId} declares ${envelope
|
|
46
|
+
.map(claim => `'${claim}'`)
|
|
47
|
+
.join(', ')}, which the credential envelope carries, so its type offers no such claim`);
|
|
48
|
+
}
|
|
49
|
+
const claims = attrNames.filter(claim => !isEnvelopeClaim(claim));
|
|
50
|
+
return {
|
|
51
|
+
id: jsonSchemaCredentialId,
|
|
52
|
+
format: 'dc+sd-jwt',
|
|
53
|
+
vct: (0, vs_agent_sdk_1.typeMetadataUrl)(baseUrl, credentialSchemaId),
|
|
54
|
+
name: title !== null && title !== void 0 ? title : `vpr:verana:${chainId}:cs:${credentialSchemaId}`,
|
|
55
|
+
vtjscId: jsonSchemaCredentialId,
|
|
56
|
+
credentialSchemaId,
|
|
57
|
+
jsonSchema: schema.json_schema,
|
|
58
|
+
claims,
|
|
59
|
+
disclosureFrame: claims,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
// `id` joins the reserved names: SD-JWT VC binds the holder through `cnf`, so an `id` the caller
|
|
63
|
+
// supplies would assert a subject the issuer never checked.
|
|
64
|
+
function isEnvelopeClaim(claim) {
|
|
65
|
+
return claim === 'id' || (0, config_1.isReservedClaimName)(claim);
|
|
66
|
+
}
|
|
67
|
+
function memoizedSchemaReader(reader) {
|
|
68
|
+
const schemas = new Map();
|
|
69
|
+
const ecosystems = new Map();
|
|
70
|
+
const once = (cache, id, read) => {
|
|
71
|
+
var _a;
|
|
72
|
+
const pending = (_a = cache.get(String(id))) !== null && _a !== void 0 ? _a : read();
|
|
73
|
+
cache.set(String(id), pending);
|
|
74
|
+
return pending;
|
|
75
|
+
};
|
|
76
|
+
return {
|
|
77
|
+
getCredentialSchema: id => once(schemas, id, () => reader.getCredentialSchema(id)),
|
|
78
|
+
getEcosystem: id => once(ecosystems, id, () => reader.getEcosystem(id)),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=credentialConfigurationBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentialConfigurationBuilder.js","sourceRoot":"","sources":["../../src/services/credentialConfigurationBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FAILURE_CACHE_MS = void 0;
|
|
4
|
+
exports.createTypeMetadataIntegrity = createTypeMetadataIntegrity;
|
|
5
|
+
const vs_agent_sdk_1 = require("@verana-labs/vs-agent-sdk");
|
|
6
|
+
exports.FAILURE_CACHE_MS = 5000;
|
|
7
|
+
function createTypeMetadataIntegrity() {
|
|
8
|
+
const digests = new Map();
|
|
9
|
+
const failures = new Map();
|
|
10
|
+
return {
|
|
11
|
+
digest(url) {
|
|
12
|
+
const cached = digests.get(url);
|
|
13
|
+
if (cached)
|
|
14
|
+
return cached;
|
|
15
|
+
const failed = failures.get(url);
|
|
16
|
+
if (failed && Date.now() - failed.at < exports.FAILURE_CACHE_MS)
|
|
17
|
+
return failed.failure;
|
|
18
|
+
const pending = (0, vs_agent_sdk_1.digestOfBoundedUri)(url);
|
|
19
|
+
digests.set(url, pending);
|
|
20
|
+
pending.catch(() => {
|
|
21
|
+
digests.delete(url);
|
|
22
|
+
failures.set(url, { at: Date.now(), failure: pending });
|
|
23
|
+
});
|
|
24
|
+
return pending;
|
|
25
|
+
},
|
|
26
|
+
invalidate(url) {
|
|
27
|
+
digests.delete(url);
|
|
28
|
+
failures.delete(url);
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=typeMetadataIntegrity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeMetadataIntegrity.js","sourceRoot":"","sources":["../../src/services/typeMetadataIntegrity.ts"],"names":[],"mappings":";;;AASA,kEAyBC;AAlCD,4DAA8D;AAEjD,QAAA,gBAAgB,GAAG,IAAK,CAAA;AAOrC,SAAgB,2BAA2B;IACzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAA;IAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoD,CAAA;IAE5E,OAAO;QACL,MAAM,CAAC,GAAG;YACR,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC/B,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAA;YAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAChC,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,wBAAgB;gBAAE,OAAO,MAAM,CAAC,OAAO,CAAA;YAE9E,MAAM,OAAO,GAAG,IAAA,iCAAkB,EAAC,GAAG,CAAC,CAAA;YACvC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;gBACjB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACnB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;YACzD,CAAC,CAAC,CAAA;YACF,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,UAAU,CAAC,GAAG;YACZ,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACnB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.verifyKeyBoundToDid = verifyKeyBoundToDid;
|
|
4
4
|
exports.findBoundVerificationMethodId = findBoundVerificationMethodId;
|
|
5
5
|
const core_1 = require("@credo-ts/core");
|
|
6
|
+
const vs_agent_sdk_1 = require("@verana-labs/vs-agent-sdk");
|
|
6
7
|
const DID_RESOLUTION_TIMEOUT_MS = 5000;
|
|
7
8
|
async function verifyKeyBoundToDid(agent, did, certificatePublicJwk, purposes) {
|
|
8
9
|
const lookup = await lookupBoundVerificationMethod(agent, did, certificatePublicJwk, purposes);
|
|
@@ -37,7 +38,7 @@ async function lookupBoundVerificationMethod(agent, did, certificatePublicJwk, p
|
|
|
37
38
|
}
|
|
38
39
|
async function resolveDidDocument(agent, did) {
|
|
39
40
|
var _a;
|
|
40
|
-
if (!
|
|
41
|
+
if (!isDidWebTarget(did))
|
|
41
42
|
return null;
|
|
42
43
|
try {
|
|
43
44
|
const resolution = await withTimeout(agent.dids.resolve(did, { useCache: false, persistInCache: false }), DID_RESOLUTION_TIMEOUT_MS);
|
|
@@ -67,35 +68,12 @@ function* verificationMethodsForPurposes(didDocument, purposes) {
|
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
|
-
function
|
|
71
|
-
const parsed = (0, core_1.tryParseDid)(did);
|
|
72
|
-
if (!parsed || parsed.did !== did)
|
|
73
|
-
return undefined;
|
|
74
|
-
const components = parsed.id.split(':');
|
|
75
|
-
const encodedHost = parsed.method === 'web'
|
|
76
|
-
? components[0]
|
|
77
|
-
: parsed.method === 'webvh' && components.length >= 2 && components[0]
|
|
78
|
-
? components[1]
|
|
79
|
-
: undefined;
|
|
80
|
-
if (!encodedHost)
|
|
81
|
-
return undefined;
|
|
71
|
+
function isDidWebTarget(did) {
|
|
82
72
|
try {
|
|
83
|
-
return
|
|
73
|
+
return (0, vs_agent_sdk_1.getDidWebHttpsBaseUrl)(did) !== undefined;
|
|
84
74
|
}
|
|
85
75
|
catch (_a) {
|
|
86
|
-
return
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
function canonicalHost(value) {
|
|
90
|
-
try {
|
|
91
|
-
const url = new URL(`https://${value}`);
|
|
92
|
-
if (!url.hostname || url.username || url.password || url.pathname !== '/' || url.search || url.hash) {
|
|
93
|
-
return undefined;
|
|
94
|
-
}
|
|
95
|
-
return url.host.toLowerCase();
|
|
96
|
-
}
|
|
97
|
-
catch (_a) {
|
|
98
|
-
return undefined;
|
|
76
|
+
return false;
|
|
99
77
|
}
|
|
100
78
|
}
|
|
101
79
|
async function withTimeout(operation, timeoutMs) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyBinding.js","sourceRoot":"","sources":["../../src/trust/keyBinding.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"keyBinding.js","sourceRoot":"","sources":["../../src/trust/keyBinding.ts"],"names":[],"mappings":"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"}
|
package/build/types.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export interface OpenId4VcCredentialConfiguration {
|
|
|
21
21
|
name: string;
|
|
22
22
|
description?: string;
|
|
23
23
|
vtjscId: string;
|
|
24
|
+
credentialSchemaId: number;
|
|
25
|
+
jsonSchema: string;
|
|
24
26
|
claims: string[];
|
|
25
27
|
disclosureFrame: string[];
|
|
26
28
|
}
|
|
@@ -36,7 +38,10 @@ export interface OpenId4VcConfigurationFile {
|
|
|
36
38
|
}
|
|
37
39
|
export declare const OPENID4VC_OPTIONS = "OPENID4VC_OPTIONS";
|
|
38
40
|
export declare const OPENID4VC_ISSUER_SINK = "OPENID4VC_ISSUER_SINK";
|
|
39
|
-
export
|
|
41
|
+
export interface OpenId4VcIssuerRuntime extends OpenId4VcIssuerRequestMapper {
|
|
42
|
+
refreshCredentialConfigurations(updatedCredentialSchemaId?: number): Promise<void>;
|
|
43
|
+
}
|
|
44
|
+
export type OpenId4VcIssuerSink = (service: OpenId4VcIssuerRuntime) => void;
|
|
40
45
|
export interface OpenId4VcPluginOptions extends OpenId4VcConfigurationFile {
|
|
41
46
|
publicApiBaseUrl: string;
|
|
42
47
|
credentialConfigurations: OpenId4VcCredentialConfiguration[];
|
package/build/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
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"}
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"default": "./build/index.js"
|
|
10
10
|
}
|
|
11
11
|
},
|
|
12
|
-
"version": "2.0.0-dev.
|
|
12
|
+
"version": "2.0.0-dev.74",
|
|
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.
|
|
33
|
+
"@verana-labs/vs-agent-sdk": "2.0.0-dev.74"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"@credo-ts/core": "0.7.1-pr-2704-20260909134930"
|