@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.
- package/README.md +380 -1
- package/dist/agent/IdentifierResolution.d.ts +9 -1
- package/dist/agent/IdentifierResolution.d.ts.map +1 -1
- package/dist/agent/IdentifierResolution.js +22 -3
- package/dist/agent/IdentifierResolution.js.map +1 -1
- package/dist/functions/externalIdentifierFunctions.d.ts +10 -0
- package/dist/functions/externalIdentifierFunctions.d.ts.map +1 -0
- package/dist/functions/externalIdentifierFunctions.js +167 -0
- package/dist/functions/externalIdentifierFunctions.js.map +1 -0
- package/dist/functions/index.d.ts +2 -12
- package/dist/functions/index.d.ts.map +1 -1
- package/dist/functions/index.js +15 -237
- package/dist/functions/index.js.map +1 -1
- package/dist/functions/managedIdentifierFunctions.d.ts +6 -0
- package/dist/functions/managedIdentifierFunctions.d.ts.map +1 -0
- package/dist/functions/managedIdentifierFunctions.js +96 -0
- package/dist/functions/managedIdentifierFunctions.js.map +1 -0
- package/dist/types/IIdentifierResolution.d.ts +18 -159
- package/dist/types/IIdentifierResolution.d.ts.map +1 -1
- package/dist/types/IIdentifierResolution.js +0 -95
- package/dist/types/IIdentifierResolution.js.map +1 -1
- package/dist/types/common.d.ts +16 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +32 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/externalIdentifierTypes.d.ts +80 -0
- package/dist/types/externalIdentifierTypes.d.ts.map +1 -0
- package/dist/types/externalIdentifierTypes.js +35 -0
- package/dist/types/externalIdentifierTypes.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +21 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/managedIdentifierTypes.d.ts +73 -0
- package/dist/types/managedIdentifierTypes.d.ts.map +1 -0
- package/dist/types/managedIdentifierTypes.js +41 -0
- package/dist/types/managedIdentifierTypes.js.map +1 -0
- package/package.json +13 -11
- package/plugin.schema.json +849 -100
- package/src/agent/IdentifierResolution.ts +31 -8
- package/src/functions/externalIdentifierFunctions.ts +183 -0
- package/src/functions/index.ts +2 -267
- package/src/functions/managedIdentifierFunctions.ts +105 -0
- package/src/types/IIdentifierResolution.ts +35 -278
- package/src/types/common.ts +37 -0
- package/src/types/externalIdentifierTypes.ts +119 -0
- package/src/types/index.ts +4 -0
- 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
|
|
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;
|
|
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 =
|
|
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.
|
|
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,
|
|
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"}
|