@sphereon/ssi-sdk.siopv2-oid4vp-op-auth 0.32.1-feature.VDX.341.53 → 0.32.1-feature.VDX.341.56

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.
@@ -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
- constructor(presentationSignCallback?: PresentationSignCallback, customApprovals?: Record<string, (verifiedAuthorizationRequest: VerifiedAuthorizationRequest, sessionId: string) => Promise<void>>, options?: DidAuthSiopOpAuthenticatorOptions);
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,EAEL,wBAAwB,EAExB,4BAA4B,EAC7B,MAAM,yBAAyB,CAAA;AAahC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EACL,iCAAiC,EAIjC,eAAe,EAKhB,MAAM,UAAU,CAAA;AAQjB,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;gBAG1C,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;IAWhC,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;IAgG9B,OAAO,CAAC,kBAAkB,CAKxB;IAEF,OAAO,CAAC,mBAAmB,CAKzB;IAEF,OAAO,CAAC,yBAAyB,CAGhC;YAEa,4BAA4B;CAgB3C"}
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 ? credential.original : credential.compactSdJwtVc;
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 ? vc.decodedPayload : vc['decoded'] !== undefined && vc['decoded'] !== null ? vc.decoded : undefined;
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;AAG7E,OAAO,EAGL,eAAe,EAEf,wBAAwB,EAGxB,mCAAmC,EAEpC,MAAM,UAAU,CAAA;AAIjB,OAAO,EAAwD,SAAS,EAAE,MAAM,MAAM,CAAA;AAEtF,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;CACtB,WACQ,eAAe,kCAmNzB,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"}
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 (args.dcqlQuery !== undefined && args.dcqlQuery !== null) {
144
- const credentialsAndDefinitions = args.verifiableCredentialsWithDefinition;
145
- const vcs = credentialsAndDefinitions === null || credentialsAndDefinitions === void 0 ? void 0 : credentialsAndDefinitions.flatMap(cd => cd.credentials);
146
- 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)
147
- ? 'https://self-issued.me/v2/openid-vc'
148
- : 'https://self-issued.me/v2');
149
- exports.logger.log(`NONCE: ${session.nonce}, domain: ${domain}`);
150
- const firstUniqueDC = vcs[0];
151
- if (typeof firstUniqueDC !== 'object' || !('digitalCredential' in firstUniqueDC)) {
152
- return Promise.reject(Error('SiopMachine only supports UniqueDigitalCredentials for now'));
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
- try {
172
- identifier = yield session.context.agent.identifierManagedGet({ identifier: holder });
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
- catch (e) {
175
- exports.logger.debug(`Holder DID not found: ${holder}`);
176
- throw e;
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
- else if ((0, ssi_sdk_ext_identifier_resolution_1.isOID4VCIssuerIdentifier)(digitalCredential.kmsKeyRef)) {
180
- identifier = yield session.context.agent.identifierManagedGetByOID4VCIssuer({
181
- identifier: firstUniqueDC.digitalCredential.kmsKeyRef,
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
- else {
185
- switch (digitalCredential.subjectCorrelationType) {
186
- case 'DID':
187
- identifier = yield session.context.agent.identifierManagedGetByDid({
188
- identifier: (_o = digitalCredential.subjectCorrelationId) !== null && _o !== void 0 ? _o : holder,
189
- kmsKeyRef: digitalCredential.kmsKeyRef,
190
- });
191
- break;
192
- // TODO other implementations?
193
- default:
194
- // Since we are using the kmsKeyRef we will find the KID regardless of the identifier. We set it for later access though
195
- identifier = yield session.context.agent.identifierManagedGetByKid({
196
- identifier: (_q = (_p = digitalCredential.subjectCorrelationId) !== null && _p !== void 0 ? _p : holder) !== null && _q !== void 0 ? _q : digitalCredential.kmsKeyRef,
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.input_credential_index]);
218
+ if (!originalCredential) {
219
+ throw new Error(`Index ${match.input_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":";;;AAAA,mDAAgI;AAIhI;;;GAGG;AACI,MAAM,yBAAyB,GAAG,CAAC,UAA8C,EAAU,EAAE;IAClG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACrB,OAAO,uBAAuB,CAAA;IAChC,CAAC;SAAM,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO,UAAU,CAAC,IAAI,CAAA;IACxB,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACtG,CAAC,CAAA;AAPY,QAAA,yBAAyB,6BAOrC;AAED;;;;GAIG;AACI,MAAM,kCAAkC,GAAG,CAChD,SAAoC,EACpC,QAAsC,EACD,EAAE;IACvC,sLAAsL;IACtL,OAAO,SAAS,CAAC,IAAI,CACnB,CAAC,QAAiC,EAAE,EAAE;;QACpC,OAAA,CAAC,OAAO,QAAQ,KAAK,QAAQ;YAC3B,CAAC,QAAQ,CAAC,EAAE,KAA6B,QAAS,CAAC,EAAE;gBAClD,QAAQ,CAAC,4BAAqD,CAAC,KAAK,KAA6B,QAAS,CAAC,KAAK,CAAC,CAAC;YACvH,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAA,MAAA,MAAC,QAAQ,CAAC,2BAAoD,0CAAE,KAAK,0CAAE,GAAG,MAAK,QAAQ,CAAC;YACzH,wJAAwJ;YACxJ,CAAC,OAAO,QAAQ,KAAK,QAAQ;gBAC3B,4BAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC;iBACzC,MAAA,QAAQ,CAAC,2BAA2B,0CAAE,KAAK,CAAA;gBAC3C,KAAK,IAAI,QAAQ,CAAC,2BAA2B,CAAC,KAAK;gBACnD,CAAA,MAAA,MAAA,MAAA,QAAQ,CAAC,2BAA2B,CAAC,KAAK,CAAC,GAAG,0CAAE,KAAK,CAAC,GAAG,CAAC,0CAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,0CAAE,IAAI,CAAC,GAAG,CAAC,OAAK,MAAA,MAAA,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,0CAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,0CAAE,IAAI,CAAC,GAAG,CAAC,CAAA,CAAC,CAAA;KAAA,CACxI,CAAA;AACH,CAAC,CAAA;AAlBY,QAAA,kCAAkC,sCAkB9C;AAID;;;GAGG;AAEI,MAAM,+BAA+B,GAAG,CAAC,UAA2B,EAAgC,EAAE;IAC3G,IAAI,IAAA,iCAAyB,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,+BAA+B,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAA;IACjF,CAAC;IAED,OAAO,+BAA+B,CAAC,UAAU,CAAC,CAAA;AACpD,CAAC,CAAA;AATY,QAAA,+BAA+B,mCAS3C;AAED,MAAM,+BAA+B,GAAG,CAAC,IAAS,EAAE,MAAe,EAAgC,EAAE;IACnG,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,4BAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1H,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAA;IACvB,CAAC;IAED,OAAO,4BAAgB,CAAC,6BAA6B,CAAC,IAAoC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAA;AAClH,CAAC,CAAA;AAEM,MAAM,yBAAyB,GAAG,CAAC,UAA2B,EAAyC,EAAE;IAC9G,OAAQ,UAAsC,CAAC,iBAAiB,KAAK,SAAS,CAAA;AAChF,CAAC,CAAA;AAFY,QAAA,yBAAyB,6BAErC"}
@@ -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,CA8B5I"}
@@ -0,0 +1,37 @@
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, credential_format: 'vc+sd-jwt' }; // TODO dc+sd-jwt support?
25
+ }
26
+ else if ('docType' in payload && 'namespaces' in payload) {
27
+ // mdoc
28
+ return { docType: payload.docType, namespaces: payload.namespaces, claims: payload };
29
+ }
30
+ else {
31
+ return {
32
+ claims: payload,
33
+ credential_format: 'jwt_vc_json', // TODO jwt_vc_json-ld support
34
+ };
35
+ }
36
+ }
37
+ //# sourceMappingURL=dcql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dcql.js","sourceRoot":"","sources":["../../src/utils/dcql.ts"],"names":[],"mappings":";;AAKA,4DA8BC;AAjCD,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,EAAE,iBAAiB,EAAE,WAAW,EAAkC,CAAA,CAAC,0BAA0B;IACzI,CAAC;SAAM,IAAI,SAAS,IAAI,OAAQ,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;QAC5D,OAAO;QACP,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;YACf,iBAAiB,EAAE,aAAa,EAAE,8BAA8B;SAC1C,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.53+1a6b469d",
3
+ "version": "0.32.1-feature.VDX.341.56+62021931",
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.SPRIND.137.254",
18
- "@sphereon/did-auth-siop-adapter": "0.16.1-feature.SPRIND.137.254",
19
- "@sphereon/oid4vc-common": "0.16.1-feature.SPRIND.137.254",
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.53+1a6b469d",
26
- "@sphereon/ssi-sdk.core": "0.32.1-feature.VDX.341.53+1a6b469d",
27
- "@sphereon/ssi-sdk.credential-store": "0.32.1-feature.VDX.341.53+1a6b469d",
28
- "@sphereon/ssi-sdk.credential-validation": "0.32.1-feature.VDX.341.53+1a6b469d",
29
- "@sphereon/ssi-sdk.data-store": "0.32.1-feature.VDX.341.53+1a6b469d",
30
- "@sphereon/ssi-sdk.issuance-branding": "0.32.1-feature.VDX.341.53+1a6b469d",
31
- "@sphereon/ssi-sdk.pd-manager": "0.32.1-feature.VDX.341.53+1a6b469d",
32
- "@sphereon/ssi-sdk.presentation-exchange": "0.32.1-feature.VDX.341.53+1a6b469d",
33
- "@sphereon/ssi-sdk.sd-jwt": "0.32.1-feature.VDX.341.53+1a6b469d",
34
- "@sphereon/ssi-sdk.siopv2-oid4vp-common": "0.32.1-feature.VDX.341.53+1a6b469d",
35
- "@sphereon/ssi-sdk.xstate-machine-persistence": "0.32.1-feature.VDX.341.53+1a6b469d",
36
- "@sphereon/ssi-types": "0.32.1-feature.VDX.341.53+1a6b469d",
25
+ "@sphereon/ssi-sdk.contact-manager": "0.32.1-feature.VDX.341.56+62021931",
26
+ "@sphereon/ssi-sdk.core": "0.32.1-feature.VDX.341.56+62021931",
27
+ "@sphereon/ssi-sdk.credential-store": "0.32.1-feature.VDX.341.56+62021931",
28
+ "@sphereon/ssi-sdk.credential-validation": "0.32.1-feature.VDX.341.56+62021931",
29
+ "@sphereon/ssi-sdk.data-store": "0.32.1-feature.VDX.341.56+62021931",
30
+ "@sphereon/ssi-sdk.issuance-branding": "0.32.1-feature.VDX.341.56+62021931",
31
+ "@sphereon/ssi-sdk.pd-manager": "0.32.1-feature.VDX.341.56+62021931",
32
+ "@sphereon/ssi-sdk.presentation-exchange": "0.32.1-feature.VDX.341.56+62021931",
33
+ "@sphereon/ssi-sdk.sd-jwt": "0.32.1-feature.VDX.341.56+62021931",
34
+ "@sphereon/ssi-sdk.siopv2-oid4vp-common": "0.32.1-feature.VDX.341.56+62021931",
35
+ "@sphereon/ssi-sdk.xstate-machine-persistence": "0.32.1-feature.VDX.341.56+62021931",
36
+ "@sphereon/ssi-types": "0.32.1-feature.VDX.341.56+62021931",
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.11",
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.53+1a6b469d",
51
+ "@sphereon/ssi-sdk.agent-config": "0.32.1-feature.VDX.341.56+62021931",
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": "1a6b469db3f8b594e9efe603ad196a41bef2e7f7"
94
+ "gitHead": "6202193176750df1e4852869f8bf1069ba653998"
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 { DcqlCredentialRepresentation, DcqlPresentationRecord, DcqlQuery } from 'dcql'
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, // FIXME BEFORE PR move into DidAuthSiopOpAuthenticatorOptions (move everything into options like we do with the rest of the agent plugins)
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<DcqlCredentialRepresentation, UniqueDigitalCredential> = new 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 = vc['decodedPayload'] !== undefined && vc['decodedPayload'] !== null ? vc.decodedPayload : vc['decoded'] !== undefined && vc['decoded'] !== null ? vc.decoded : undefined
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: DcqlCredentialRepresentation = {
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: DcqlPresentationRecord.Output = {}
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(credential =>
445
- credential.digitalCredential.documentFormat === CredentialDocumentFormat.MSO_MDOC &&
446
- credential.digitalCredential.documentType === DocumentType.VC
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(credential =>
452
- credential.digitalCredential.documentFormat === CredentialDocumentFormat.SD_JWT &&
453
- credential.digitalCredential.documentType === DocumentType.VC
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 ? (credential as any).original : (credential as any).compactSdJwtVc
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 { DcqlCredentialRepresentation, DcqlPresentationRecord, DcqlQuery } from 'dcql'
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
- } else if (args.dcqlQuery !== undefined && args.dcqlQuery !== null) {
170
-
171
- const credentialsAndDefinitions = args.verifiableCredentialsWithDefinition
172
- const vcs = credentialsAndDefinitions?.flatMap(cd => cd.credentials)!
173
- const domain =
174
- ((await request.authorizationRequest.getMergedProperty('client_id')) as string) ??
175
- request.issuer ??
176
- (request.versions.includes(SupportedVersion.JWT_VC_PRESENTATION_PROFILE_v1)
177
- ? 'https://self-issued.me/v2/openid-vc'
178
- : 'https://self-issued.me/v2')
179
- logger.log(`NONCE: ${session.nonce}, domain: ${domain}`)
180
-
181
- const firstUniqueDC = vcs[0]
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
- try {
205
- identifier = await session.context.agent.identifierManagedGet({ identifier: holder })
206
- } catch (e) {
207
- logger.debug(`Holder DID not found: ${holder}`)
208
- throw e
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
- } else if (isOID4VCIssuerIdentifier(digitalCredential.kmsKeyRef)) {
211
- identifier = await session.context.agent.identifierManagedGetByOID4VCIssuer({
212
- identifier: firstUniqueDC.digitalCredential.kmsKeyRef,
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
- } else {
215
- switch (digitalCredential.subjectCorrelationType) {
216
- case 'DID':
217
- identifier = await session.context.agent.identifierManagedGetByDid({
218
- identifier: digitalCredential.subjectCorrelationId ?? holder,
219
- kmsKeyRef: digitalCredential.kmsKeyRef,
220
- })
221
- break
222
- // TODO other implementations?
223
- default:
224
- // Since we are using the kmsKeyRef we will find the KID regardless of the identifier. We set it for later access though
225
- identifier = await session.context.agent.identifierManagedGetByKid({
226
- identifier: digitalCredential.subjectCorrelationId ?? holder ?? digitalCredential.kmsKeyRef,
227
- kmsKeyRef: digitalCredential.kmsKeyRef,
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.input_credential_index])
250
+ if (!originalCredential) {
251
+ throw new Error(`Index ${match.input_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
- if (identifier === undefined && idOpts !== undefined && (await hasEbsiClient(request.authorizationRequest))) {
233
- identifier = await createEbsiIdentifier(agentContext)
234
- }
235
- logger.debug(`Identifier`, identifier)
259
+ const response = session.sendAuthorizationResponse({
260
+ responseSignerOpts: identifier,
261
+ ...{ dcqlQuery: { dcqlPresentation: DcqlPresentation.parse(presentation) } },
262
+ })
236
263
 
237
- const dcqlCredentialToCredential: Map<DcqlCredentialRepresentation, UniqueDigitalCredential> = new Map()
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
- return await session.sendAuthorizationResponse({
259
- // todo: Change issuer value in case we do not use identifier. Use key.meta.jwkThumbprint then
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,36 @@
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, credential_format: 'vc+sd-jwt' } satisfies DcqlSdJwtVcCredential // TODO dc+sd-jwt support?
27
+ } else if ('docType' in payload! && 'namespaces' in payload) {
28
+ // mdoc
29
+ return { docType: payload.docType, namespaces: payload.namespaces, claims: payload }
30
+ } else {
31
+ return {
32
+ claims: payload,
33
+ credential_format: 'jwt_vc_json', // TODO jwt_vc_json-ld support
34
+ } as DcqlW3cVcCredential
35
+ }
36
+ }