@sphereon/ssi-sdk.siopv2-oid4vp-op-auth 0.32.1-feature.VDX.341.53 → 0.32.1-feature.VDX.341.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/DidAuthSiopOpAuthenticator.d.ts +3 -1
- package/dist/agent/DidAuthSiopOpAuthenticator.d.ts.map +1 -1
- package/dist/agent/DidAuthSiopOpAuthenticator.js +15 -8
- package/dist/agent/DidAuthSiopOpAuthenticator.js.map +1 -1
- package/dist/services/Siopv2MachineService.d.ts +2 -0
- package/dist/services/Siopv2MachineService.d.ts.map +1 -1
- package/dist/services/Siopv2MachineService.js +81 -81
- package/dist/services/Siopv2MachineService.js.map +1 -1
- package/dist/utils/CredentialUtils.d.ts +23 -0
- package/dist/utils/CredentialUtils.d.ts.map +1 -0
- package/dist/utils/CredentialUtils.js +65 -0
- package/dist/utils/CredentialUtils.js.map +1 -0
- package/dist/utils/dcql.d.ts +5 -0
- package/dist/utils/dcql.d.ts.map +1 -0
- package/dist/utils/dcql.js +35 -0
- package/dist/utils/dcql.js.map +1 -0
- package/package.json +19 -19
- package/src/agent/DidAuthSiopOpAuthenticator.ts +38 -35
- package/src/services/Siopv2MachineService.ts +95 -90
- package/src/types/IDidAuthSiopOpAuthenticator.ts +1 -1
- package/src/utils/CredentialUtils.ts +71 -0
- package/src/utils/dcql.ts +34 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PresentationSignCallback, VerifiedAuthorizationRequest } from '@sphereon/did-auth-siop';
|
|
2
|
+
import { Hasher } from '@sphereon/ssi-types';
|
|
2
3
|
import { IAgentPlugin } from '@veramo/core';
|
|
3
4
|
import { DidAuthSiopOpAuthenticatorOptions, RequiredContext } from '../index';
|
|
4
5
|
import { IDidAuthSiopOpAuthenticator } from '../types/IDidAuthSiopOpAuthenticator';
|
|
@@ -12,7 +13,8 @@ export declare class DidAuthSiopOpAuthenticator implements IAgentPlugin {
|
|
|
12
13
|
private readonly onContactIdentityCreated?;
|
|
13
14
|
private readonly onIdentifierCreated?;
|
|
14
15
|
private readonly eventEmitter?;
|
|
15
|
-
|
|
16
|
+
private readonly hasher;
|
|
17
|
+
constructor(presentationSignCallback?: PresentationSignCallback, customApprovals?: Record<string, (verifiedAuthorizationRequest: VerifiedAuthorizationRequest, sessionId: string) => Promise<void>>, options?: DidAuthSiopOpAuthenticatorOptions, hasher?: Hasher);
|
|
16
18
|
onEvent(event: any, context: RequiredContext): Promise<void>;
|
|
17
19
|
private siopGetOPSession;
|
|
18
20
|
private siopRegisterOPSession;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DidAuthSiopOpAuthenticator.d.ts","sourceRoot":"","sources":["../../src/agent/DidAuthSiopOpAuthenticator.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"DidAuthSiopOpAuthenticator.d.ts","sourceRoot":"","sources":["../../src/agent/DidAuthSiopOpAuthenticator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,wBAAwB,EAAoB,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AAYnI,OAAO,EAAE,MAAM,EAAW,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EACL,iCAAiC,EAIjC,eAAe,EAKhB,MAAM,UAAU,CAAA;AAIjB,OAAO,EACL,2BAA2B,EAM5B,MAAM,sCAAsC,CAAA;AAwB7C,eAAO,MAAM,iCAAiC,EAAE,KAAK,CAAC,MAAM,CAW3D,CAAA;AAED,qBAAa,0BAA2B,YAAW,YAAY;IAC7D,QAAQ,CAAC,MAAM,MAAqC;IACpD,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAc5C;IAED,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkH;IAClJ,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAA0B;IAEpE,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAuD;IACjG,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAkD;IACvF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAGzC,wBAAwB,CAAC,EAAE,wBAAwB,EACnD,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,4BAA4B,EAAE,4BAA4B,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,EAClI,OAAO,CAAC,EAAE,iCAAiC,EAC3C,MAAM,CAAC,EAAE,MAAM;IAYJ,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAa3D,gBAAgB;YAShB,qBAAqB;YAcrB,mBAAmB;YAInB,4BAA4B;YAQ5B,0BAA0B;YAI1B,yBAAyB;YAyBzB,gBAAgB;YAehB,kBAAkB;YAgDlB,sBAAsB;YAsBtB,mBAAmB;YAuBnB,sBAAsB;YAuCtB,gBAAgB;IAqG9B,OAAO,CAAC,kBAAkB,CAMzB;IAED,OAAO,CAAC,mBAAmB,CAM1B;IAED,OAAO,CAAC,yBAAyB,CAKhC;YAEa,4BAA4B;CAgB3C"}
|
|
@@ -37,7 +37,7 @@ exports.didAuthSiopOpAuthenticatorMethods = [
|
|
|
37
37
|
'createVerifiablePresentation',
|
|
38
38
|
];
|
|
39
39
|
class DidAuthSiopOpAuthenticator {
|
|
40
|
-
constructor(presentationSignCallback, customApprovals, options) {
|
|
40
|
+
constructor(presentationSignCallback, customApprovals, options, hasher) {
|
|
41
41
|
this.schema = index_1.schema.IDidAuthSiopOpAuthenticator;
|
|
42
42
|
this.methods = {
|
|
43
43
|
siopGetOPSession: this.siopGetOPSession.bind(this),
|
|
@@ -54,16 +54,18 @@ class DidAuthSiopOpAuthenticator {
|
|
|
54
54
|
siopGetSelectableCredentials: this.siopGetSelectableCredentials.bind(this),
|
|
55
55
|
};
|
|
56
56
|
this.hasMDocCredentials = (credentials) => {
|
|
57
|
-
return credentials.some(credential => credential.digitalCredential.documentFormat === ssi_sdk_data_store_1.CredentialDocumentFormat.MSO_MDOC &&
|
|
57
|
+
return credentials.some((credential) => credential.digitalCredential.documentFormat === ssi_sdk_data_store_1.CredentialDocumentFormat.MSO_MDOC &&
|
|
58
58
|
credential.digitalCredential.documentType === ssi_sdk_data_store_1.DocumentType.VC);
|
|
59
59
|
};
|
|
60
60
|
this.hasSdJwtCredentials = (credentials) => {
|
|
61
|
-
return credentials.some(credential => credential.digitalCredential.documentFormat === ssi_sdk_data_store_1.CredentialDocumentFormat.SD_JWT &&
|
|
61
|
+
return credentials.some((credential) => credential.digitalCredential.documentFormat === ssi_sdk_data_store_1.CredentialDocumentFormat.SD_JWT &&
|
|
62
62
|
credential.digitalCredential.documentType === ssi_sdk_data_store_1.DocumentType.VC);
|
|
63
63
|
};
|
|
64
64
|
this.retrieveEncodedCredential = (credential) => {
|
|
65
65
|
// FIXME Remove any
|
|
66
|
-
return credential.original !== undefined && credential.original !== null
|
|
66
|
+
return credential.original !== undefined && credential.original !== null
|
|
67
|
+
? credential.original
|
|
68
|
+
: credential.compactSdJwtVc;
|
|
67
69
|
};
|
|
68
70
|
const { onContactIdentityCreated, onIdentifierCreated } = options !== null && options !== void 0 ? options : {};
|
|
69
71
|
this.onContactIdentityCreated = onContactIdentityCreated;
|
|
@@ -71,6 +73,7 @@ class DidAuthSiopOpAuthenticator {
|
|
|
71
73
|
this.sessions = new Map();
|
|
72
74
|
this.customApprovals = customApprovals || {};
|
|
73
75
|
this.presentationSignCallback = presentationSignCallback;
|
|
76
|
+
this.hasher = hasher;
|
|
74
77
|
}
|
|
75
78
|
onEvent(event, context) {
|
|
76
79
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -191,7 +194,7 @@ class DidAuthSiopOpAuthenticator {
|
|
|
191
194
|
verifiedAuthorizationRequest.presentationDefinitions.length > 0)
|
|
192
195
|
? verifiedAuthorizationRequest.presentationDefinitions
|
|
193
196
|
: undefined,
|
|
194
|
-
dcqlQuery: verifiedAuthorizationRequest.dcqlQuery
|
|
197
|
+
dcqlQuery: verifiedAuthorizationRequest.dcqlQuery,
|
|
195
198
|
};
|
|
196
199
|
});
|
|
197
200
|
}
|
|
@@ -310,7 +313,11 @@ class DidAuthSiopOpAuthenticator {
|
|
|
310
313
|
//TODO Only SD-JWT and MSO MDOC are supported at the moment
|
|
311
314
|
if (this.hasMDocCredentials(selectedCredentials) || this.hasSdJwtCredentials(selectedCredentials)) {
|
|
312
315
|
selectedCredentials.forEach((vc) => {
|
|
313
|
-
const payload = vc['decodedPayload'] !== undefined && vc['decodedPayload'] !== null
|
|
316
|
+
const payload = vc['decodedPayload'] !== undefined && vc['decodedPayload'] !== null
|
|
317
|
+
? vc.decodedPayload
|
|
318
|
+
: vc['decoded'] !== undefined && vc['decoded'] !== null
|
|
319
|
+
? vc.decoded
|
|
320
|
+
: undefined;
|
|
314
321
|
const vct = payload === null || payload === void 0 ? void 0 : payload.vct;
|
|
315
322
|
const docType = payload === null || payload === void 0 ? void 0 : payload.docType;
|
|
316
323
|
const namespaces = payload === null || payload === void 0 ? void 0 : payload.namespaces;
|
|
@@ -318,7 +325,7 @@ class DidAuthSiopOpAuthenticator {
|
|
|
318
325
|
claims: payload,
|
|
319
326
|
vct,
|
|
320
327
|
docType,
|
|
321
|
-
namespaces
|
|
328
|
+
namespaces,
|
|
322
329
|
};
|
|
323
330
|
dcqlCredentialsWithCredentials.set(result, vc);
|
|
324
331
|
});
|
|
@@ -331,7 +338,7 @@ class DidAuthSiopOpAuthenticator {
|
|
|
331
338
|
}
|
|
332
339
|
}
|
|
333
340
|
}
|
|
334
|
-
const response = yield (0, Siopv2MachineService_1.siopSendAuthorizationResponse)(ssi_sdk_data_store_1.ConnectionType.SIOPv2_OpenID4VP, Object.assign(Object.assign({ sessionId: didAuthConfig.sessionId }, (args.idOpts && { idOpts: args.idOpts })), (authorizationRequestData.presentationDefinitions !== undefined && { verifiableCredentialsWithDefinition })), context);
|
|
341
|
+
const response = yield (0, Siopv2MachineService_1.siopSendAuthorizationResponse)(ssi_sdk_data_store_1.ConnectionType.SIOPv2_OpenID4VP, Object.assign(Object.assign(Object.assign({ sessionId: didAuthConfig.sessionId }, (args.idOpts && { idOpts: args.idOpts })), (authorizationRequestData.presentationDefinitions !== undefined && { verifiableCredentialsWithDefinition })), { hasher: this.hasher }), context);
|
|
335
342
|
const contentType = (response === null || response === void 0 ? void 0 : response.headers.get('content-type')) || '';
|
|
336
343
|
let responseBody = null;
|
|
337
344
|
const text = yield (response === null || response === void 0 ? void 0 : response.text());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DidAuthSiopOpAuthenticator.js","sourceRoot":"","sources":["../../src/agent/DidAuthSiopOpAuthenticator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DidAuthSiopOpAuthenticator.js","sourceRoot":"","sources":["../../src/agent/DidAuthSiopOpAuthenticator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IPresentationDefinition } from '@sphereon/pex';
|
|
2
2
|
import { ManagedIdentifierOptsOrResult } from '@sphereon/ssi-sdk-ext.identifier-resolution';
|
|
3
3
|
import { ConnectionType } from '@sphereon/ssi-sdk.data-store';
|
|
4
|
+
import { Hasher } from '@sphereon/ssi-types';
|
|
4
5
|
import { RequiredContext, SelectableCredentialsMap, VerifiableCredentialsWithDefinition } from '../types';
|
|
5
6
|
import { DcqlQuery } from 'dcql';
|
|
6
7
|
export declare const logger: import("@sphereon/ssi-types").ISimpleLogger<unknown>;
|
|
@@ -9,6 +10,7 @@ export declare const siopSendAuthorizationResponse: (connectionType: ConnectionT
|
|
|
9
10
|
verifiableCredentialsWithDefinition?: VerifiableCredentialsWithDefinition[];
|
|
10
11
|
idOpts?: ManagedIdentifierOptsOrResult;
|
|
11
12
|
dcqlQuery?: DcqlQuery;
|
|
13
|
+
hasher?: Hasher;
|
|
12
14
|
}, context: RequiredContext) => Promise<Response | undefined>;
|
|
13
15
|
export declare const getSelectableCredentials: (presentationDefinition: IPresentationDefinition, context: RequiredContext) => Promise<SelectableCredentialsMap>;
|
|
14
16
|
export declare const translateCorrelationIdToName: (correlationId: string, context: RequiredContext) => Promise<string | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Siopv2MachineService.d.ts","sourceRoot":"","sources":["../../src/services/Siopv2MachineService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAO,MAAM,eAAe,CAAA;AAE5D,OAAO,EAA4B,6BAA6B,EAAE,MAAM,6CAA6C,CAAA;AAErH,OAAO,EAAE,cAAc,EAAkB,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"Siopv2MachineService.d.ts","sourceRoot":"","sources":["../../src/services/Siopv2MachineService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAO,MAAM,eAAe,CAAA;AAE5D,OAAO,EAA4B,6BAA6B,EAAE,MAAM,6CAA6C,CAAA;AAErH,OAAO,EAAE,cAAc,EAAkB,MAAM,8BAA8B,CAAA;AAC7E,OAAO,EAAoB,MAAM,EAAiE,MAAM,qBAAqB,CAAA;AAE7H,OAAO,EAGL,eAAe,EAEf,wBAAwB,EAGxB,mCAAmC,EAEpC,MAAM,UAAU,CAAA;AAIjB,OAAO,EAAkB,SAAS,EAAgD,MAAM,MAAM,CAAA;AAI9F,eAAO,MAAM,MAAM,sDAAwC,CAAA;AAqB3D,eAAO,MAAM,6BAA6B,mBACxB,cAAc,QACxB;IACJ,SAAS,EAAE,MAAM,CAAA;IACjB,mCAAmC,CAAC,EAAE,mCAAmC,EAAE,CAAA;IAC3E,MAAM,CAAC,EAAE,6BAA6B,CAAA;IACtC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,WACQ,eAAe,kCAqNzB,CAAA;AAYD,eAAO,MAAM,wBAAwB,2BACX,uBAAuB,WACtC,eAAe,KACvB,OAAO,CAAC,wBAAwB,CA8ClC,CAAA;AAED,eAAO,MAAM,4BAA4B,kBAAyB,MAAM,WAAW,eAAe,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAY9H,CAAA"}
|
|
@@ -20,6 +20,8 @@ const types_1 = require("../types");
|
|
|
20
20
|
const ssi_sdk_ext_did_utils_1 = require("@sphereon/ssi-sdk-ext.did-utils");
|
|
21
21
|
const ssi_sdk_core_1 = require("@sphereon/ssi-sdk.core");
|
|
22
22
|
const dcql_1 = require("dcql");
|
|
23
|
+
const dcql_2 = require("../utils/dcql");
|
|
24
|
+
const CredentialUtils_1 = require("../utils/CredentialUtils");
|
|
23
25
|
exports.logger = ssi_types_1.Loggers.DEFAULT.get(types_1.LOGGER_NAMESPACE);
|
|
24
26
|
const createEbsiIdentifier = (agentContext) => __awaiter(void 0, void 0, void 0, function* () {
|
|
25
27
|
exports.logger.log(`No EBSI key present yet. Creating a new one...`);
|
|
@@ -140,93 +142,91 @@ const siopSendAuthorizationResponse = (connectionType, args, context) => __await
|
|
|
140
142
|
// todo: Change issuer value in case we do not use identifier. Use key.meta.jwkThumbprint then
|
|
141
143
|
responseSignerOpts: idOpts }));
|
|
142
144
|
}
|
|
143
|
-
else if (
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}
|
|
154
|
-
let identifier;
|
|
155
|
-
const digitalCredential = firstUniqueDC.digitalCredential;
|
|
156
|
-
const firstVC = firstUniqueDC.uniformVerifiableCredential;
|
|
157
|
-
const holder = ssi_types_1.CredentialMapper.isSdJwtDecodedCredential(firstVC)
|
|
158
|
-
? ((_l = firstVC.decodedPayload.cnf) === null || _l === void 0 ? void 0 : _l.jwk)
|
|
159
|
-
? //TODO SDK-19: convert the JWK to hex and search for the appropriate key and associated DID
|
|
160
|
-
//doesn't apply to did:jwk only, as you can represent any DID key as a JWK. So whenever you encounter a JWK it doesn't mean it had to come from a did:jwk in the system. It just can always be represented as a did:jwk
|
|
161
|
-
`did:jwk:${(0, ssi_sdk_core_1.encodeJoseBlob)((_m = firstVC.decodedPayload.cnf) === null || _m === void 0 ? void 0 : _m.jwk)}#0`
|
|
162
|
-
: firstVC.decodedPayload.sub
|
|
163
|
-
: Array.isArray(firstVC.credentialSubject)
|
|
164
|
-
? firstVC.credentialSubject[0].id
|
|
165
|
-
: firstVC.credentialSubject.id;
|
|
166
|
-
if (!digitalCredential.kmsKeyRef) {
|
|
167
|
-
// In case the store does not have the kmsKeyRef lets search for the holder
|
|
168
|
-
if (!holder) {
|
|
169
|
-
return Promise.reject(`No holder found and no kmsKeyRef in DB. Cannot determine identifier to use`);
|
|
145
|
+
else if (request.dcqlQuery) {
|
|
146
|
+
if (args.verifiableCredentialsWithDefinition !== undefined && args.verifiableCredentialsWithDefinition !== null) {
|
|
147
|
+
const vcs = args.verifiableCredentialsWithDefinition.flatMap((vcd) => vcd.credentials);
|
|
148
|
+
const domain = (_k = (_j = (yield request.authorizationRequest.getMergedProperty('client_id'))) !== null && _j !== void 0 ? _j : request.issuer) !== null && _k !== void 0 ? _k : (request.versions.includes(did_auth_siop_1.SupportedVersion.JWT_VC_PRESENTATION_PROFILE_v1)
|
|
149
|
+
? 'https://self-issued.me/v2/openid-vc'
|
|
150
|
+
: 'https://self-issued.me/v2');
|
|
151
|
+
exports.logger.debug(`NONCE: ${session.nonce}, domain: ${domain}`);
|
|
152
|
+
const firstUniqueDC = vcs[0];
|
|
153
|
+
if (typeof firstUniqueDC !== 'object' || !('digitalCredential' in firstUniqueDC)) {
|
|
154
|
+
return Promise.reject(Error('SiopMachine only supports UniqueDigitalCredentials for now'));
|
|
170
155
|
}
|
|
171
|
-
|
|
172
|
-
|
|
156
|
+
let identifier;
|
|
157
|
+
const digitalCredential = firstUniqueDC.digitalCredential;
|
|
158
|
+
const firstVC = firstUniqueDC.uniformVerifiableCredential;
|
|
159
|
+
const holder = ssi_types_1.CredentialMapper.isSdJwtDecodedCredential(firstVC)
|
|
160
|
+
? ((_l = firstVC.decodedPayload.cnf) === null || _l === void 0 ? void 0 : _l.jwk)
|
|
161
|
+
? //TODO SDK-19: convert the JWK to hex and search for the appropriate key and associated DID
|
|
162
|
+
//doesn't apply to did:jwk only, as you can represent any DID key as a JWK. So whenever you encounter a JWK it doesn't mean it had to come from a did:jwk in the system. It just can always be represented as a did:jwk
|
|
163
|
+
`did:jwk:${(0, ssi_sdk_core_1.encodeJoseBlob)((_m = firstVC.decodedPayload.cnf) === null || _m === void 0 ? void 0 : _m.jwk)}#0`
|
|
164
|
+
: firstVC.decodedPayload.sub
|
|
165
|
+
: Array.isArray(firstVC.credentialSubject)
|
|
166
|
+
? firstVC.credentialSubject[0].id
|
|
167
|
+
: firstVC.credentialSubject.id;
|
|
168
|
+
if (!digitalCredential.kmsKeyRef) {
|
|
169
|
+
// In case the store does not have the kmsKeyRef lets search for the holder
|
|
170
|
+
if (!holder) {
|
|
171
|
+
return Promise.reject(`No holder found and no kmsKeyRef in DB. Cannot determine identifier to use`);
|
|
172
|
+
}
|
|
173
|
+
try {
|
|
174
|
+
identifier = yield session.context.agent.identifierManagedGet({ identifier: holder });
|
|
175
|
+
}
|
|
176
|
+
catch (e) {
|
|
177
|
+
exports.logger.debug(`Holder DID not found: ${holder}`);
|
|
178
|
+
throw e;
|
|
179
|
+
}
|
|
173
180
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
181
|
+
else if ((0, ssi_sdk_ext_identifier_resolution_1.isOID4VCIssuerIdentifier)(digitalCredential.kmsKeyRef)) {
|
|
182
|
+
identifier = yield session.context.agent.identifierManagedGetByOID4VCIssuer({
|
|
183
|
+
identifier: firstUniqueDC.digitalCredential.kmsKeyRef,
|
|
184
|
+
});
|
|
177
185
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
186
|
+
else {
|
|
187
|
+
switch (digitalCredential.subjectCorrelationType) {
|
|
188
|
+
case 'DID':
|
|
189
|
+
identifier = yield session.context.agent.identifierManagedGetByDid({
|
|
190
|
+
identifier: (_o = digitalCredential.subjectCorrelationId) !== null && _o !== void 0 ? _o : holder,
|
|
191
|
+
kmsKeyRef: digitalCredential.kmsKeyRef,
|
|
192
|
+
});
|
|
193
|
+
break;
|
|
194
|
+
// TODO other implementations?
|
|
195
|
+
default:
|
|
196
|
+
// Since we are using the kmsKeyRef we will find the KID regardless of the identifier. We set it for later access though
|
|
197
|
+
identifier = yield session.context.agent.identifierManagedGetByKid({
|
|
198
|
+
identifier: (_q = (_p = digitalCredential.subjectCorrelationId) !== null && _p !== void 0 ? _p : holder) !== null && _q !== void 0 ? _q : digitalCredential.kmsKeyRef,
|
|
199
|
+
kmsKeyRef: digitalCredential.kmsKeyRef,
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
console.log(`Identifier`, identifier);
|
|
204
|
+
const dcqlRepresentations = [];
|
|
205
|
+
vcs.forEach((vc) => {
|
|
206
|
+
const rep = (0, dcql_2.convertToDcqlCredentials)(vc, args.hasher);
|
|
207
|
+
if (rep) {
|
|
208
|
+
dcqlRepresentations.push(rep);
|
|
209
|
+
}
|
|
182
210
|
});
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
kmsKeyRef: digitalCredential.kmsKeyRef,
|
|
198
|
-
});
|
|
211
|
+
const queryResult = dcql_1.DcqlQuery.query(request.dcqlQuery, dcqlRepresentations);
|
|
212
|
+
const presentation = {};
|
|
213
|
+
for (const [key, value] of Object.entries(queryResult.credential_matches)) {
|
|
214
|
+
const allMatches = Array.isArray(value) ? value : [value];
|
|
215
|
+
allMatches.forEach((match) => {
|
|
216
|
+
if (match.success) {
|
|
217
|
+
const originalCredential = (0, CredentialUtils_1.getOriginalVerifiableCredential)(vcs[match.credential_index]);
|
|
218
|
+
if (!originalCredential) {
|
|
219
|
+
throw new Error(`Index ${match.credential_index} out of range in credentials array`);
|
|
220
|
+
}
|
|
221
|
+
presentation[key] =
|
|
222
|
+
originalCredential['compactSdJwtVc'] !== undefined ? originalCredential.compactSdJwtVc : originalCredential;
|
|
223
|
+
}
|
|
224
|
+
});
|
|
199
225
|
}
|
|
226
|
+
const response = session.sendAuthorizationResponse(Object.assign({ responseSignerOpts: identifier }, { dcqlQuery: { dcqlPresentation: dcql_1.DcqlPresentation.parse(presentation) } }));
|
|
227
|
+
exports.logger.debug(`Response: `, response);
|
|
228
|
+
return response;
|
|
200
229
|
}
|
|
201
|
-
if (identifier === undefined && idOpts !== undefined && (yield hasEbsiClient(request.authorizationRequest))) {
|
|
202
|
-
identifier = yield createEbsiIdentifier(agentContext);
|
|
203
|
-
}
|
|
204
|
-
exports.logger.debug(`Identifier`, identifier);
|
|
205
|
-
const dcqlCredentialToCredential = new Map();
|
|
206
|
-
vcs.forEach((vc) => {
|
|
207
|
-
const payload = vc['decodedPayload'] !== undefined && vc['decodedPayload'] !== null ? vc.decodedPayload : vc;
|
|
208
|
-
const vct = payload === null || payload === void 0 ? void 0 : payload.vct;
|
|
209
|
-
const docType = payload === null || payload === void 0 ? void 0 : payload.docType;
|
|
210
|
-
const namespaces = payload === null || payload === void 0 ? void 0 : payload.namespaces;
|
|
211
|
-
const result = {
|
|
212
|
-
claims: payload,
|
|
213
|
-
vct,
|
|
214
|
-
docType,
|
|
215
|
-
namespaces
|
|
216
|
-
};
|
|
217
|
-
dcqlCredentialToCredential.set(result, vc);
|
|
218
|
-
});
|
|
219
|
-
const queryResult = dcql_1.DcqlQuery.query(request.dcqlQuery, Array.from(dcqlCredentialToCredential.keys()));
|
|
220
|
-
const presentation = {};
|
|
221
|
-
for (const [key, value] of Object.entries(queryResult.credential_matches)) {
|
|
222
|
-
const credential = dcqlCredentialToCredential.get(value.output);
|
|
223
|
-
presentation[key] = credential.originalVerifiableCredential['compactSdJwtVc'] !== undefined ? credential.originalVerifiableCredential.compactSdJwtVc : credential.originalCredential.original;
|
|
224
|
-
}
|
|
225
|
-
return yield session.sendAuthorizationResponse({
|
|
226
|
-
// todo: Change issuer value in case we do not use identifier. Use key.meta.jwkThumbprint then
|
|
227
|
-
responseSignerOpts: idOpts,
|
|
228
|
-
dcqlQuery: { encodedPresentationRecord: dcql_1.DcqlPresentationRecord.parse(presentation) }
|
|
229
|
-
});
|
|
230
230
|
}
|
|
231
231
|
return undefined;
|
|
232
232
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Siopv2MachineService.js","sourceRoot":"","sources":["../../src/services/Siopv2MachineService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Siopv2MachineService.js","sourceRoot":"","sources":["../../src/services/Siopv2MachineService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ICredential, OriginalVerifiableCredential } from '@sphereon/ssi-types';
|
|
2
|
+
import { VerifiableCredential } from '@veramo/core';
|
|
3
|
+
import { UniqueDigitalCredential } from '@sphereon/ssi-sdk.credential-store';
|
|
4
|
+
/**
|
|
5
|
+
* Return the type(s) of a VC minus the VerifiableCredential type which should always be present
|
|
6
|
+
* @param credential The input credential
|
|
7
|
+
*/
|
|
8
|
+
export declare const getCredentialTypeAsString: (credential: ICredential | VerifiableCredential) => string;
|
|
9
|
+
/**
|
|
10
|
+
* Returns a Unique Verifiable Credential (with hash) as stored in Veramo, based upon matching the id of the input VC or the proof value of the input VC
|
|
11
|
+
* @param uniqueVCs The Unique VCs to search in
|
|
12
|
+
* @param searchVC The VC to search for in the unique VCs array
|
|
13
|
+
*/
|
|
14
|
+
export declare const getMatchingUniqueDigitalCredential: (uniqueVCs: UniqueDigitalCredential[], searchVC: OriginalVerifiableCredential) => UniqueDigitalCredential | undefined;
|
|
15
|
+
type InputCredential = UniqueDigitalCredential | VerifiableCredential | ICredential | OriginalVerifiableCredential;
|
|
16
|
+
/**
|
|
17
|
+
* Get an original verifiable credential. Maps to wrapped Verifiable Credential first, to get an original JWT as Veramo stores these with a special proof value
|
|
18
|
+
* @param credential The input VC
|
|
19
|
+
*/
|
|
20
|
+
export declare const getOriginalVerifiableCredential: (credential: InputCredential) => OriginalVerifiableCredential;
|
|
21
|
+
export declare const isUniqueDigitalCredential: (credential: InputCredential) => credential is UniqueDigitalCredential;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=CredentialUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CredentialUtils.d.ts","sourceRoot":"","sources":["../../src/utils/CredentialUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,WAAW,EAAyB,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AAChI,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAE5E;;;GAGG;AACH,eAAO,MAAM,yBAAyB,eAAgB,WAAW,GAAG,oBAAoB,KAAG,MAO1F,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,cAClC,uBAAuB,EAAE,YAC1B,4BAA4B,KACrC,uBAAuB,GAAG,SAe5B,CAAA;AAED,KAAK,eAAe,GAAG,uBAAuB,GAAG,oBAAoB,GAAG,WAAW,GAAG,4BAA4B,CAAA;AAElH;;;GAGG;AAEH,eAAO,MAAM,+BAA+B,eAAgB,eAAe,KAAG,4BAS7E,CAAA;AAUD,eAAO,MAAM,yBAAyB,eAAgB,eAAe,KAAG,UAAU,IAAI,uBAErF,CAAA"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isUniqueDigitalCredential = exports.getOriginalVerifiableCredential = exports.getMatchingUniqueDigitalCredential = exports.getCredentialTypeAsString = void 0;
|
|
4
|
+
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
5
|
+
/**
|
|
6
|
+
* Return the type(s) of a VC minus the VerifiableCredential type which should always be present
|
|
7
|
+
* @param credential The input credential
|
|
8
|
+
*/
|
|
9
|
+
const getCredentialTypeAsString = (credential) => {
|
|
10
|
+
if (!credential.type) {
|
|
11
|
+
return 'Verifiable Credential';
|
|
12
|
+
}
|
|
13
|
+
else if (typeof credential.type === 'string') {
|
|
14
|
+
return credential.type;
|
|
15
|
+
}
|
|
16
|
+
return credential.type.filter((type) => type !== 'VerifiableCredential').join(', ');
|
|
17
|
+
};
|
|
18
|
+
exports.getCredentialTypeAsString = getCredentialTypeAsString;
|
|
19
|
+
/**
|
|
20
|
+
* Returns a Unique Verifiable Credential (with hash) as stored in Veramo, based upon matching the id of the input VC or the proof value of the input VC
|
|
21
|
+
* @param uniqueVCs The Unique VCs to search in
|
|
22
|
+
* @param searchVC The VC to search for in the unique VCs array
|
|
23
|
+
*/
|
|
24
|
+
const getMatchingUniqueDigitalCredential = (uniqueVCs, searchVC) => {
|
|
25
|
+
// Since an ID is optional in a VC according to VCDM, and we really need the matches, we have a fallback match on something which is guaranteed to be unique for any VC (the proof(s))
|
|
26
|
+
return uniqueVCs.find((uniqueVC) => {
|
|
27
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
28
|
+
return (typeof searchVC !== 'string' &&
|
|
29
|
+
(uniqueVC.id === searchVC.id ||
|
|
30
|
+
uniqueVC.originalVerifiableCredential.proof === searchVC.proof)) ||
|
|
31
|
+
(typeof searchVC === 'string' && ((_b = (_a = uniqueVC.uniformVerifiableCredential) === null || _a === void 0 ? void 0 : _a.proof) === null || _b === void 0 ? void 0 : _b.jwt) === searchVC) ||
|
|
32
|
+
// We are ignoring the signature of the sd-jwt as PEX signs the vc again and it will not match anymore with the jwt in the proof of the stored jsonld vc
|
|
33
|
+
(typeof searchVC === 'string' &&
|
|
34
|
+
ssi_types_1.CredentialMapper.isSdJwtEncoded(searchVC) &&
|
|
35
|
+
((_c = uniqueVC.uniformVerifiableCredential) === null || _c === void 0 ? void 0 : _c.proof) &&
|
|
36
|
+
'jwt' in uniqueVC.uniformVerifiableCredential.proof &&
|
|
37
|
+
((_f = (_e = (_d = uniqueVC.uniformVerifiableCredential.proof.jwt) === null || _d === void 0 ? void 0 : _d.split('.')) === null || _e === void 0 ? void 0 : _e.slice(0, 2)) === null || _f === void 0 ? void 0 : _f.join('.')) === ((_h = (_g = searchVC.split('.')) === null || _g === void 0 ? void 0 : _g.slice(0, 2)) === null || _h === void 0 ? void 0 : _h.join('.')));
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
exports.getMatchingUniqueDigitalCredential = getMatchingUniqueDigitalCredential;
|
|
41
|
+
/**
|
|
42
|
+
* Get an original verifiable credential. Maps to wrapped Verifiable Credential first, to get an original JWT as Veramo stores these with a special proof value
|
|
43
|
+
* @param credential The input VC
|
|
44
|
+
*/
|
|
45
|
+
const getOriginalVerifiableCredential = (credential) => {
|
|
46
|
+
if ((0, exports.isUniqueDigitalCredential)(credential)) {
|
|
47
|
+
if (!credential.originalVerifiableCredential) {
|
|
48
|
+
throw new Error('originalVerifiableCredential is not defined in UniqueDigitalCredential');
|
|
49
|
+
}
|
|
50
|
+
return getCredentialFromProofOrWrapped(credential.originalVerifiableCredential);
|
|
51
|
+
}
|
|
52
|
+
return getCredentialFromProofOrWrapped(credential);
|
|
53
|
+
};
|
|
54
|
+
exports.getOriginalVerifiableCredential = getOriginalVerifiableCredential;
|
|
55
|
+
const getCredentialFromProofOrWrapped = (cred, hasher) => {
|
|
56
|
+
if (typeof cred === 'object' && 'proof' in cred && 'jwt' in cred.proof && ssi_types_1.CredentialMapper.isSdJwtEncoded(cred.proof.jwt)) {
|
|
57
|
+
return cred.proof.jwt;
|
|
58
|
+
}
|
|
59
|
+
return ssi_types_1.CredentialMapper.toWrappedVerifiableCredential(cred, { hasher }).original;
|
|
60
|
+
};
|
|
61
|
+
const isUniqueDigitalCredential = (credential) => {
|
|
62
|
+
return credential.digitalCredential !== undefined;
|
|
63
|
+
};
|
|
64
|
+
exports.isUniqueDigitalCredential = isUniqueDigitalCredential;
|
|
65
|
+
//# sourceMappingURL=CredentialUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CredentialUtils.js","sourceRoot":"","sources":["../../src/utils/CredentialUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { UniqueDigitalCredential } from '@sphereon/ssi-sdk.credential-store';
|
|
2
|
+
import { DcqlCredential } from 'dcql';
|
|
3
|
+
import { Hasher, OriginalVerifiableCredential } from '@sphereon/ssi-types';
|
|
4
|
+
export declare function convertToDcqlCredentials(credential: UniqueDigitalCredential | OriginalVerifiableCredential, hasher?: Hasher): DcqlCredential;
|
|
5
|
+
//# sourceMappingURL=dcql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dcql.d.ts","sourceRoot":"","sources":["../../src/utils/dcql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAC5E,OAAO,EAAE,cAAc,EAA8C,MAAM,MAAM,CAAA;AACjF,OAAO,EAAoB,MAAM,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AAG5F,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,uBAAuB,GAAG,4BAA4B,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CA4B5I"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertToDcqlCredentials = convertToDcqlCredentials;
|
|
4
|
+
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
5
|
+
const CredentialUtils_1 = require("./CredentialUtils");
|
|
6
|
+
function convertToDcqlCredentials(credential, hasher) {
|
|
7
|
+
let payload;
|
|
8
|
+
if ((0, CredentialUtils_1.isUniqueDigitalCredential)(credential)) {
|
|
9
|
+
if (!credential.originalVerifiableCredential) {
|
|
10
|
+
throw new Error('originalVerifiableCredential is not defined in UniqueDigitalCredential');
|
|
11
|
+
}
|
|
12
|
+
payload = ssi_types_1.CredentialMapper.decodeVerifiableCredential(credential.originalVerifiableCredential, hasher);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
payload = ssi_types_1.CredentialMapper.decodeVerifiableCredential(credential, hasher);
|
|
16
|
+
}
|
|
17
|
+
if (!payload) {
|
|
18
|
+
throw new Error('No payload found');
|
|
19
|
+
}
|
|
20
|
+
if ('decodedPayload' in payload && payload.decodedPayload) {
|
|
21
|
+
payload = payload.decodedPayload;
|
|
22
|
+
}
|
|
23
|
+
if ('vct' in payload) {
|
|
24
|
+
return { vct: payload.vct, claims: payload };
|
|
25
|
+
}
|
|
26
|
+
else if ('docType' in payload && 'namespaces' in payload) {
|
|
27
|
+
return { docType: payload.docType, namespaces: payload.namespaces, claims: payload };
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return {
|
|
31
|
+
claims: payload,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=dcql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dcql.js","sourceRoot":"","sources":["../../src/utils/dcql.ts"],"names":[],"mappings":";;AAKA,4DA4BC;AA/BD,mDAA4F;AAC5F,uDAA6D;AAE7D,SAAgB,wBAAwB,CAAC,UAAkE,EAAE,MAAe;IAC1H,IAAI,OAAO,CAAA;IACX,IAAI,IAAA,2CAAyB,EAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAA;QAC3F,CAAC;QACD,OAAO,GAAG,4BAAgB,CAAC,0BAA0B,CAAC,UAAU,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAA;IACxG,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,4BAAgB,CAAC,0BAA0B,CAAC,UAA0C,EAAE,MAAM,CAAC,CAAA;IAC3G,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IAED,IAAI,gBAAgB,IAAI,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC1D,OAAO,GAAG,OAAO,CAAC,cAAc,CAAA;IAClC,CAAC;IAED,IAAI,KAAK,IAAI,OAAQ,EAAE,CAAC;QACtB,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAkC,CAAA;IAC9E,CAAC;SAAM,IAAI,SAAS,IAAI,OAAQ,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;QAC5D,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IACtF,CAAC;SAAM,CAAC;QACN,OAAO;YACL,MAAM,EAAE,OAAO;SACO,CAAA;IAC1B,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.siopv2-oid4vp-op-auth",
|
|
3
|
-
"version": "0.32.1-feature.VDX.341.
|
|
3
|
+
"version": "0.32.1-feature.VDX.341.55+3f5d8950",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -14,31 +14,31 @@
|
|
|
14
14
|
"build:clean": "tsc --build --clean && tsc --build"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@sphereon/did-auth-siop": "0.16.1-feature.
|
|
18
|
-
"@sphereon/did-auth-siop-adapter": "0.16.1-feature.
|
|
19
|
-
"@sphereon/oid4vc-common": "0.16.1-feature.
|
|
17
|
+
"@sphereon/did-auth-siop": "0.16.1-feature.VDX.341.dcql.275",
|
|
18
|
+
"@sphereon/did-auth-siop-adapter": "0.16.1-feature.VDX.341.dcql.275",
|
|
19
|
+
"@sphereon/oid4vc-common": "0.16.1-feature.VDX.341.dcql.275",
|
|
20
20
|
"@sphereon/pex": "5.0.0-unstable.28",
|
|
21
21
|
"@sphereon/pex-models": "^2.3.2",
|
|
22
22
|
"@sphereon/ssi-sdk-ext.did-utils": "0.27.0",
|
|
23
23
|
"@sphereon/ssi-sdk-ext.identifier-resolution": "0.27.0",
|
|
24
24
|
"@sphereon/ssi-sdk-ext.jwt-service": "0.27.0",
|
|
25
|
-
"@sphereon/ssi-sdk.contact-manager": "0.32.1-feature.VDX.341.
|
|
26
|
-
"@sphereon/ssi-sdk.core": "0.32.1-feature.VDX.341.
|
|
27
|
-
"@sphereon/ssi-sdk.credential-store": "0.32.1-feature.VDX.341.
|
|
28
|
-
"@sphereon/ssi-sdk.credential-validation": "0.32.1-feature.VDX.341.
|
|
29
|
-
"@sphereon/ssi-sdk.data-store": "0.32.1-feature.VDX.341.
|
|
30
|
-
"@sphereon/ssi-sdk.issuance-branding": "0.32.1-feature.VDX.341.
|
|
31
|
-
"@sphereon/ssi-sdk.pd-manager": "0.32.1-feature.VDX.341.
|
|
32
|
-
"@sphereon/ssi-sdk.presentation-exchange": "0.32.1-feature.VDX.341.
|
|
33
|
-
"@sphereon/ssi-sdk.sd-jwt": "0.32.1-feature.VDX.341.
|
|
34
|
-
"@sphereon/ssi-sdk.siopv2-oid4vp-common": "0.32.1-feature.VDX.341.
|
|
35
|
-
"@sphereon/ssi-sdk.xstate-machine-persistence": "0.32.1-feature.VDX.341.
|
|
36
|
-
"@sphereon/ssi-types": "0.32.1-feature.VDX.341.
|
|
25
|
+
"@sphereon/ssi-sdk.contact-manager": "0.32.1-feature.VDX.341.55+3f5d8950",
|
|
26
|
+
"@sphereon/ssi-sdk.core": "0.32.1-feature.VDX.341.55+3f5d8950",
|
|
27
|
+
"@sphereon/ssi-sdk.credential-store": "0.32.1-feature.VDX.341.55+3f5d8950",
|
|
28
|
+
"@sphereon/ssi-sdk.credential-validation": "0.32.1-feature.VDX.341.55+3f5d8950",
|
|
29
|
+
"@sphereon/ssi-sdk.data-store": "0.32.1-feature.VDX.341.55+3f5d8950",
|
|
30
|
+
"@sphereon/ssi-sdk.issuance-branding": "0.32.1-feature.VDX.341.55+3f5d8950",
|
|
31
|
+
"@sphereon/ssi-sdk.pd-manager": "0.32.1-feature.VDX.341.55+3f5d8950",
|
|
32
|
+
"@sphereon/ssi-sdk.presentation-exchange": "0.32.1-feature.VDX.341.55+3f5d8950",
|
|
33
|
+
"@sphereon/ssi-sdk.sd-jwt": "0.32.1-feature.VDX.341.55+3f5d8950",
|
|
34
|
+
"@sphereon/ssi-sdk.siopv2-oid4vp-common": "0.32.1-feature.VDX.341.55+3f5d8950",
|
|
35
|
+
"@sphereon/ssi-sdk.xstate-machine-persistence": "0.32.1-feature.VDX.341.55+3f5d8950",
|
|
36
|
+
"@sphereon/ssi-types": "0.32.1-feature.VDX.341.55+3f5d8950",
|
|
37
37
|
"@sphereon/wellknown-dids-client": "^0.1.3",
|
|
38
38
|
"@veramo/core": "4.2.0",
|
|
39
39
|
"@veramo/credential-w3c": "4.2.0",
|
|
40
40
|
"cross-fetch": "^3.1.8",
|
|
41
|
-
"dcql": "0.2.
|
|
41
|
+
"dcql": "0.2.19",
|
|
42
42
|
"did-jwt-vc": "3.1.3",
|
|
43
43
|
"i18n-js": "^3.9.2",
|
|
44
44
|
"lodash.memoize": "^4.1.2",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@sphereon/did-uni-client": "^0.6.3",
|
|
50
50
|
"@sphereon/ssi-sdk-ext.did-resolver-jwk": "0.27.0",
|
|
51
|
-
"@sphereon/ssi-sdk.agent-config": "0.32.1-feature.VDX.341.
|
|
51
|
+
"@sphereon/ssi-sdk.agent-config": "0.32.1-feature.VDX.341.55+3f5d8950",
|
|
52
52
|
"@types/i18n-js": "^3.8.9",
|
|
53
53
|
"@types/lodash.memoize": "^4.1.9",
|
|
54
54
|
"@types/sha.js": "^2.4.4",
|
|
@@ -91,5 +91,5 @@
|
|
|
91
91
|
"Authenticator"
|
|
92
92
|
],
|
|
93
93
|
"nx": {},
|
|
94
|
-
"gitHead": "
|
|
94
|
+
"gitHead": "3f5d89507b1a6b1027554e8822e99d4cb3cd9650"
|
|
95
95
|
}
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
decodeUriAsJson,
|
|
3
|
-
PresentationSignCallback,
|
|
4
|
-
SupportedVersion,
|
|
5
|
-
VerifiedAuthorizationRequest
|
|
6
|
-
} from '@sphereon/did-auth-siop'
|
|
1
|
+
import { decodeUriAsJson, PresentationSignCallback, SupportedVersion, VerifiedAuthorizationRequest } from '@sphereon/did-auth-siop'
|
|
7
2
|
import {
|
|
8
3
|
ConnectionType,
|
|
9
4
|
CorrelationIdentifierType,
|
|
@@ -13,9 +8,9 @@ import {
|
|
|
13
8
|
Identity,
|
|
14
9
|
IdentityOrigin,
|
|
15
10
|
NonPersistedIdentity,
|
|
16
|
-
Party
|
|
11
|
+
Party,
|
|
17
12
|
} from '@sphereon/ssi-sdk.data-store'
|
|
18
|
-
import { Loggers } from '@sphereon/ssi-types'
|
|
13
|
+
import { Hasher, Loggers } from '@sphereon/ssi-types'
|
|
19
14
|
import { IAgentPlugin } from '@veramo/core'
|
|
20
15
|
import { v4 as uuidv4 } from 'uuid'
|
|
21
16
|
import {
|
|
@@ -27,14 +22,10 @@ import {
|
|
|
27
22
|
schema,
|
|
28
23
|
SelectableCredentialsMap,
|
|
29
24
|
Siopv2AuthorizationResponseData,
|
|
30
|
-
VerifiableCredentialsWithDefinition
|
|
25
|
+
VerifiableCredentialsWithDefinition,
|
|
31
26
|
} from '../index'
|
|
32
27
|
import { Siopv2Machine } from '../machine/Siopv2Machine'
|
|
33
|
-
import {
|
|
34
|
-
getSelectableCredentials,
|
|
35
|
-
siopSendAuthorizationResponse,
|
|
36
|
-
translateCorrelationIdToName
|
|
37
|
-
} from '../services/Siopv2MachineService'
|
|
28
|
+
import { getSelectableCredentials, siopSendAuthorizationResponse, translateCorrelationIdToName } from '../services/Siopv2MachineService'
|
|
38
29
|
import { OpSession } from '../session'
|
|
39
30
|
import {
|
|
40
31
|
IDidAuthSiopOpAuthenticator,
|
|
@@ -42,7 +33,7 @@ import {
|
|
|
42
33
|
IRegisterCustomApprovalForSiopArgs,
|
|
43
34
|
IRemoveCustomApprovalForSiopArgs,
|
|
44
35
|
IRemoveSiopSessionArgs,
|
|
45
|
-
IRequiredContext
|
|
36
|
+
IRequiredContext,
|
|
46
37
|
} from '../types/IDidAuthSiopOpAuthenticator'
|
|
47
38
|
import { Siopv2Machine as Siopv2MachineId, Siopv2MachineInstanceOpts } from '../types/machine'
|
|
48
39
|
|
|
@@ -56,13 +47,13 @@ import {
|
|
|
56
47
|
RetrieveContactArgs,
|
|
57
48
|
SendResponseArgs,
|
|
58
49
|
Siopv2AuthorizationRequestData,
|
|
59
|
-
Siopv2HolderEvent
|
|
50
|
+
Siopv2HolderEvent,
|
|
60
51
|
} from '../types/siop-service'
|
|
61
52
|
import { PEX, Status } from '@sphereon/pex'
|
|
62
53
|
import { computeEntryHash } from '@veramo/utils'
|
|
63
54
|
import { UniqueDigitalCredential } from '@sphereon/ssi-sdk.credential-store'
|
|
64
55
|
import { EventEmitter } from 'events'
|
|
65
|
-
import {
|
|
56
|
+
import { DcqlCredential, DcqlPresentation, DcqlQuery } from 'dcql'
|
|
66
57
|
|
|
67
58
|
const logger = Loggers.DEFAULT.options(LOGGER_NAMESPACE, {}).get(LOGGER_NAMESPACE)
|
|
68
59
|
|
|
@@ -105,11 +96,13 @@ export class DidAuthSiopOpAuthenticator implements IAgentPlugin {
|
|
|
105
96
|
private readonly onContactIdentityCreated?: (args: OnContactIdentityCreatedArgs) => Promise<void>
|
|
106
97
|
private readonly onIdentifierCreated?: (args: OnIdentifierCreatedArgs) => Promise<void>
|
|
107
98
|
private readonly eventEmitter?: EventEmitter
|
|
99
|
+
private readonly hasher: Hasher | undefined
|
|
108
100
|
|
|
109
101
|
constructor(
|
|
110
102
|
presentationSignCallback?: PresentationSignCallback,
|
|
111
103
|
customApprovals?: Record<string, (verifiedAuthorizationRequest: VerifiedAuthorizationRequest, sessionId: string) => Promise<void>>,
|
|
112
104
|
options?: DidAuthSiopOpAuthenticatorOptions,
|
|
105
|
+
hasher?: Hasher,
|
|
113
106
|
) {
|
|
114
107
|
const { onContactIdentityCreated, onIdentifierCreated } = options ?? {}
|
|
115
108
|
this.onContactIdentityCreated = onContactIdentityCreated
|
|
@@ -118,6 +111,7 @@ export class DidAuthSiopOpAuthenticator implements IAgentPlugin {
|
|
|
118
111
|
this.sessions = new Map<string, OpSession>()
|
|
119
112
|
this.customApprovals = customApprovals || {}
|
|
120
113
|
this.presentationSignCallback = presentationSignCallback
|
|
114
|
+
this.hasher = hasher
|
|
121
115
|
}
|
|
122
116
|
|
|
123
117
|
public async onEvent(event: any, context: RequiredContext): Promise<void> {
|
|
@@ -256,7 +250,7 @@ export class DidAuthSiopOpAuthenticator implements IAgentPlugin {
|
|
|
256
250
|
verifiedAuthorizationRequest.presentationDefinitions.length > 0)
|
|
257
251
|
? verifiedAuthorizationRequest.presentationDefinitions
|
|
258
252
|
: undefined,
|
|
259
|
-
dcqlQuery: verifiedAuthorizationRequest.dcqlQuery
|
|
253
|
+
dcqlQuery: verifiedAuthorizationRequest.dcqlQuery,
|
|
260
254
|
}
|
|
261
255
|
}
|
|
262
256
|
|
|
@@ -357,7 +351,7 @@ export class DidAuthSiopOpAuthenticator implements IAgentPlugin {
|
|
|
357
351
|
|
|
358
352
|
const pex = new PEX()
|
|
359
353
|
const verifiableCredentialsWithDefinition: Array<VerifiableCredentialsWithDefinition> = []
|
|
360
|
-
const dcqlCredentialsWithCredentials: Map<
|
|
354
|
+
const dcqlCredentialsWithCredentials: Map<DcqlCredential, UniqueDigitalCredential> = new Map()
|
|
361
355
|
|
|
362
356
|
if (authorizationRequestData.presentationDefinitions !== undefined && authorizationRequestData.presentationDefinitions !== null) {
|
|
363
357
|
authorizationRequestData.presentationDefinitions?.forEach((presentationDefinition) => {
|
|
@@ -387,25 +381,29 @@ export class DidAuthSiopOpAuthenticator implements IAgentPlugin {
|
|
|
387
381
|
if (verifiableCredentialsWithDefinition.length === 0) {
|
|
388
382
|
return Promise.reject(Error('None of the selected credentials match any of the presentation definitions.'))
|
|
389
383
|
}
|
|
390
|
-
|
|
391
384
|
} else if (authorizationRequestData.dcqlQuery !== undefined && authorizationRequestData.dcqlQuery !== null) {
|
|
392
385
|
//TODO Only SD-JWT and MSO MDOC are supported at the moment
|
|
393
386
|
if (this.hasMDocCredentials(selectedCredentials) || this.hasSdJwtCredentials(selectedCredentials)) {
|
|
394
387
|
selectedCredentials.forEach((vc: any) => {
|
|
395
|
-
const payload =
|
|
388
|
+
const payload =
|
|
389
|
+
vc['decodedPayload'] !== undefined && vc['decodedPayload'] !== null
|
|
390
|
+
? vc.decodedPayload
|
|
391
|
+
: vc['decoded'] !== undefined && vc['decoded'] !== null
|
|
392
|
+
? vc.decoded
|
|
393
|
+
: undefined
|
|
396
394
|
const vct = payload?.vct
|
|
397
395
|
const docType = payload?.docType
|
|
398
396
|
const namespaces = payload?.namespaces
|
|
399
|
-
const result:
|
|
397
|
+
const result: DcqlCredential = {
|
|
400
398
|
claims: payload,
|
|
401
399
|
vct,
|
|
402
400
|
docType,
|
|
403
|
-
namespaces
|
|
401
|
+
namespaces,
|
|
404
402
|
}
|
|
405
403
|
dcqlCredentialsWithCredentials.set(result, vc)
|
|
406
404
|
})
|
|
407
405
|
|
|
408
|
-
const dcqlPresentationRecord:
|
|
406
|
+
const dcqlPresentationRecord: DcqlPresentation = {}
|
|
409
407
|
const queryResult = DcqlQuery.query(authorizationRequestData.dcqlQuery, Array.from(dcqlCredentialsWithCredentials.keys()))
|
|
410
408
|
for (const [key, value] of Object.entries(queryResult.credential_matches)) {
|
|
411
409
|
if (value.success) {
|
|
@@ -421,6 +419,7 @@ export class DidAuthSiopOpAuthenticator implements IAgentPlugin {
|
|
|
421
419
|
sessionId: didAuthConfig.sessionId,
|
|
422
420
|
...(args.idOpts && { idOpts: args.idOpts }),
|
|
423
421
|
...(authorizationRequestData.presentationDefinitions !== undefined && { verifiableCredentialsWithDefinition }),
|
|
422
|
+
hasher: this.hasher,
|
|
424
423
|
},
|
|
425
424
|
context,
|
|
426
425
|
)
|
|
@@ -441,22 +440,26 @@ export class DidAuthSiopOpAuthenticator implements IAgentPlugin {
|
|
|
441
440
|
}
|
|
442
441
|
|
|
443
442
|
private hasMDocCredentials = (credentials: UniqueDigitalCredential[]): boolean => {
|
|
444
|
-
return credentials.some(
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
443
|
+
return credentials.some(
|
|
444
|
+
(credential) =>
|
|
445
|
+
credential.digitalCredential.documentFormat === CredentialDocumentFormat.MSO_MDOC &&
|
|
446
|
+
credential.digitalCredential.documentType === DocumentType.VC,
|
|
447
|
+
)
|
|
448
|
+
}
|
|
449
449
|
|
|
450
450
|
private hasSdJwtCredentials = (credentials: UniqueDigitalCredential[]): boolean => {
|
|
451
|
-
return credentials.some(
|
|
452
|
-
credential
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
451
|
+
return credentials.some(
|
|
452
|
+
(credential) =>
|
|
453
|
+
credential.digitalCredential.documentFormat === CredentialDocumentFormat.SD_JWT &&
|
|
454
|
+
credential.digitalCredential.documentType === DocumentType.VC,
|
|
455
|
+
)
|
|
456
|
+
}
|
|
456
457
|
|
|
457
458
|
private retrieveEncodedCredential = (credential: UniqueDigitalCredential) => {
|
|
458
459
|
// FIXME Remove any
|
|
459
|
-
return (credential as any).original !== undefined && (credential as any).original !== null
|
|
460
|
+
return (credential as any).original !== undefined && (credential as any).original !== null
|
|
461
|
+
? (credential as any).original
|
|
462
|
+
: (credential as any).compactSdJwtVc
|
|
460
463
|
}
|
|
461
464
|
|
|
462
465
|
private async siopGetSelectableCredentials(args: GetSelectableCredentialsArgs, context: RequiredContext): Promise<SelectableCredentialsMap> {
|
|
@@ -4,7 +4,7 @@ import { InputDescriptorV1, InputDescriptorV2, PresentationDefinitionV1, Present
|
|
|
4
4
|
import { isOID4VCIssuerIdentifier, ManagedIdentifierOptsOrResult } from '@sphereon/ssi-sdk-ext.identifier-resolution'
|
|
5
5
|
import { UniqueDigitalCredential, verifiableCredentialForRoleFilter } from '@sphereon/ssi-sdk.credential-store'
|
|
6
6
|
import { ConnectionType, CredentialRole } from '@sphereon/ssi-sdk.data-store'
|
|
7
|
-
import { CredentialMapper, Loggers, PresentationSubmission } from '@sphereon/ssi-types'
|
|
7
|
+
import { CredentialMapper, Hasher, Loggers, OriginalVerifiableCredential, PresentationSubmission } from '@sphereon/ssi-types'
|
|
8
8
|
import { OID4VP, OpSession } from '../session'
|
|
9
9
|
import {
|
|
10
10
|
DidAgents,
|
|
@@ -20,7 +20,9 @@ import {
|
|
|
20
20
|
import { IAgentContext, IDIDManager } from '@veramo/core'
|
|
21
21
|
import { getOrCreatePrimaryIdentifier, SupportedDidMethodEnum } from '@sphereon/ssi-sdk-ext.did-utils'
|
|
22
22
|
import { encodeJoseBlob } from '@sphereon/ssi-sdk.core'
|
|
23
|
-
import {
|
|
23
|
+
import { DcqlCredential, DcqlQuery, DcqlCredentialPresentation, DcqlPresentation } from 'dcql'
|
|
24
|
+
import { convertToDcqlCredentials } from '../utils/dcql'
|
|
25
|
+
import { getOriginalVerifiableCredential } from '../utils/CredentialUtils'
|
|
24
26
|
|
|
25
27
|
export const logger = Loggers.DEFAULT.get(LOGGER_NAMESPACE)
|
|
26
28
|
|
|
@@ -50,6 +52,7 @@ export const siopSendAuthorizationResponse = async (
|
|
|
50
52
|
verifiableCredentialsWithDefinition?: VerifiableCredentialsWithDefinition[]
|
|
51
53
|
idOpts?: ManagedIdentifierOptsOrResult
|
|
52
54
|
dcqlQuery?: DcqlQuery
|
|
55
|
+
hasher?: Hasher
|
|
53
56
|
},
|
|
54
57
|
context: RequiredContext,
|
|
55
58
|
) => {
|
|
@@ -165,101 +168,103 @@ export const siopSendAuthorizationResponse = async (
|
|
|
165
168
|
// todo: Change issuer value in case we do not use identifier. Use key.meta.jwkThumbprint then
|
|
166
169
|
responseSignerOpts: idOpts!,
|
|
167
170
|
})
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
if (typeof firstUniqueDC !== 'object' || !('digitalCredential' in firstUniqueDC)) {
|
|
183
|
-
return Promise.reject(Error('SiopMachine only supports UniqueDigitalCredentials for now'))
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
let identifier: ManagedIdentifierOptsOrResult
|
|
187
|
-
const digitalCredential = firstUniqueDC.digitalCredential
|
|
188
|
-
const firstVC = firstUniqueDC.uniformVerifiableCredential
|
|
189
|
-
const holder = CredentialMapper.isSdJwtDecodedCredential(firstVC)
|
|
190
|
-
? firstVC.decodedPayload.cnf?.jwk
|
|
191
|
-
? //TODO SDK-19: convert the JWK to hex and search for the appropriate key and associated DID
|
|
192
|
-
//doesn't apply to did:jwk only, as you can represent any DID key as a JWK. So whenever you encounter a JWK it doesn't mean it had to come from a did:jwk in the system. It just can always be represented as a did:jwk
|
|
193
|
-
`did:jwk:${encodeJoseBlob(firstVC.decodedPayload.cnf?.jwk)}#0`
|
|
194
|
-
: firstVC.decodedPayload.sub
|
|
195
|
-
: Array.isArray(firstVC.credentialSubject)
|
|
196
|
-
? firstVC.credentialSubject[0].id
|
|
197
|
-
: firstVC.credentialSubject.id
|
|
198
|
-
if (!digitalCredential.kmsKeyRef) {
|
|
199
|
-
// In case the store does not have the kmsKeyRef lets search for the holder
|
|
200
|
-
|
|
201
|
-
if (!holder) {
|
|
202
|
-
return Promise.reject(`No holder found and no kmsKeyRef in DB. Cannot determine identifier to use`)
|
|
171
|
+
} else if (request.dcqlQuery) {
|
|
172
|
+
if (args.verifiableCredentialsWithDefinition !== undefined && args.verifiableCredentialsWithDefinition !== null) {
|
|
173
|
+
const vcs = args.verifiableCredentialsWithDefinition.flatMap((vcd) => vcd.credentials)
|
|
174
|
+
const domain =
|
|
175
|
+
((await request.authorizationRequest.getMergedProperty('client_id')) as string) ??
|
|
176
|
+
request.issuer ??
|
|
177
|
+
(request.versions.includes(SupportedVersion.JWT_VC_PRESENTATION_PROFILE_v1)
|
|
178
|
+
? 'https://self-issued.me/v2/openid-vc'
|
|
179
|
+
: 'https://self-issued.me/v2')
|
|
180
|
+
logger.debug(`NONCE: ${session.nonce}, domain: ${domain}`)
|
|
181
|
+
|
|
182
|
+
const firstUniqueDC = vcs[0]
|
|
183
|
+
if (typeof firstUniqueDC !== 'object' || !('digitalCredential' in firstUniqueDC)) {
|
|
184
|
+
return Promise.reject(Error('SiopMachine only supports UniqueDigitalCredentials for now'))
|
|
203
185
|
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
186
|
+
|
|
187
|
+
let identifier: ManagedIdentifierOptsOrResult
|
|
188
|
+
const digitalCredential = firstUniqueDC.digitalCredential
|
|
189
|
+
const firstVC = firstUniqueDC.uniformVerifiableCredential
|
|
190
|
+
const holder = CredentialMapper.isSdJwtDecodedCredential(firstVC)
|
|
191
|
+
? firstVC.decodedPayload.cnf?.jwk
|
|
192
|
+
? //TODO SDK-19: convert the JWK to hex and search for the appropriate key and associated DID
|
|
193
|
+
//doesn't apply to did:jwk only, as you can represent any DID key as a JWK. So whenever you encounter a JWK it doesn't mean it had to come from a did:jwk in the system. It just can always be represented as a did:jwk
|
|
194
|
+
`did:jwk:${encodeJoseBlob(firstVC.decodedPayload.cnf?.jwk)}#0`
|
|
195
|
+
: firstVC.decodedPayload.sub
|
|
196
|
+
: Array.isArray(firstVC.credentialSubject)
|
|
197
|
+
? firstVC.credentialSubject[0].id
|
|
198
|
+
: firstVC.credentialSubject.id
|
|
199
|
+
if (!digitalCredential.kmsKeyRef) {
|
|
200
|
+
// In case the store does not have the kmsKeyRef lets search for the holder
|
|
201
|
+
|
|
202
|
+
if (!holder) {
|
|
203
|
+
return Promise.reject(`No holder found and no kmsKeyRef in DB. Cannot determine identifier to use`)
|
|
204
|
+
}
|
|
205
|
+
try {
|
|
206
|
+
identifier = await session.context.agent.identifierManagedGet({ identifier: holder })
|
|
207
|
+
} catch (e) {
|
|
208
|
+
logger.debug(`Holder DID not found: ${holder}`)
|
|
209
|
+
throw e
|
|
210
|
+
}
|
|
211
|
+
} else if (isOID4VCIssuerIdentifier(digitalCredential.kmsKeyRef)) {
|
|
212
|
+
identifier = await session.context.agent.identifierManagedGetByOID4VCIssuer({
|
|
213
|
+
identifier: firstUniqueDC.digitalCredential.kmsKeyRef,
|
|
214
|
+
})
|
|
215
|
+
} else {
|
|
216
|
+
switch (digitalCredential.subjectCorrelationType) {
|
|
217
|
+
case 'DID':
|
|
218
|
+
identifier = await session.context.agent.identifierManagedGetByDid({
|
|
219
|
+
identifier: digitalCredential.subjectCorrelationId ?? holder,
|
|
220
|
+
kmsKeyRef: digitalCredential.kmsKeyRef,
|
|
221
|
+
})
|
|
222
|
+
break
|
|
223
|
+
// TODO other implementations?
|
|
224
|
+
default:
|
|
225
|
+
// Since we are using the kmsKeyRef we will find the KID regardless of the identifier. We set it for later access though
|
|
226
|
+
identifier = await session.context.agent.identifierManagedGetByKid({
|
|
227
|
+
identifier: digitalCredential.subjectCorrelationId ?? holder ?? digitalCredential.kmsKeyRef,
|
|
228
|
+
kmsKeyRef: digitalCredential.kmsKeyRef,
|
|
229
|
+
})
|
|
230
|
+
}
|
|
209
231
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
232
|
+
console.log(`Identifier`, identifier)
|
|
233
|
+
|
|
234
|
+
const dcqlRepresentations: DcqlCredential[] = []
|
|
235
|
+
vcs.forEach((vc: UniqueDigitalCredential | OriginalVerifiableCredential) => {
|
|
236
|
+
const rep = convertToDcqlCredentials(vc, args.hasher)
|
|
237
|
+
if (rep) {
|
|
238
|
+
dcqlRepresentations.push(rep)
|
|
239
|
+
}
|
|
213
240
|
})
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
}
|
|
241
|
+
|
|
242
|
+
const queryResult = DcqlQuery.query(request.dcqlQuery, dcqlRepresentations)
|
|
243
|
+
const presentation: Record<string, DcqlCredentialPresentation> = {}
|
|
244
|
+
|
|
245
|
+
for (const [key, value] of Object.entries(queryResult.credential_matches)) {
|
|
246
|
+
const allMatches = Array.isArray(value) ? value : [value]
|
|
247
|
+
allMatches.forEach((match) => {
|
|
248
|
+
if (match.success) {
|
|
249
|
+
const originalCredential = getOriginalVerifiableCredential(vcs[match.credential_index])
|
|
250
|
+
if (!originalCredential) {
|
|
251
|
+
throw new Error(`Index ${match.credential_index} out of range in credentials array`)
|
|
252
|
+
}
|
|
253
|
+
presentation[key] =
|
|
254
|
+
(originalCredential as any)['compactSdJwtVc'] !== undefined ? (originalCredential as any).compactSdJwtVc : originalCredential
|
|
255
|
+
}
|
|
256
|
+
})
|
|
229
257
|
}
|
|
230
|
-
}
|
|
231
258
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
259
|
+
const response = session.sendAuthorizationResponse({
|
|
260
|
+
responseSignerOpts: identifier,
|
|
261
|
+
...{ dcqlQuery: { dcqlPresentation: DcqlPresentation.parse(presentation) } },
|
|
262
|
+
})
|
|
236
263
|
|
|
237
|
-
|
|
238
|
-
vcs.forEach((vc: any) => {
|
|
239
|
-
const payload = vc['decodedPayload'] !== undefined && vc['decodedPayload'] !== null ? vc.decodedPayload : vc
|
|
240
|
-
const vct = payload?.vct
|
|
241
|
-
const docType = payload?.docType
|
|
242
|
-
const namespaces = payload?.namespaces
|
|
243
|
-
const result: DcqlCredentialRepresentation = {
|
|
244
|
-
claims: payload,
|
|
245
|
-
vct,
|
|
246
|
-
docType,
|
|
247
|
-
namespaces
|
|
248
|
-
}
|
|
249
|
-
dcqlCredentialToCredential.set(result, vc)
|
|
250
|
-
})
|
|
251
|
-
const queryResult = DcqlQuery.query(request.dcqlQuery!, Array.from(dcqlCredentialToCredential.keys()))
|
|
252
|
-
const presentation: DcqlPresentationRecord.Output = {}
|
|
253
|
-
for (const [key, value] of Object.entries(queryResult.credential_matches)) {
|
|
254
|
-
const credential = dcqlCredentialToCredential.get(value.output as DcqlCredentialRepresentation)!
|
|
255
|
-
presentation[key] = (credential.originalVerifiableCredential as any)['compactSdJwtVc'] !== undefined ? (credential.originalVerifiableCredential as any).compactSdJwtVc : (credential.originalCredential as any).original
|
|
256
|
-
}
|
|
264
|
+
logger.debug(`Response: `, response)
|
|
257
265
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
responseSignerOpts: idOpts!,
|
|
261
|
-
dcqlQuery: { encodedPresentationRecord: DcqlPresentationRecord.parse(presentation) }
|
|
262
|
-
})
|
|
266
|
+
return response
|
|
267
|
+
}
|
|
263
268
|
}
|
|
264
269
|
return undefined
|
|
265
270
|
}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
VerifiablePresentationTypeFormat,
|
|
9
9
|
VerifiedAuthorizationRequest,
|
|
10
10
|
VerifyJwtCallback,
|
|
11
|
-
VPTokenLocation
|
|
11
|
+
VPTokenLocation,
|
|
12
12
|
} from '@sphereon/did-auth-siop'
|
|
13
13
|
import { CheckLinkedDomain, ResolveOpts } from '@sphereon/did-auth-siop-adapter'
|
|
14
14
|
import { DIDDocument } from '@sphereon/did-uni-client'
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { CredentialMapper, Hasher, ICredential, IVerifiableCredential, OriginalVerifiableCredential } from '@sphereon/ssi-types'
|
|
2
|
+
import { VerifiableCredential } from '@veramo/core'
|
|
3
|
+
import { UniqueDigitalCredential } from '@sphereon/ssi-sdk.credential-store'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Return the type(s) of a VC minus the VerifiableCredential type which should always be present
|
|
7
|
+
* @param credential The input credential
|
|
8
|
+
*/
|
|
9
|
+
export const getCredentialTypeAsString = (credential: ICredential | VerifiableCredential): string => {
|
|
10
|
+
if (!credential.type) {
|
|
11
|
+
return 'Verifiable Credential'
|
|
12
|
+
} else if (typeof credential.type === 'string') {
|
|
13
|
+
return credential.type
|
|
14
|
+
}
|
|
15
|
+
return credential.type.filter((type: string): boolean => type !== 'VerifiableCredential').join(', ')
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Returns a Unique Verifiable Credential (with hash) as stored in Veramo, based upon matching the id of the input VC or the proof value of the input VC
|
|
20
|
+
* @param uniqueVCs The Unique VCs to search in
|
|
21
|
+
* @param searchVC The VC to search for in the unique VCs array
|
|
22
|
+
*/
|
|
23
|
+
export const getMatchingUniqueDigitalCredential = (
|
|
24
|
+
uniqueVCs: UniqueDigitalCredential[],
|
|
25
|
+
searchVC: OriginalVerifiableCredential,
|
|
26
|
+
): UniqueDigitalCredential | undefined => {
|
|
27
|
+
// Since an ID is optional in a VC according to VCDM, and we really need the matches, we have a fallback match on something which is guaranteed to be unique for any VC (the proof(s))
|
|
28
|
+
return uniqueVCs.find(
|
|
29
|
+
(uniqueVC: UniqueDigitalCredential) =>
|
|
30
|
+
(typeof searchVC !== 'string' &&
|
|
31
|
+
(uniqueVC.id === (<IVerifiableCredential>searchVC).id ||
|
|
32
|
+
(uniqueVC.originalVerifiableCredential as VerifiableCredential).proof === (<IVerifiableCredential>searchVC).proof)) ||
|
|
33
|
+
(typeof searchVC === 'string' && (uniqueVC.uniformVerifiableCredential as VerifiableCredential)?.proof?.jwt === searchVC) ||
|
|
34
|
+
// We are ignoring the signature of the sd-jwt as PEX signs the vc again and it will not match anymore with the jwt in the proof of the stored jsonld vc
|
|
35
|
+
(typeof searchVC === 'string' &&
|
|
36
|
+
CredentialMapper.isSdJwtEncoded(searchVC) &&
|
|
37
|
+
uniqueVC.uniformVerifiableCredential?.proof &&
|
|
38
|
+
'jwt' in uniqueVC.uniformVerifiableCredential.proof &&
|
|
39
|
+
uniqueVC.uniformVerifiableCredential.proof.jwt?.split('.')?.slice(0, 2)?.join('.') === searchVC.split('.')?.slice(0, 2)?.join('.')),
|
|
40
|
+
)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
type InputCredential = UniqueDigitalCredential | VerifiableCredential | ICredential | OriginalVerifiableCredential
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Get an original verifiable credential. Maps to wrapped Verifiable Credential first, to get an original JWT as Veramo stores these with a special proof value
|
|
47
|
+
* @param credential The input VC
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
export const getOriginalVerifiableCredential = (credential: InputCredential): OriginalVerifiableCredential => {
|
|
51
|
+
if (isUniqueDigitalCredential(credential)) {
|
|
52
|
+
if (!credential.originalVerifiableCredential) {
|
|
53
|
+
throw new Error('originalVerifiableCredential is not defined in UniqueDigitalCredential')
|
|
54
|
+
}
|
|
55
|
+
return getCredentialFromProofOrWrapped(credential.originalVerifiableCredential)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return getCredentialFromProofOrWrapped(credential)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const getCredentialFromProofOrWrapped = (cred: any, hasher?: Hasher): OriginalVerifiableCredential => {
|
|
62
|
+
if (typeof cred === 'object' && 'proof' in cred && 'jwt' in cred.proof && CredentialMapper.isSdJwtEncoded(cred.proof.jwt)) {
|
|
63
|
+
return cred.proof.jwt
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return CredentialMapper.toWrappedVerifiableCredential(cred as OriginalVerifiableCredential, { hasher }).original
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export const isUniqueDigitalCredential = (credential: InputCredential): credential is UniqueDigitalCredential => {
|
|
70
|
+
return (credential as UniqueDigitalCredential).digitalCredential !== undefined
|
|
71
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { UniqueDigitalCredential } from '@sphereon/ssi-sdk.credential-store'
|
|
2
|
+
import { DcqlCredential, DcqlSdJwtVcCredential, DcqlW3cVcCredential } from 'dcql'
|
|
3
|
+
import { CredentialMapper, Hasher, OriginalVerifiableCredential } from '@sphereon/ssi-types'
|
|
4
|
+
import { isUniqueDigitalCredential } from './CredentialUtils'
|
|
5
|
+
|
|
6
|
+
export function convertToDcqlCredentials(credential: UniqueDigitalCredential | OriginalVerifiableCredential, hasher?: Hasher): DcqlCredential {
|
|
7
|
+
let payload
|
|
8
|
+
if (isUniqueDigitalCredential(credential)) {
|
|
9
|
+
if (!credential.originalVerifiableCredential) {
|
|
10
|
+
throw new Error('originalVerifiableCredential is not defined in UniqueDigitalCredential')
|
|
11
|
+
}
|
|
12
|
+
payload = CredentialMapper.decodeVerifiableCredential(credential.originalVerifiableCredential, hasher)
|
|
13
|
+
} else {
|
|
14
|
+
payload = CredentialMapper.decodeVerifiableCredential(credential as OriginalVerifiableCredential, hasher)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (!payload) {
|
|
18
|
+
throw new Error('No payload found')
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if ('decodedPayload' in payload && payload.decodedPayload) {
|
|
22
|
+
payload = payload.decodedPayload
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if ('vct' in payload!) {
|
|
26
|
+
return { vct: payload.vct, claims: payload } satisfies DcqlSdJwtVcCredential
|
|
27
|
+
} else if ('docType' in payload! && 'namespaces' in payload) {
|
|
28
|
+
return { docType: payload.docType, namespaces: payload.namespaces, claims: payload }
|
|
29
|
+
} else {
|
|
30
|
+
return {
|
|
31
|
+
claims: payload,
|
|
32
|
+
} as DcqlW3cVcCredential
|
|
33
|
+
}
|
|
34
|
+
}
|