@sphereon/ssi-sdk-ext.identifier-resolution 0.24.1-unstable.75 → 0.24.1-unstable.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +380 -1
  2. package/dist/agent/IdentifierResolution.d.ts +9 -1
  3. package/dist/agent/IdentifierResolution.d.ts.map +1 -1
  4. package/dist/agent/IdentifierResolution.js +22 -3
  5. package/dist/agent/IdentifierResolution.js.map +1 -1
  6. package/dist/functions/externalIdentifierFunctions.d.ts +10 -0
  7. package/dist/functions/externalIdentifierFunctions.d.ts.map +1 -0
  8. package/dist/functions/externalIdentifierFunctions.js +167 -0
  9. package/dist/functions/externalIdentifierFunctions.js.map +1 -0
  10. package/dist/functions/index.d.ts +2 -12
  11. package/dist/functions/index.d.ts.map +1 -1
  12. package/dist/functions/index.js +15 -237
  13. package/dist/functions/index.js.map +1 -1
  14. package/dist/functions/managedIdentifierFunctions.d.ts +6 -0
  15. package/dist/functions/managedIdentifierFunctions.d.ts.map +1 -0
  16. package/dist/functions/managedIdentifierFunctions.js +96 -0
  17. package/dist/functions/managedIdentifierFunctions.js.map +1 -0
  18. package/dist/types/IIdentifierResolution.d.ts +18 -159
  19. package/dist/types/IIdentifierResolution.d.ts.map +1 -1
  20. package/dist/types/IIdentifierResolution.js +0 -95
  21. package/dist/types/IIdentifierResolution.js.map +1 -1
  22. package/dist/types/common.d.ts +16 -0
  23. package/dist/types/common.d.ts.map +1 -0
  24. package/dist/types/common.js +32 -0
  25. package/dist/types/common.js.map +1 -0
  26. package/dist/types/externalIdentifierTypes.d.ts +80 -0
  27. package/dist/types/externalIdentifierTypes.d.ts.map +1 -0
  28. package/dist/types/externalIdentifierTypes.js +35 -0
  29. package/dist/types/externalIdentifierTypes.js.map +1 -0
  30. package/dist/types/index.d.ts +5 -0
  31. package/dist/types/index.d.ts.map +1 -0
  32. package/dist/types/index.js +21 -0
  33. package/dist/types/index.js.map +1 -0
  34. package/dist/types/managedIdentifierTypes.d.ts +73 -0
  35. package/dist/types/managedIdentifierTypes.d.ts.map +1 -0
  36. package/dist/types/managedIdentifierTypes.js +41 -0
  37. package/dist/types/managedIdentifierTypes.js.map +1 -0
  38. package/package.json +13 -11
  39. package/plugin.schema.json +849 -100
  40. package/src/agent/IdentifierResolution.ts +31 -8
  41. package/src/functions/externalIdentifierFunctions.ts +183 -0
  42. package/src/functions/index.ts +2 -267
  43. package/src/functions/managedIdentifierFunctions.ts +105 -0
  44. package/src/types/IIdentifierResolution.ts +35 -278
  45. package/src/types/common.ts +37 -0
  46. package/src/types/externalIdentifierTypes.ts +119 -0
  47. package/src/types/index.ts +4 -0
  48. package/src/types/managedIdentifierTypes.ts +121 -0
package/README.md CHANGED
@@ -6,7 +6,9 @@
6
6
  <br>
7
7
  </h1>
8
8
 
9
- A plugin that in a uniform way can resolve any supported external identifiers, as well as get managed identifiers.
9
+ A plugin that in a uniform way can resolve any supported external identifiers, as well as get managed identifiers. It
10
+ performs validations as well as return the objects in a uniform way. Public keys will always be resolved and presented
11
+ as JWKs.
10
12
 
11
13
  Currently, it supports the following identifier methods and types:
12
14
 
@@ -18,7 +20,9 @@ Currently, it supports the following identifier methods and types:
18
20
  TODO:
19
21
 
20
22
  - https .well-knowns (JWKSet)
23
+ - OIDC Discovery
21
24
  - X.509 CN en SANs
25
+ - OID4VCI Issuers
22
26
 
23
27
  Since the plugin dynamically looks for the correct agent plugins based on the types being resolved, this plugin should
24
28
  be used for any and all identifier resolution.
@@ -27,6 +31,381 @@ No matter whether the plugin is doing resolution of external identifiers or mana
27
31
  will always include certain objects, like the JWK key(s) associated, certificates etc. This ensures uniform handling in
28
32
  all places that rely on key/identifier management.
29
33
 
34
+ ## Managed Identifiers
35
+
36
+ Managed or internal identifiers, are identifiers that are being controlled by the agent. This means the agent either has
37
+ access to the private key, or is using a hardware protected mechanism with access to the private key. All of the managed
38
+ methods return both a JWK managed by the agent, an IKey instance, which is the internal key representations, as well as
39
+ a kmsKeyRef allowing you to retrieve the key easily later.
40
+
41
+ Read an identifier by IIdentifier object or DID (or did URL)
42
+
43
+ ### DIDs and IIdentifiers
44
+
45
+ ```typescript
46
+ const identifier = await agent.didManagerCreate({ kms: 'local' })
47
+ // Created an idenftier. For example did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4IjoiR2poUzgzeTJGaWhqYkYzOFBfc01VS2Y5MzVoVnZNRHNjazBEZ3h4bUMzNCIsInkiOiJTcFZPR3g1bGV2UWM1TV9ZM2VBTTJvdWhmRnF0VXNQelVfX0RBSVRYLWhJIn0"
48
+
49
+ let resolution = await agent.identifierManagedGet({ identifier })
50
+ console.log(JSON.stringify(resolution, null, 2))
51
+
52
+ // This is the same as above, but with the benefit of having fully typed response, instead of a union
53
+ resolution = await agent.identifierManagedGetByDid({ identifier })
54
+
55
+ resolution = await agent.identifierManagedGet({
56
+ identifier:
57
+ 'did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4IjoiR2poUzgzeTJGaWhqYkYzOFBfc01VS2Y5MzVoVnZNRHNjazBEZ3h4bUMzNCIsInkiOiJTcFZPR3g1bGV2UWM1TV9ZM2VBTTJvdWhmRnF0VXNQelVfX0RBSVRYLWhJIn0',
58
+ })
59
+ // This is the same as above, but with the benefit of having fully typed response, instead of a union
60
+ resolution = await agent.identifierManagedGetByDid({
61
+ identifier:
62
+ 'did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4IjoiR2poUzgzeTJGaWhqYkYzOFBfc01VS2Y5MzVoVnZNRHNjazBEZ3h4bUMzNCIsInkiOiJTcFZPR3g1bGV2UWM1TV9ZM2VBTTJvdWhmRnF0VXNQelVfX0RBSVRYLWhJIn0',
63
+ })
64
+ ```
65
+
66
+ result (some parts omited for brevity:
67
+
68
+ ```json
69
+ {
70
+ "method": "did",
71
+ "jwk": {
72
+ "alg": "ES256",
73
+ "kty": "EC",
74
+ "crv": "P-256",
75
+ "x": "GjhS83y2FihjbF38P_sMUKf935hVvMDsck0DgxxmC34",
76
+ "y": "SpVOGx5levQc5M_Y3eAM2ouhfFqtUsPzU__DAITX-hI",
77
+ "kid": "77_7PdYbkikec5AR6zSKVIxgNExChvuOLLULBwS6jwc"
78
+ },
79
+ "jwkThumbprint": "77_7PdYbkikec5AR6zSKVIxgNExChvuOLLULBwS6jwc",
80
+ "identifier": {
81
+ "did": "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4IjoiR2poUzgzeTJGaWhqYkYzOFBfc01VS2Y5MzVoVnZNRHNjazBEZ3h4bUMzNCIsInkiOiJTcFZPR3g1bGV2UWM1TV9ZM2VBTTJvdWhmRnF0VXNQelVfX0RBSVRYLWhJIn0",
82
+ "controllerKeyId": "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4IjoiR2poUzgzeTJGaWhqYkYzOFBfc01VS2Y5MzVoVnZNRHNjazBEZ3h4bUMzNCIsInkiOiJTcFZPR3g1bGV2UWM1TV9ZM2VBTTJvdWhmRnF0VXNQelVfX0RBSVRYLWhJIn0#0",
83
+ "keys": [
84
+ {
85
+ <snip>
86
+ "kms": "local"
87
+ }
88
+ ],
89
+ "services": [],
90
+ "provider": "did:jwk"
91
+ },
92
+ "did": "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4IjoiR2poUzgzeTJGaWhqYkYzOFBfc01VS2Y5MzVoVnZNRHNjazBEZ3h4bUMzNCIsInkiOiJTcFZPR3g1bGV2UWM1TV9ZM2VBTTJvdWhmRnF0VXNQelVfX0RBSVRYLWhJIn0",
93
+ "controllerKeyId": "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4IjoiR2poUzgzeTJGaWhqYkYzOFBfc01VS2Y5MzVoVnZNRHNjazBEZ3h4bUMzNCIsInkiOiJTcFZPR3g1bGV2UWM1TV9ZM2VBTTJvdWhmRnF0VXNQelVfX0RBSVRYLWhJIn0#0",
94
+ "keys": [
95
+ {
96
+ <snip,
97
+ see
98
+ key
99
+ below>
100
+ }
101
+ ],
102
+ "key": {
103
+ "type": "Secp256r1",
104
+ "kid": "021a3852f37cb61628636c5dfc3ffb0c50a7fddf9855bcc0ec724d03831c660b7e",
105
+ "publicKeyHex": "021a3852f37cb61628636c5dfc3ffb0c50a7fddf9855bcc0ec724d03831c660b7e",
106
+ "kms": "local",
107
+ "meta": <snip>
108
+ },
109
+ "kmsKeyRef": "021a3852f37cb61628636c5dfc3ffb0c50a7fddf9855bcc0ec724d03831c660b7e"
110
+ }
111
+ ```
112
+
113
+ ### KMS Key reference, JWK Thumbprint
114
+
115
+ Read a managed identifier by kmsRef, or jwkThumbprint, using the above example. The response is the same, minus the
116
+ identifier object, did and controllerKey values in the result as it will be a single key only in this case.
117
+
118
+ ```typescript
119
+ // JWK Thumbprint
120
+ resolution = await agent.identifierManagedGet({ identifier: '77_7PdYbkikec5AR6zSKVIxgNExChvuOLLULBwS6jwc' })
121
+ // This is the same as above, but with the benefit of having fully typed response, instead of a union
122
+ resolution = await agent.identifierManagedGetByKid({ identifier: '77_7PdYbkikec5AR6zSKVIxgNExChvuOLLULBwS6jwc' })
123
+
124
+ // KMS Key ref
125
+ resolution = await agent.identifierManagedGet({ identifier: '021a3852f37cb61628636c5dfc3ffb0c50a7fddf9855bcc0ec724d03831c660b7e' })
126
+ // This is the same as above, but with the benefit of having fully typed response, instead of a union
127
+ resolution = await agent.identifierManagedGetByKid({ identifier: '021a3852f37cb61628636c5dfc3ffb0c50a7fddf9855bcc0ec724d03831c660b7e' })
128
+
129
+ const jwk = {
130
+ alg: 'ES256',
131
+ kty: 'EC',
132
+ crv: 'P-256',
133
+ x: 'GjhS83y2FihjbF38P_sMUKf935hVvMDsck0DgxxmC34',
134
+ y: 'SpVOGx5levQc5M_Y3eAM2ouhfFqtUsPzU__DAITX-hI',
135
+ kid: '77_7PdYbkikec5AR6zSKVIxgNExChvuOLLULBwS6jwc',
136
+ }
137
+
138
+ // By JWK object
139
+ resolution = await agent.identifierManagedGet({ identifier: jwk })
140
+ // This is the same as above, but with the benefit of having fully typed response, instead of a union
141
+ resolution = await agent.identifierManagedGetByJwk({ identifier: jwk })
142
+ ```
143
+
144
+ ## External Identifiers
145
+
146
+ We will use the example JWK above again, as that is an in memory construct, we can also resolve it like an external
147
+ identifier
148
+
149
+ ### DIDs
150
+
151
+ ```typescript
152
+ const did =
153
+ 'did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4IjoiR2poUzgzeTJGaWhqYkYzOFBfc01VS2Y5MzVoVnZNRHNjazBEZ3h4bUMzNCIsInkiOiJTcFZPR3g1bGV2UWM1TV9ZM2VBTTJvdWhmRnF0VXNQelVfX0RBSVRYLWhJIn0'
154
+
155
+ resolution = await agent.identifierExternalResolve({ identifier: did })
156
+ // This is the same as above, but with the benefit of having fully typed response, instead of a union
157
+ resolution = await agent.identifierExternalResolveByDid({ identifier: did })
158
+ console.log(JSON.stringify(resolution, null, 2))
159
+ ```
160
+
161
+ Results in the following JSON, with some properties removed for brevity
162
+
163
+ ```json
164
+ {
165
+ "method": "did",
166
+ "did": "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0",
167
+ "jwks": [
168
+ {
169
+ "jwk": {
170
+ "alg": "ES256",
171
+ "use": "sig",
172
+ "kty": "EC",
173
+ "crv": "P-256",
174
+ "x": "wdIEmfjmaZiGsub9Hffnhbr0xVVVmVLiUYLscgRt-3Y",
175
+ "y": "ept3ke4SslZb7ZbweWKmSaM3166ZuvecZ9ciKs6PDcw",
176
+ "kid": "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0#0"
177
+ },
178
+ "jwkThumbprint": "gBT5We3eKcs3NNBAeJ40iPHbWvqAmY8C8L36rGwOAJk",
179
+ "kid": "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0#0"
180
+ }
181
+ ],
182
+ "didJwks": {
183
+ // These are the JWKs per verification method relationship. For a JWK this includes the above JWK, so we will not repeat it here
184
+ "verificationMethod": [
185
+ {
186
+ <snip>
187
+ }
188
+ ],
189
+ "assertionMethod": [
190
+ {
191
+ <snip>
192
+ }
193
+ ],
194
+ "authentication": [
195
+ {
196
+ <snip>
197
+ }
198
+ ],
199
+ "keyAgreement": [],
200
+ "capabilityInvocation": [
201
+ {
202
+ <snip>
203
+ }
204
+ ],
205
+ "capabilityDelegation": [
206
+ {
207
+ <snip>
208
+ }
209
+ ]
210
+ },
211
+ "didDocument": {
212
+ "@context": [
213
+ "https://www.w3.org/ns/did/v1",
214
+ {
215
+ "@vocab": "https://www.iana.org/assignments/jose#"
216
+ }
217
+ ],
218
+ "id": "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0",
219
+ "verificationMethod": [
220
+ {
221
+ "id": "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0#0",
222
+ "type": "JsonWebKey2020",
223
+ "controller": "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0",
224
+ "publicKeyJwk": {
225
+ "alg": "ES256",
226
+ "use": "sig",
227
+ "kty": "EC",
228
+ "crv": "P-256",
229
+ "x": "wdIEmfjmaZiGsub9Hffnhbr0xVVVmVLiUYLscgRt-3Y",
230
+ "y": "ept3ke4SslZb7ZbweWKmSaM3166ZuvecZ9ciKs6PDcw",
231
+ "kid": "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0#0"
232
+ }
233
+ }
234
+ ],
235
+ "assertionMethod": [
236
+ "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0#0"
237
+ ],
238
+ "authentication": [
239
+ "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0#0"
240
+ ],
241
+ "capabilityInvocation": [
242
+ "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0#0"
243
+ ],
244
+ "capabilityDelegation": [
245
+ "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0#0"
246
+ ]
247
+ },
248
+ "didResolutionResult": {
249
+ "didDocumentMetadata": {},
250
+ "didResolutionMetadata": {
251
+ "contentType": "application/did+ld+json",
252
+ "pattern": "^(did:jwk:.+)$",
253
+ "did": {
254
+ "didString": "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0",
255
+ "methodSpecificId": "eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0",
256
+ "method": "jwk"
257
+ }
258
+ }
259
+ },
260
+ "didParsed": {
261
+ "did": "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0",
262
+ "method": "jwk",
263
+ "id": "eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0",
264
+ "didUrl": "did:jwk:eyJhbGciOiJFUzI1NiIsInVzZSI6InNpZyIsImt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4Ijoid2RJRW1mam1hWmlHc3ViOUhmZm5oYnIweFZWVm1WTGlVWUxzY2dSdC0zWSIsInkiOiJlcHQza2U0U3NsWmI3WmJ3ZVdLbVNhTTMxNjZadXZlY1o5Y2lLczZQRGN3In0"
265
+ }
266
+ }
267
+ ```
268
+
269
+ ### X.509 Certificate Chains
270
+
271
+ You can provide an optional verification time as well using a Date as value. By default the X5C will be fully verified,
272
+ unless the verification param is set to false.
273
+
274
+ ```typescript
275
+ const sphereonCA = 'PEM or DER CERT'
276
+ const sphereonTest = 'PEM or DER CERT'
277
+
278
+ let resolution = await agent.identifierExternalResolve({
279
+ identifier: [sphereonTest, sphereonCA],
280
+ trustAnchors: [sphereonCA],
281
+ })
282
+
283
+ // This is the same as above, but with the benefit of having fully typed response, instead of a union
284
+ resolution = await agent.identifierExternalResolveByX5c({
285
+ identifier: [sphereonTest, sphereonCA],
286
+ trustAnchors: [sphereonCA],
287
+ })
288
+
289
+ console.log(JSON.stringify(resolution, null, 2))
290
+ ```
291
+
292
+ ```json
293
+ {
294
+ "method": "x5c",
295
+ "verificationResult": {
296
+ "error": false,
297
+ "critical": false,
298
+ "message": "Certificate chain was valid",
299
+ "verificationTime": "2024-08-13T13:28:16.457Z",
300
+ "certificateChain": [
301
+ {
302
+ "issuer": {
303
+ "dn": {
304
+ "DN": "C=NL,O=Sphereon International B.V.,OU=IT,CN=ca.sphereon.com",
305
+ "attributes": {
306
+ "C": "NL",
307
+ "O": "Sphereon International B.V.",
308
+ "OU": "IT",
309
+ "CN": "ca.sphereon.com"
310
+ }
311
+ }
312
+ },
313
+ "subject": {
314
+ "dn": {
315
+ "DN": "CN=test123.test.sphereon.com",
316
+ "attributes": {
317
+ "CN": "test123.test.sphereon.com"
318
+ }
319
+ }
320
+ },
321
+ "publicKeyJWK": {
322
+ "key_ops": ["verify"],
323
+ "ext": true,
324
+ "kty": "EC",
325
+ "x": "pyVHVR7IdgWmG_TLb3-K_4dg3XC6GQQWDB61Lna15ns",
326
+ "y": "OcVNCBD0kMmqEaKjbczwd2GvbV1AOxgE7AKsa3L0zxM",
327
+ "crv": "P-256"
328
+ },
329
+ "notBefore": "2024-08-06T20:16:12.000Z",
330
+ "notAfter": "2024-11-04T22:16:12.000Z"
331
+ },
332
+ {
333
+ "issuer": {
334
+ "dn": {
335
+ "DN": "C=NL,O=Sphereon International B.V.,OU=IT,CN=ca.sphereon.com",
336
+ "attributes": {
337
+ "C": "NL",
338
+ "O": "Sphereon International B.V.",
339
+ "OU": "IT",
340
+ "CN": "ca.sphereon.com"
341
+ }
342
+ }
343
+ },
344
+ "subject": {
345
+ "dn": {
346
+ "DN": "C=NL,O=Sphereon International B.V.,OU=IT,CN=ca.sphereon.com",
347
+ "attributes": {
348
+ "C": "NL",
349
+ "O": "Sphereon International B.V.",
350
+ "OU": "IT",
351
+ "CN": "ca.sphereon.com"
352
+ }
353
+ }
354
+ },
355
+ "publicKeyJWK": {
356
+ "key_ops": ["verify"],
357
+ "ext": true,
358
+ "kty": "EC",
359
+ "x": "SIDQp4RJI2s5yYIOBrxiwGRROCjBkbCq8vaf3UlSkAw",
360
+ "y": "dRSwvlVFdqdiLXnk2pQqT1vZnDG0I-x-iz2EbdsG0aY",
361
+ "crv": "P-256"
362
+ },
363
+ "notBefore": "2024-07-28T21:26:49.000Z",
364
+ "notAfter": "2034-07-28T21:26:49.000Z"
365
+ }
366
+ ]
367
+ },
368
+ "issuerJWK": {
369
+ "key_ops": ["verify"],
370
+ "ext": true,
371
+ "kty": "EC",
372
+ "x": "pyVHVR7IdgWmG_TLb3-K_4dg3XC6GQQWDB61Lna15ns",
373
+ "y": "OcVNCBD0kMmqEaKjbczwd2GvbV1AOxgE7AKsa3L0zxM",
374
+ "crv": "P-256"
375
+ },
376
+ "jwks": [
377
+ {
378
+ "jwk": {
379
+ "key_ops": ["verify"],
380
+ "ext": true,
381
+ "kty": "EC",
382
+ "x": "pyVHVR7IdgWmG_TLb3-K_4dg3XC6GQQWDB61Lna15ns",
383
+ "y": "OcVNCBD0kMmqEaKjbczwd2GvbV1AOxgE7AKsa3L0zxM",
384
+ "crv": "P-256"
385
+ },
386
+ "kid": "CN=test123.test.sphereon.com",
387
+ "jwkThumbprint": "LlITYB6tlvSVtVrMtIEzrkkSQkMSoPslhQ3Rnk1x484"
388
+ },
389
+ {
390
+ "jwk": {
391
+ "key_ops": ["verify"],
392
+ "ext": true,
393
+ "kty": "EC",
394
+ "x": "SIDQp4RJI2s5yYIOBrxiwGRROCjBkbCq8vaf3UlSkAw",
395
+ "y": "dRSwvlVFdqdiLXnk2pQqT1vZnDG0I-x-iz2EbdsG0aY",
396
+ "crv": "P-256"
397
+ },
398
+ "kid": "C=NL,O=Sphereon International B.V.,OU=IT,CN=ca.sphereon.com",
399
+ "jwkThumbprint": "1wAefk4zZ8Q8cM-9djHoJhPUtKjVFLqG7u9VftVqulA"
400
+ }
401
+ ],
402
+ "x5c": [
403
+ "MIIC1jCCAnygAwIBAgITALtvb+InWBtzJO3mAeQZIUBXbzAKBggqhkjOPQQDAjBaMQswCQYDVQQGEwJOTDEkMCIGA1UECgwbU3BoZXJlb24gSW50ZXJuYXRpb25hbCBCLlYuMQswCQYDVQQLDAJJVDEYMBYGA1UEAwwPY2Euc3BoZXJlb24uY29tMB4XDTI0MDgwNjIwMTYxMloXDTI0MTEwNDIyMTYxMlowJDEiMCAGA1UEAwwZdGVzdDEyMy50ZXN0LnNwaGVyZW9uLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKclR1UeyHYFphv0y29/iv+HYN1wuhkEFgwetS52teZ7OcVNCBD0kMmqEaKjbczwd2GvbV1AOxgE7AKsa3L0zxOjggFVMIIBUTAdBgNVHQ4EFgQUoWVOwL15ttB1YPUd0HgvYry0Z+UwHwYDVR0jBBgwFoAU5wfKXZVc+cig/s7jZEUegLMsMsEwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vZXUuY2VydC5lemNhLmlvL2NlcnRzL2RhYTFiNGI0LTg1ZmQtNGJhNC1iOTZiLTMzMmFkZDg5OWNlOS5jZXIwEwYDVR0lBAwwCgYIKwYBBQUHAwIwJAYDVR0RBB0wG4IZdGVzdDEyMy50ZXN0LnNwaGVyZW9uLmNvbTAOBgNVHQ8BAf8EBAMCB4AwYQYDVR0fBFowWDBWoFSgUoZQaHR0cDovL2V1LmNybC5lemNhLmlvL2NybC8yY2RmN2M1ZS1iOWNkLTQzMTctYmI1Ni0zODZkMjQ0MzgwZTIvY2FzcGhlcmVvbmNvbS5jcmwwCgYIKoZIzj0EAwIDSAAwRQIgThuggyhKePvRt5YEvfg6MD42N2/63L0ypw0vLZkM+zYCIQD+uInjqsfR6K/D+ebjuOAdhOyeD2nZAW29zN20WIQJsw==",
404
+ "MIICCDCCAa6gAwIBAgITAPMgqwtYzWPBXaobHhxG9iSydTAKBggqhkjOPQQDAjBaMQswCQYDVQQGEwJOTDEkMCIGA1UECgwbU3BoZXJlb24gSW50ZXJuYXRpb25hbCBCLlYuMQswCQYDVQQLDAJJVDEYMBYGA1UEAwwPY2Euc3BoZXJlb24uY29tMB4XDTI0MDcyODIxMjY0OVoXDTM0MDcyODIxMjY0OVowWjELMAkGA1UEBhMCTkwxJDAiBgNVBAoMG1NwaGVyZW9uIEludGVybmF0aW9uYWwgQi5WLjELMAkGA1UECwwCSVQxGDAWBgNVBAMMD2NhLnNwaGVyZW9uLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEiA0KeESSNrOcmCDga8YsBkUTgowZGwqvL2n91JUpAMdRSwvlVFdqdiLXnk2pQqT1vZnDG0I+x+iz2EbdsG0aajUzBRMB0GA1UdDgQWBBTnB8pdlVz5yKD+zuNkRR6AsywywTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMCA0gAMEUCIHH7ie1OAAbff5262rzZVQa8J9zENG8AQlHHFydMdgaXAiEA1Ib82mhHIYDziE0DDbHEAXOs98al+7dpo8fPGVGTeKI="
405
+ ]
406
+ }
407
+ ```
408
+
30
409
  ### Installation
31
410
 
32
411
  ```shell
@@ -1,5 +1,5 @@
1
1
  import { IAgentPlugin } from '@veramo/core';
2
- import { IIdentifierResolution } from '../types/IIdentifierResolution';
2
+ import { IIdentifierResolution } from '../types';
3
3
  /**
4
4
  * @public
5
5
  */
@@ -13,11 +13,19 @@ export declare class IdentifierResolution implements IAgentPlugin {
13
13
  constructor({ crypto: cryptoArg }: {
14
14
  crypto: Crypto;
15
15
  });
16
+ /**
17
+ * Main method for managed identifiers. We always go through this method (also the others) as we want to integrate a plugin for anomaly detection. Having a single method helps
18
+ * @param args
19
+ * @param context
20
+ * @private
21
+ */
16
22
  private identifierGetManaged;
17
23
  private identifierGetManagedByDid;
18
24
  private identifierGetManagedByKid;
19
25
  private identifierGetManagedByJwk;
20
26
  private identifierGetManagedByX5c;
21
27
  private identifierResolveExternal;
28
+ private identifierExternalResolveByDid;
29
+ private identifierExternalResolveByX5c;
22
30
  }
23
31
  //# sourceMappingURL=IdentifierResolution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IdentifierResolution.d.ts","sourceRoot":"","sources":["../../src/agent/IdentifierResolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAA4B,MAAM,cAAc,CAAA;AAgBpF,OAAO,EAA0B,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAE9F;;GAEG;AACH,qBAAa,oBAAqB,YAAW,YAAY;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAEhC,QAAQ,CAAC,MAAM,MAAgC;IAC/C,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAQtC;IAED;;OAEG;gBACS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;YAIvC,oBAAoB;YAIpB,yBAAyB;YAOzB,yBAAyB;YAIzB,yBAAyB;YAIzB,yBAAyB;YAIzB,yBAAyB;CAGxC"}
1
+ {"version":3,"file":"IdentifierResolution.d.ts","sourceRoot":"","sources":["../../src/agent/IdentifierResolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAA4B,MAAM,cAAc,CAAA;AAGpF,OAAO,EAOL,qBAAqB,EAWtB,MAAM,UAAU,CAAA;AAEjB;;GAEG;AACH,qBAAa,oBAAqB,YAAW,YAAY;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAEhC,QAAQ,CAAC,MAAM,MAAgC;IAC/C,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAYtC;IAED;;OAEG;gBACS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAIrD;;;;;OAKG;YACW,oBAAoB;YAIpB,yBAAyB;YAOzB,yBAAyB;YAIzB,yBAAyB;YAIzB,yBAAyB;YAIzB,yBAAyB;YAIzB,8BAA8B;YAI9B,8BAA8B;CAG7C"}
@@ -10,8 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.IdentifierResolution = void 0;
13
+ const __1 = require("..");
13
14
  const functions_1 = require("../functions");
14
- const index_1 = require("../index");
15
15
  /**
16
16
  * @public
17
17
  */
@@ -20,7 +20,7 @@ class IdentifierResolution {
20
20
  * TODO: Add a cache, as we are retrieving the same keys/info quite often
21
21
  */
22
22
  constructor({ crypto: cryptoArg }) {
23
- this.schema = index_1.schema.IMnemonicInfoGenerator;
23
+ this.schema = __1.schema.IMnemonicInfoGenerator;
24
24
  this.methods = {
25
25
  identifierManagedGet: this.identifierGetManaged.bind(this),
26
26
  identifierManagedGetByDid: this.identifierGetManagedByDid.bind(this),
@@ -28,9 +28,18 @@ class IdentifierResolution {
28
28
  identifierManagedGetByJwk: this.identifierGetManagedByJwk.bind(this),
29
29
  identifierManagedGetByX5c: this.identifierGetManagedByX5c.bind(this),
30
30
  identifierExternalResolve: this.identifierResolveExternal.bind(this),
31
+ identifierExternalResolveByDid: this.identifierExternalResolveByDid.bind(this),
32
+ identifierExternalResolveByX5c: this.identifierExternalResolveByX5c.bind(this),
33
+ // todo: JWKSet, oidc-discovery, oid4vci-issuer etc. Anything we already can resolve and need keys of
31
34
  };
32
35
  this._crypto = cryptoArg !== null && cryptoArg !== void 0 ? cryptoArg : global.crypto;
33
36
  }
37
+ /**
38
+ * Main method for managed identifiers. We always go through this method (also the others) as we want to integrate a plugin for anomaly detection. Having a single method helps
39
+ * @param args
40
+ * @param context
41
+ * @private
42
+ */
34
43
  identifierGetManaged(args, context) {
35
44
  return __awaiter(this, void 0, void 0, function* () {
36
45
  return yield (0, functions_1.getManagedIdentifier)(Object.assign(Object.assign({}, args), { crypto: this._crypto }), context);
@@ -58,7 +67,17 @@ class IdentifierResolution {
58
67
  }
59
68
  identifierResolveExternal(args, context) {
60
69
  return __awaiter(this, void 0, void 0, function* () {
61
- return yield (0, functions_1.getManagedIdentifier)(Object.assign(Object.assign({}, args), { crypto: this._crypto }), context);
70
+ return yield (0, functions_1.resolveExternalIdentifier)(Object.assign(Object.assign({}, args), { crypto: this._crypto }), context);
71
+ });
72
+ }
73
+ identifierExternalResolveByDid(args, context) {
74
+ return __awaiter(this, void 0, void 0, function* () {
75
+ return (yield this.identifierResolveExternal(Object.assign(Object.assign({}, args), { method: 'did' }), context));
76
+ });
77
+ }
78
+ identifierExternalResolveByX5c(args, context) {
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ return (yield this.identifierResolveExternal(Object.assign(Object.assign({}, args), { method: 'x5c' }), context));
62
81
  });
63
82
  }
64
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IdentifierResolution.js","sourceRoot":"","sources":["../../src/agent/IdentifierResolution.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,4CAAmD;AAEnD,oCAYiB;AAGjB;;GAEG;AACH,MAAa,oBAAoB;IAc/B;;OAEG;IACH,YAAY,EAAE,MAAM,EAAE,SAAS,EAAsB;QAd5C,WAAM,GAAG,cAAM,CAAC,sBAAsB,CAAA;QACtC,YAAO,GAA0B;YACxC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1D,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;YACpE,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;YACpE,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;YACpE,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;YAEpE,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;SACrE,CAAA;QAMC,IAAI,CAAC,OAAO,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,MAAM,CAAC,MAAM,CAAA;IAC3C,CAAC;IAEa,oBAAoB,CAAC,IAA2B,EAAE,OAAmC;;YACjG,OAAO,MAAM,IAAA,gCAAoB,kCAAM,IAAI,KAAE,MAAM,EAAE,IAAI,CAAC,OAAO,KAAI,OAAO,CAAC,CAAA;QAC/E,CAAC;KAAA;IAEa,yBAAyB,CACrC,IAA8B,EAC9B,OAAiD;;YAEjD,OAAO,CAAC,MAAM,IAAI,CAAC,oBAAoB,iCAAM,IAAI,KAAE,MAAM,EAAE,KAAK,KAAI,OAAO,CAAC,CAA+B,CAAA;QAC7G,CAAC;KAAA;IAEa,yBAAyB,CAAC,IAA8B,EAAE,OAAmC;;YACzG,OAAO,CAAC,MAAM,IAAI,CAAC,oBAAoB,iCAAM,IAAI,KAAE,MAAM,EAAE,KAAK,KAAI,OAAO,CAAC,CAA+B,CAAA;QAC7G,CAAC;KAAA;IAEa,yBAAyB,CAAC,IAA8B,EAAE,OAAmC;;YACzG,OAAO,CAAC,MAAM,IAAI,CAAC,oBAAoB,iCAAM,IAAI,KAAE,MAAM,EAAE,KAAK,KAAI,OAAO,CAAC,CAA+B,CAAA;QAC7G,CAAC;KAAA;IAEa,yBAAyB,CAAC,IAA8B,EAAE,OAAmC;;YACzG,OAAO,CAAC,MAAM,IAAI,CAAC,oBAAoB,iCAAM,IAAI,KAAE,MAAM,EAAE,KAAK,KAAI,OAAO,CAAC,CAA+B,CAAA;QAC7G,CAAC;KAAA;IAEa,yBAAyB,CAAC,IAA4B,EAAE,OAAmC;;YACvG,OAAO,MAAM,IAAA,gCAAoB,kCAAM,IAAI,KAAE,MAAM,EAAE,IAAI,CAAC,OAAO,KAAI,OAAO,CAAC,CAAA;QAC/E,CAAC;KAAA;CACF;AA/CD,oDA+CC"}
1
+ {"version":3,"file":"IdentifierResolution.js","sourceRoot":"","sources":["../../src/agent/IdentifierResolution.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,0BAA2B;AAC3B,4CAA8E;AAqB9E;;GAEG;AACH,MAAa,oBAAoB;IAkB/B;;OAEG;IACH,YAAY,EAAE,MAAM,EAAE,SAAS,EAAsB;QAlB5C,WAAM,GAAG,UAAM,CAAC,sBAAsB,CAAA;QACtC,YAAO,GAA0B;YACxC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1D,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;YACpE,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;YACpE,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;YACpE,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;YAEpE,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;YACpE,8BAA8B,EAAE,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9E,8BAA8B,EAAE,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC;YAE9E,qGAAqG;SACtG,CAAA;QAMC,IAAI,CAAC,OAAO,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,MAAM,CAAC,MAAM,CAAA;IAC3C,CAAC;IAED;;;;;OAKG;IACW,oBAAoB,CAAC,IAA2B,EAAE,OAAmC;;YACjG,OAAO,MAAM,IAAA,gCAAoB,kCAAM,IAAI,KAAE,MAAM,EAAE,IAAI,CAAC,OAAO,KAAI,OAAO,CAAC,CAAA;QAC/E,CAAC;KAAA;IAEa,yBAAyB,CACrC,IAA8B,EAC9B,OAAiD;;YAEjD,OAAO,CAAC,MAAM,IAAI,CAAC,oBAAoB,iCAAM,IAAI,KAAE,MAAM,EAAE,KAAK,KAAI,OAAO,CAAC,CAA+B,CAAA;QAC7G,CAAC;KAAA;IAEa,yBAAyB,CAAC,IAA8B,EAAE,OAAmC;;YACzG,OAAO,CAAC,MAAM,IAAI,CAAC,oBAAoB,iCAAM,IAAI,KAAE,MAAM,EAAE,KAAK,KAAI,OAAO,CAAC,CAA+B,CAAA;QAC7G,CAAC;KAAA;IAEa,yBAAyB,CAAC,IAA8B,EAAE,OAAmC;;YACzG,OAAO,CAAC,MAAM,IAAI,CAAC,oBAAoB,iCAAM,IAAI,KAAE,MAAM,EAAE,KAAK,KAAI,OAAO,CAAC,CAA+B,CAAA;QAC7G,CAAC;KAAA;IAEa,yBAAyB,CAAC,IAA8B,EAAE,OAAmC;;YACzG,OAAO,CAAC,MAAM,IAAI,CAAC,oBAAoB,iCAAM,IAAI,KAAE,MAAM,EAAE,KAAK,KAAI,OAAO,CAAC,CAA+B,CAAA;QAC7G,CAAC;KAAA;IAEa,yBAAyB,CAAC,IAA4B,EAAE,OAAmC;;YACvG,OAAO,MAAM,IAAA,qCAAyB,kCAAM,IAAI,KAAE,MAAM,EAAE,IAAI,CAAC,OAAO,KAAI,OAAO,CAAC,CAAA;QACpF,CAAC;KAAA;IAEa,8BAA8B,CAAC,IAA+B,EAAE,OAA2B;;YACvG,OAAO,CAAC,MAAM,IAAI,CAAC,yBAAyB,iCAAM,IAAI,KAAE,MAAM,EAAE,KAAK,KAAI,OAAO,CAAC,CAAgC,CAAA;QACnH,CAAC;KAAA;IAEa,8BAA8B,CAAC,IAA+B,EAAE,OAA2B;;YACvG,OAAO,CAAC,MAAM,IAAI,CAAC,yBAAyB,iCAAM,IAAI,KAAE,MAAM,EAAE,KAAK,KAAI,OAAO,CAAC,CAAgC,CAAA;QACnH,CAAC;KAAA;CACF;AAjED,oDAiEC"}
@@ -0,0 +1,10 @@
1
+ import { IAgentContext, IDIDManager, IResolver } from '@veramo/core';
2
+ import { ExternalIdentifierDidOpts, ExternalIdentifierDidResult, ExternalIdentifierOpts, ExternalIdentifierResult, ExternalIdentifierX5cOpts, ExternalIdentifierX5cResult } from '../types';
3
+ export declare function resolveExternalIdentifier(opts: ExternalIdentifierOpts & {
4
+ crypto?: Crypto;
5
+ }, context: IAgentContext<any>): Promise<ExternalIdentifierResult>;
6
+ export declare function resolveExternalX5cIdentifier(opts: ExternalIdentifierX5cOpts & {
7
+ crypto?: Crypto;
8
+ }, context: IAgentContext<IResolver & IDIDManager>): Promise<ExternalIdentifierX5cResult>;
9
+ export declare function resolveExternalDidIdentifier(opts: ExternalIdentifierDidOpts, context: IAgentContext<IResolver & IDIDManager>): Promise<ExternalIdentifierDidResult>;
10
+ //# sourceMappingURL=externalIdentifierFunctions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"externalIdentifierFunctions.d.ts","sourceRoot":"","sources":["../../src/functions/externalIdentifierFunctions.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGpE,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAE3B,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAO5B,MAAM,UAAU,CAAA;AAEjB,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,sBAAsB,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,EACD,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,GAC1B,OAAO,CAAC,wBAAwB,CAAC,CAcnC;AAED,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,yBAAyB,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,EACD,OAAO,EAAE,aAAa,CAAC,SAAS,GAAG,WAAW,CAAC,GAC9C,OAAO,CAAC,2BAA2B,CAAC,CAyEtC;AAED,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,aAAa,CAAC,SAAS,GAAG,WAAW,CAAC,GAC9C,OAAO,CAAC,2BAA2B,CAAC,CAgDtC"}