@sphereon/ssi-sdk.ebsi-support 0.34.1-feature.merge.crypto.extensions.modules.39 → 0.34.1-fix.78

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.ebsi-support",
3
- "version": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
3
+ "version": "0.34.1-fix.78+5114f005",
4
4
  "source": "src/index.ts",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -27,25 +27,25 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@ethersproject/random": "^5.7.0",
30
- "@sphereon/did-auth-siop": "0.19.1-next.2",
31
- "@sphereon/did-auth-siop-adapter": "0.19.1-next.2",
30
+ "@sphereon/did-auth-siop": "0.19.1-feature.DIIPv4.86",
31
+ "@sphereon/did-auth-siop-adapter": "0.19.1-feature.DIIPv4.86",
32
32
  "@sphereon/pex": "5.0.0-unstable.28",
33
33
  "@sphereon/pex-models": "^2.3.2",
34
- "@sphereon/ssi-sdk-ext.did-resolver-ebsi": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
35
- "@sphereon/ssi-sdk-ext.did-utils": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
36
- "@sphereon/ssi-sdk-ext.identifier-resolution": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
37
- "@sphereon/ssi-sdk-ext.jwt-service": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
38
- "@sphereon/ssi-sdk-ext.key-utils": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
39
- "@sphereon/ssi-sdk.contact-manager": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
40
- "@sphereon/ssi-sdk.core": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
41
- "@sphereon/ssi-sdk.oid4vci-holder": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
42
- "@sphereon/ssi-sdk.presentation-exchange": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
43
- "@sphereon/ssi-sdk.siopv2-oid4vp-op-auth": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
44
- "@sphereon/ssi-types": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
34
+ "@sphereon/ssi-sdk-ext.did-resolver-ebsi": "0.34.1-fix.78+5114f005",
35
+ "@sphereon/ssi-sdk-ext.did-utils": "0.34.1-fix.78+5114f005",
36
+ "@sphereon/ssi-sdk-ext.identifier-resolution": "0.34.1-fix.78+5114f005",
37
+ "@sphereon/ssi-sdk-ext.jwt-service": "0.34.1-fix.78+5114f005",
38
+ "@sphereon/ssi-sdk-ext.key-utils": "0.34.1-fix.78+5114f005",
39
+ "@sphereon/ssi-sdk.contact-manager": "0.34.1-fix.78+5114f005",
40
+ "@sphereon/ssi-sdk.core": "0.34.1-fix.78+5114f005",
41
+ "@sphereon/ssi-sdk.oid4vci-holder": "0.34.1-fix.78+5114f005",
42
+ "@sphereon/ssi-sdk.presentation-exchange": "0.34.1-fix.78+5114f005",
43
+ "@sphereon/ssi-sdk.siopv2-oid4vp-op-auth": "0.34.1-fix.78+5114f005",
44
+ "@sphereon/ssi-types": "0.34.1-fix.78+5114f005",
45
45
  "@veramo/core": "4.2.0",
46
46
  "@veramo/did-manager": "4.2.0",
47
47
  "@veramo/utils": "4.2.0",
48
- "cross-fetch": "^3.1.8",
48
+ "cross-fetch": "^4.1.0",
49
49
  "debug": "^4.3.5",
50
50
  "did-resolver": "^4.1.0",
51
51
  "ethers": "^6.13.1",
@@ -56,14 +56,14 @@
56
56
  "xstate": "^4.38.3"
57
57
  },
58
58
  "devDependencies": {
59
- "@sphereon/oid4vci-client": "0.19.1-next.2",
60
- "@sphereon/oid4vci-common": "0.19.1-next.2",
61
- "@sphereon/ssi-express-support": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
62
- "@sphereon/ssi-sdk-ext.key-manager": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
63
- "@sphereon/ssi-sdk-ext.kms-local": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
64
- "@sphereon/ssi-sdk.agent-config": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
65
- "@sphereon/ssi-sdk.data-store": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
66
- "@sphereon/ssi-sdk.public-key-hosting": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
59
+ "@sphereon/oid4vci-client": "0.19.1-feature.DIIPv4.86",
60
+ "@sphereon/oid4vci-common": "0.19.1-feature.DIIPv4.86",
61
+ "@sphereon/ssi-express-support": "0.34.1-fix.78+5114f005",
62
+ "@sphereon/ssi-sdk-ext.key-manager": "0.34.1-fix.78+5114f005",
63
+ "@sphereon/ssi-sdk-ext.kms-local": "0.34.1-fix.78+5114f005",
64
+ "@sphereon/ssi-sdk.agent-config": "0.34.1-fix.78+5114f005",
65
+ "@sphereon/ssi-sdk.data-store": "0.34.1-fix.78+5114f005",
66
+ "@sphereon/ssi-sdk.public-key-hosting": "0.34.1-fix.78+5114f005",
67
67
  "@transmute/json-web-signature": "0.7.0-unstable.81",
68
68
  "@types/cors": "^2.8.17",
69
69
  "@types/express": "^4.17.21",
@@ -98,5 +98,5 @@
98
98
  "EBSI",
99
99
  "EBSI Authorization Client"
100
100
  ],
101
- "gitHead": "dea3b6de7ecd726e67ce100337fba2ea968500af"
101
+ "gitHead": "5114f005ed3bbb851b2c7bb226cbb195fc70bf92"
102
102
  }
@@ -1,6 +1,4 @@
1
- import { PresentationDefinitionLocation, PresentationDefinitionWithLocation, SupportedVersion } from '@sphereon/did-auth-siop'
2
1
  import { CreateRequestObjectMode } from '@sphereon/oid4vci-common'
3
- import { IPEXFilterResult } from '@sphereon/ssi-sdk.presentation-exchange'
4
2
  import { CredentialMapper, PresentationSubmission } from '@sphereon/ssi-types'
5
3
  import { IAgentPlugin } from '@veramo/core'
6
4
  import fetch from 'cross-fetch'
@@ -29,7 +27,6 @@ import {
29
27
  } from '../types/IEbsiSupport'
30
28
 
31
29
  import { v4 } from 'uuid'
32
- import { CheckLinkedDomain } from '@sphereon/did-auth-siop-adapter'
33
30
  import { defaultHasher } from '@sphereon/ssi-sdk.core'
34
31
 
35
32
  export const ebsiSupportMethods: Array<string> = [
@@ -181,49 +178,54 @@ export class EbsiSupport implements IAgentPlugin {
181
178
  }
182
179
  }
183
180
 
184
- const definition = {
185
- definition: definitionResponse,
186
- location: PresentationDefinitionLocation.TOPLEVEL_PRESENTATION_DEF,
187
- version: SupportedVersion.SIOPv2_D11,
188
- } satisfies PresentationDefinitionWithLocation
181
+ // FIXME SSISDK-40 should use DCQL
182
+ // const definition = {
183
+ // definition: definitionResponse,
184
+ // location: PresentationDefinitionLocation.TOPLEVEL_PRESENTATION_DEF,
185
+ // version: SupportedVersion.SIOPv2_D11,
186
+ // } satisfies PresentationDefinitionWithLocation
189
187
 
190
- const pexResult = hasInputDescriptors
191
- ? await context.agent.pexDefinitionFilterCredentials({
192
- presentationDefinition: definitionResponse,
193
- credentialFilterOpts: { credentialRole: args.credentialRole, verifiableCredentials: [attestationCredential!] },
194
- })
195
- : ({
196
- // LOL, let's see whether we can trick PEX to create a VP without VCs
197
- filteredCredentials: [],
198
- id: definitionResponse.id,
199
- selectResults: { verifiableCredential: [], areRequiredCredentialsPresent: 'info' },
200
- } satisfies IPEXFilterResult)
201
- const opSession = await context.agent.siopRegisterOPSession({
202
- requestJwtOrUri: '', // Siop assumes we use an auth request, which we don't have in this case
203
- op: { checkLinkedDomains: CheckLinkedDomain.NEVER },
204
- providedPresentationDefinitions: [definition],
205
- })
206
- const oid4vp = await opSession.getOID4VP({ allIdentifiers: [identifier.did] })
207
- const vp = await oid4vp.createVerifiablePresentation(
208
- args.credentialRole,
209
- { definition, credentials: pexResult.filteredCredentials },
210
- {
211
- proofOpts: { domain: openIDMetadata.issuer, nonce: v4(), created: new Date(Date.now() - 120_000).toString() },
212
- holder: identifier.did,
213
- idOpts: idOpts,
214
- skipDidResolution,
215
- forceNoCredentialsInVP: !hasInputDescriptors,
216
- },
217
- )
188
+ // const pexResult = hasInputDescriptors
189
+ // ? await context.agent.pexDefinitionFilterCredentials({
190
+ // presentationDefinition: definitionResponse,
191
+ // credentialFilterOpts: { credentialRole: args.credentialRole, verifiableCredentials: [attestationCredential!] },
192
+ // })
193
+ // : ({
194
+ // // LOL, let's see whether we can trick PEX to create a VP without VCs
195
+ // filteredCredentials: [],
196
+ // id: definitionResponse.id,
197
+ // selectResults: { verifiableCredential: [], areRequiredCredentialsPresent: 'info' },
198
+ // } satisfies IPEXFilterResult)
199
+ // const opSession = await context.agent.siopRegisterOPSession({
200
+ // requestJwtOrUri: '', // Siop assumes we use an auth request, which we don't have in this case
201
+ // op: { checkLinkedDomains: CheckLinkedDomain.NEVER },
202
+ // //providedPresentationDefinitions: [definition],
203
+ // })
204
+
205
+ //const oid4vp = await opSession.getOID4VP({ allIdentifiers: [identifier.did] })
206
+ // const vp = await oid4vp.createVerifiablePresentation(
207
+ // args.credentialRole,
208
+ // { dcqlQuery: definition, credentials: pexResult.filteredCredentials },
209
+ // {
210
+ // proofOpts: { domain: openIDMetadata.issuer, nonce: v4(), created: new Date(Date.now() - 120_000).toString() },
211
+ // holder: identifier.did,
212
+ // idOpts: idOpts,
213
+ // skipDidResolution,
214
+ // forceNoCredentialsInVP: !hasInputDescriptors,
215
+ // },
216
+ // )
218
217
 
219
- const presentationSubmission = hasInputDescriptors
220
- ? vp.presentationSubmission
221
- : ({ id: v4(), definition_id: definitionResponse.id, descriptor_map: [] } satisfies PresentationSubmission)
218
+ const presentationSubmission = { id: v4(), definition_id: definitionResponse.id, descriptor_map: [] } satisfies PresentationSubmission
219
+ // FIXME SSISDK-40
220
+ //hasInputDescriptors
221
+ //? vp.presentationSubmission
222
+ //: ({ id: v4(), definition_id: definitionResponse.id, descriptor_map: [] } satisfies PresentationSubmission)
222
223
 
223
224
  console.log(`Presentation submission`, presentationSubmission)
224
225
  const tokenRequestArgs = {
225
226
  grant_type: 'vp_token',
226
- vp_token: CredentialMapper.toCompactJWT(vp.verifiablePresentations[0]), // FIXME How are we going to send multiple presentations in a vp_token?
227
+ // FIXME SSISDK-40
228
+ vp_token: '',//CredentialMapper.toCompactJWT(vp.verifiablePresentations[0]), // FIXME How are we going to send multiple presentations in a vp_token?
227
229
  scope,
228
230
  presentation_submission: presentationSubmission,
229
231
  apiOpts: { environment, version: 'v4' },
@@ -5,6 +5,7 @@ import {
5
5
  AuthorizationRequestOpts,
6
6
  AuthzFlowType,
7
7
  CredentialConfigurationSupported,
8
+ CredentialConfigurationSupportedV1_0_15,
8
9
  getJson,
9
10
  getTypesFromCredentialSupported,
10
11
  ProofOfPossessionCallbacks,
@@ -101,7 +102,7 @@ export const ebsiCreateAttestationAuthRequestURL = async (
101
102
  retrieveServerMetadata: true,
102
103
  })
103
104
 
104
- const allMatches = vciClient.getCredentialsSupported(false)
105
+ const allMatches = {} as Record<string, CredentialConfigurationSupportedV1_0_15> | Array<CredentialConfigurationSupported> // vciClient.getCredentialsSupported(format) FIXME SSISDK-40
105
106
  let arrayMatches: Array<CredentialConfigurationSupported>
106
107
  if (Array.isArray(allMatches)) {
107
108
  arrayMatches = allMatches