@sphereon/ssi-sdk.siopv2-oid4vp-rp-auth 0.34.1-feature.SSISDK.58.host.nonce.endpoint.145 → 0.34.1-feature.SSISDK.58.host.nonce.endpoint.194
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +340 -353
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +722 -34
- package/dist/index.d.ts +722 -34
- package/dist/index.js +333 -347
- package/dist/index.js.map +1 -1
- package/package.json +17 -17
- package/src/RPInstance.ts +6 -4
- package/src/agent/SIOPv2RP.ts +41 -51
- package/src/functions.ts +20 -16
- package/src/index.ts +1 -1
- package/src/types/ISIOPv2RP.ts +19 -28
package/dist/index.js
CHANGED
|
@@ -1,353 +1,346 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
3
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
4
|
-
var __commonJS = (cb, mod) => function __require() {
|
|
5
|
-
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
6
|
-
};
|
|
7
3
|
|
|
8
4
|
// plugin.schema.json
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
sessionId: {
|
|
19
|
-
type: "string"
|
|
20
|
-
},
|
|
21
|
-
additionalProperties: false
|
|
22
|
-
},
|
|
23
|
-
required: ["sessionId"],
|
|
24
|
-
description: "Arguments needed for {@link DidAuthSiopOpAuthenticator.getSessionForSiop } "
|
|
5
|
+
var plugin_schema_default = {
|
|
6
|
+
IDidAuthSiopOpAuthenticator: {
|
|
7
|
+
components: {
|
|
8
|
+
schemas: {
|
|
9
|
+
IGetSiopSessionArgs: {
|
|
10
|
+
type: "object",
|
|
11
|
+
properties: {
|
|
12
|
+
sessionId: {
|
|
13
|
+
type: "string"
|
|
25
14
|
},
|
|
26
|
-
|
|
15
|
+
additionalProperties: false
|
|
16
|
+
},
|
|
17
|
+
required: ["sessionId"],
|
|
18
|
+
description: "Arguments needed for {@link DidAuthSiopOpAuthenticator.getSessionForSiop } "
|
|
19
|
+
},
|
|
20
|
+
IRegisterSiopSessionArgs: {
|
|
21
|
+
type: "object",
|
|
22
|
+
properties: {
|
|
23
|
+
identifier: {
|
|
27
24
|
type: "object",
|
|
28
25
|
properties: {
|
|
29
|
-
|
|
30
|
-
type: "object",
|
|
31
|
-
properties: {
|
|
32
|
-
did: {
|
|
33
|
-
type: "string"
|
|
34
|
-
},
|
|
35
|
-
alias: {
|
|
36
|
-
type: "string"
|
|
37
|
-
},
|
|
38
|
-
provider: {
|
|
39
|
-
type: "string"
|
|
40
|
-
},
|
|
41
|
-
controllerKeyId: {
|
|
42
|
-
type: "string"
|
|
43
|
-
},
|
|
44
|
-
keys: {
|
|
45
|
-
type: "array",
|
|
46
|
-
items: {
|
|
47
|
-
type: "object",
|
|
48
|
-
properties: {
|
|
49
|
-
additionalProperties: true
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
services: {
|
|
54
|
-
type: "array",
|
|
55
|
-
items: {
|
|
56
|
-
type: "object",
|
|
57
|
-
properties: {
|
|
58
|
-
additionalProperties: true
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
additionalProperties: false,
|
|
64
|
-
required: ["did", "provider", "keys", "services"]
|
|
65
|
-
},
|
|
66
|
-
sessionId: {
|
|
26
|
+
did: {
|
|
67
27
|
type: "string"
|
|
68
28
|
},
|
|
69
|
-
|
|
70
|
-
type: "number"
|
|
71
|
-
},
|
|
72
|
-
additionalProperties: false
|
|
73
|
-
},
|
|
74
|
-
required: ["identifier"],
|
|
75
|
-
description: "Arguments needed for {@link DidAuthSiopOpAuthenticator.registerSessionForSiop } "
|
|
76
|
-
},
|
|
77
|
-
IRemoveSiopSessionArgs: {
|
|
78
|
-
type: "object",
|
|
79
|
-
properties: {
|
|
80
|
-
sessionId: {
|
|
29
|
+
alias: {
|
|
81
30
|
type: "string"
|
|
82
31
|
},
|
|
83
|
-
|
|
84
|
-
},
|
|
85
|
-
required: ["sessionId"],
|
|
86
|
-
description: "Arguments needed for {@link DidAuthSiopOpAuthenticator.removeSessionForSiop } "
|
|
87
|
-
},
|
|
88
|
-
IAuthenticateWithSiopArgs: {
|
|
89
|
-
type: "object",
|
|
90
|
-
properties: {
|
|
91
|
-
sessionId: {
|
|
32
|
+
provider: {
|
|
92
33
|
type: "string"
|
|
93
34
|
},
|
|
94
|
-
|
|
35
|
+
controllerKeyId: {
|
|
95
36
|
type: "string"
|
|
96
37
|
},
|
|
97
|
-
|
|
98
|
-
type: "
|
|
38
|
+
keys: {
|
|
39
|
+
type: "array",
|
|
40
|
+
items: {
|
|
41
|
+
type: "object",
|
|
42
|
+
properties: {
|
|
43
|
+
additionalProperties: true
|
|
44
|
+
}
|
|
45
|
+
}
|
|
99
46
|
},
|
|
100
|
-
|
|
47
|
+
services: {
|
|
48
|
+
type: "array",
|
|
49
|
+
items: {
|
|
50
|
+
type: "object",
|
|
51
|
+
properties: {
|
|
52
|
+
additionalProperties: true
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
101
56
|
},
|
|
102
|
-
|
|
103
|
-
|
|
57
|
+
additionalProperties: false,
|
|
58
|
+
required: ["did", "provider", "keys", "services"]
|
|
59
|
+
},
|
|
60
|
+
sessionId: {
|
|
61
|
+
type: "string"
|
|
62
|
+
},
|
|
63
|
+
expiresIn: {
|
|
64
|
+
type: "number"
|
|
65
|
+
},
|
|
66
|
+
additionalProperties: false
|
|
67
|
+
},
|
|
68
|
+
required: ["identifier"],
|
|
69
|
+
description: "Arguments needed for {@link DidAuthSiopOpAuthenticator.registerSessionForSiop } "
|
|
70
|
+
},
|
|
71
|
+
IRemoveSiopSessionArgs: {
|
|
72
|
+
type: "object",
|
|
73
|
+
properties: {
|
|
74
|
+
sessionId: {
|
|
75
|
+
type: "string"
|
|
76
|
+
},
|
|
77
|
+
additionalProperties: false
|
|
78
|
+
},
|
|
79
|
+
required: ["sessionId"],
|
|
80
|
+
description: "Arguments needed for {@link DidAuthSiopOpAuthenticator.removeSessionForSiop } "
|
|
81
|
+
},
|
|
82
|
+
IAuthenticateWithSiopArgs: {
|
|
83
|
+
type: "object",
|
|
84
|
+
properties: {
|
|
85
|
+
sessionId: {
|
|
86
|
+
type: "string"
|
|
87
|
+
},
|
|
88
|
+
stateId: {
|
|
89
|
+
type: "string"
|
|
90
|
+
},
|
|
91
|
+
redirectUrl: {
|
|
92
|
+
type: "string"
|
|
93
|
+
},
|
|
94
|
+
additionalProperties: false
|
|
95
|
+
},
|
|
96
|
+
required: ["sessionId", "stateId", "redirectUrl"],
|
|
97
|
+
description: "Arguments needed for {@link DidAuthSiopOpAuthenticator.authenticateWithSiop } "
|
|
98
|
+
},
|
|
99
|
+
IResponse: {
|
|
100
|
+
type: "object",
|
|
101
|
+
properties: {
|
|
102
|
+
status: {
|
|
103
|
+
type: "number"
|
|
104
|
+
},
|
|
105
|
+
additionalProperties: true
|
|
106
|
+
},
|
|
107
|
+
required: ["status"],
|
|
108
|
+
description: "Result of {@link DidAuthSiopOpAuthenticator.authenticateWithSiop & DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } "
|
|
109
|
+
},
|
|
110
|
+
IGetSiopAuthenticationRequestFromRpArgs: {
|
|
111
|
+
type: "object",
|
|
112
|
+
properties: {
|
|
113
|
+
sessionId: {
|
|
114
|
+
type: "string"
|
|
115
|
+
},
|
|
116
|
+
stateId: {
|
|
117
|
+
type: "string"
|
|
118
|
+
},
|
|
119
|
+
redirectUrl: {
|
|
120
|
+
type: "string"
|
|
121
|
+
},
|
|
122
|
+
additionalProperties: false
|
|
123
|
+
},
|
|
124
|
+
required: ["sessionId", "stateId", "redirectUrl"],
|
|
125
|
+
description: "Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } "
|
|
126
|
+
},
|
|
127
|
+
ParsedAuthenticationRequestURI: {
|
|
128
|
+
type: "object",
|
|
129
|
+
properties: {
|
|
130
|
+
jwt: {
|
|
131
|
+
type: "string"
|
|
104
132
|
},
|
|
105
|
-
|
|
133
|
+
requestPayload: {
|
|
106
134
|
type: "object",
|
|
107
135
|
properties: {
|
|
108
|
-
status: {
|
|
109
|
-
type: "number"
|
|
110
|
-
},
|
|
111
136
|
additionalProperties: true
|
|
112
|
-
}
|
|
113
|
-
required: ["status"],
|
|
114
|
-
description: "Result of {@link DidAuthSiopOpAuthenticator.authenticateWithSiop & DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } "
|
|
137
|
+
}
|
|
115
138
|
},
|
|
116
|
-
|
|
139
|
+
registration: {
|
|
117
140
|
type: "object",
|
|
118
141
|
properties: {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
},
|
|
122
|
-
stateId: {
|
|
123
|
-
type: "string"
|
|
124
|
-
},
|
|
125
|
-
redirectUrl: {
|
|
126
|
-
type: "string"
|
|
127
|
-
},
|
|
128
|
-
additionalProperties: false
|
|
129
|
-
},
|
|
130
|
-
required: ["sessionId", "stateId", "redirectUrl"],
|
|
131
|
-
description: "Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } "
|
|
142
|
+
additionalProperties: true
|
|
143
|
+
}
|
|
132
144
|
},
|
|
133
|
-
|
|
145
|
+
additionalProperties: false
|
|
146
|
+
},
|
|
147
|
+
required: ["jwt", "requestPayload", "registration"],
|
|
148
|
+
description: "Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } "
|
|
149
|
+
},
|
|
150
|
+
IGetSiopAuthenticationRequestDetailsArgs: {
|
|
151
|
+
type: "object",
|
|
152
|
+
properties: {
|
|
153
|
+
sessionId: {
|
|
154
|
+
type: "string"
|
|
155
|
+
},
|
|
156
|
+
verifiedAuthenticationRequest: {
|
|
134
157
|
type: "object",
|
|
135
158
|
properties: {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
},
|
|
139
|
-
requestPayload: {
|
|
140
|
-
type: "object",
|
|
141
|
-
properties: {
|
|
142
|
-
additionalProperties: true
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
registration: {
|
|
146
|
-
type: "object",
|
|
147
|
-
properties: {
|
|
148
|
-
additionalProperties: true
|
|
149
|
-
}
|
|
150
|
-
},
|
|
151
|
-
additionalProperties: false
|
|
152
|
-
},
|
|
153
|
-
required: ["jwt", "requestPayload", "registration"],
|
|
154
|
-
description: "Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } "
|
|
159
|
+
additionalProperties: true
|
|
160
|
+
}
|
|
155
161
|
},
|
|
156
|
-
|
|
162
|
+
credentialFilter: {
|
|
157
163
|
type: "object",
|
|
158
164
|
properties: {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
165
|
+
additionalProperties: true
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
additionalProperties: false
|
|
169
|
+
},
|
|
170
|
+
required: ["sessionId", "verifiedAuthenticationRequest"],
|
|
171
|
+
description: "Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } "
|
|
172
|
+
},
|
|
173
|
+
IAuthRequestDetails: {
|
|
174
|
+
type: "object",
|
|
175
|
+
properties: {
|
|
176
|
+
id: {
|
|
177
|
+
type: "string"
|
|
178
|
+
},
|
|
179
|
+
alsoKnownAs: {
|
|
180
|
+
type: "array",
|
|
181
|
+
items: {
|
|
182
|
+
type: "string"
|
|
183
|
+
}
|
|
178
184
|
},
|
|
179
|
-
|
|
185
|
+
vpResponseOpts: {
|
|
180
186
|
type: "object",
|
|
181
187
|
properties: {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
}
|
|
196
|
-
},
|
|
197
|
-
additionalProperties: false
|
|
198
|
-
},
|
|
199
|
-
required: ["id", "vpResponseOpts"],
|
|
200
|
-
description: "Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } "
|
|
188
|
+
additionalProperties: true
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
additionalProperties: false
|
|
192
|
+
},
|
|
193
|
+
required: ["id", "vpResponseOpts"],
|
|
194
|
+
description: "Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } "
|
|
195
|
+
},
|
|
196
|
+
IVerifySiopAuthenticationRequestUriArgs: {
|
|
197
|
+
type: "object",
|
|
198
|
+
properties: {
|
|
199
|
+
sessionId: {
|
|
200
|
+
type: "string"
|
|
201
201
|
},
|
|
202
|
-
|
|
202
|
+
ParsedAuthenticationRequestURI: {
|
|
203
203
|
type: "object",
|
|
204
204
|
properties: {
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
},
|
|
208
|
-
ParsedAuthenticationRequestURI: {
|
|
209
|
-
type: "object",
|
|
210
|
-
properties: {
|
|
211
|
-
additionalProperties: true
|
|
212
|
-
}
|
|
213
|
-
},
|
|
214
|
-
additionalProperties: false
|
|
215
|
-
},
|
|
216
|
-
required: ["sessionId", "ParsedAuthenticationRequestURI"],
|
|
217
|
-
description: "Arguments needed for {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } "
|
|
205
|
+
additionalProperties: true
|
|
206
|
+
}
|
|
218
207
|
},
|
|
219
|
-
|
|
208
|
+
additionalProperties: false
|
|
209
|
+
},
|
|
210
|
+
required: ["sessionId", "ParsedAuthenticationRequestURI"],
|
|
211
|
+
description: "Arguments needed for {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } "
|
|
212
|
+
},
|
|
213
|
+
VerifiedAuthorizationRequest: {
|
|
214
|
+
type: "object",
|
|
215
|
+
properties: {
|
|
216
|
+
payload: {
|
|
220
217
|
type: "object",
|
|
221
218
|
properties: {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
properties: {
|
|
225
|
-
additionalProperties: true
|
|
226
|
-
}
|
|
227
|
-
},
|
|
228
|
-
presentationDefinitions: {
|
|
229
|
-
type: "object",
|
|
230
|
-
properties: {
|
|
231
|
-
additionalProperties: true
|
|
232
|
-
}
|
|
233
|
-
},
|
|
234
|
-
verifyOpts: {
|
|
235
|
-
type: "object",
|
|
236
|
-
properties: {
|
|
237
|
-
additionalProperties: true
|
|
238
|
-
}
|
|
239
|
-
},
|
|
240
|
-
additionalProperties: false
|
|
241
|
-
},
|
|
242
|
-
required: ["payload", "verifyOpts"],
|
|
243
|
-
description: "Result of {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } "
|
|
219
|
+
additionalProperties: true
|
|
220
|
+
}
|
|
244
221
|
},
|
|
245
|
-
|
|
222
|
+
presentationDefinitions: {
|
|
246
223
|
type: "object",
|
|
247
224
|
properties: {
|
|
248
|
-
|
|
249
|
-
type: "string"
|
|
250
|
-
},
|
|
251
|
-
verifiedAuthenticationRequest: {
|
|
252
|
-
type: "object",
|
|
253
|
-
properties: {
|
|
254
|
-
additionalProperties: true
|
|
255
|
-
}
|
|
256
|
-
},
|
|
257
|
-
verifiablePresentationResponse: {
|
|
258
|
-
type: "object",
|
|
259
|
-
properties: {
|
|
260
|
-
additionalProperties: true
|
|
261
|
-
}
|
|
262
|
-
},
|
|
263
|
-
additionalProperties: false
|
|
264
|
-
},
|
|
265
|
-
required: ["sessionId", "verifiedAuthenticationRequest"],
|
|
266
|
-
description: "Arguments needed for {@link DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } "
|
|
267
|
-
}
|
|
268
|
-
},
|
|
269
|
-
methods: {
|
|
270
|
-
getSessionForSiop: {
|
|
271
|
-
description: "Get SIOP session",
|
|
272
|
-
arguments: {
|
|
273
|
-
$ref: "#/components/schemas/IGetSiopSessionArgs"
|
|
274
|
-
},
|
|
275
|
-
returnType: "object"
|
|
276
|
-
},
|
|
277
|
-
registerSessionForSiop: {
|
|
278
|
-
description: "Register SIOP session",
|
|
279
|
-
arguments: {
|
|
280
|
-
$ref: "#/components/schemas/IRegisterSiopSessionArgs"
|
|
281
|
-
},
|
|
282
|
-
returnType: "object"
|
|
283
|
-
},
|
|
284
|
-
removeSessionForSiop: {
|
|
285
|
-
description: "Remove SIOP session",
|
|
286
|
-
arguments: {
|
|
287
|
-
$ref: "#/components/schemas/IRemoveSiopSessionArgs"
|
|
288
|
-
},
|
|
289
|
-
returnType: "boolean"
|
|
290
|
-
},
|
|
291
|
-
authenticateWithSiop: {
|
|
292
|
-
description: "Authenticate using DID Auth SIOP",
|
|
293
|
-
arguments: {
|
|
294
|
-
$ref: "#/components/schemas/IAuthenticateWithSiopArgs"
|
|
295
|
-
},
|
|
296
|
-
returnType: {
|
|
297
|
-
$ref: "#/components/schemas/Response"
|
|
225
|
+
additionalProperties: true
|
|
298
226
|
}
|
|
299
227
|
},
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
},
|
|
305
|
-
returnType: {
|
|
306
|
-
$ref: "#/components/schemas/ParsedAuthenticationRequestURI"
|
|
228
|
+
verifyOpts: {
|
|
229
|
+
type: "object",
|
|
230
|
+
properties: {
|
|
231
|
+
additionalProperties: true
|
|
307
232
|
}
|
|
308
233
|
},
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
234
|
+
additionalProperties: false
|
|
235
|
+
},
|
|
236
|
+
required: ["payload", "verifyOpts"],
|
|
237
|
+
description: "Result of {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } "
|
|
238
|
+
},
|
|
239
|
+
ISendSiopAuthenticationResponseArgs: {
|
|
240
|
+
type: "object",
|
|
241
|
+
properties: {
|
|
242
|
+
sessionId: {
|
|
243
|
+
type: "string"
|
|
317
244
|
},
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
},
|
|
323
|
-
returnType: {
|
|
324
|
-
$ref: "#/components/schemas/VerifiedAuthorizationRequest"
|
|
245
|
+
verifiedAuthenticationRequest: {
|
|
246
|
+
type: "object",
|
|
247
|
+
properties: {
|
|
248
|
+
additionalProperties: true
|
|
325
249
|
}
|
|
326
250
|
},
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
},
|
|
332
|
-
returnType: {
|
|
333
|
-
$ref: "#/components/schemas/IRequiredContext"
|
|
251
|
+
verifiablePresentationResponse: {
|
|
252
|
+
type: "object",
|
|
253
|
+
properties: {
|
|
254
|
+
additionalProperties: true
|
|
334
255
|
}
|
|
335
|
-
}
|
|
256
|
+
},
|
|
257
|
+
additionalProperties: false
|
|
258
|
+
},
|
|
259
|
+
required: ["sessionId", "verifiedAuthenticationRequest"],
|
|
260
|
+
description: "Arguments needed for {@link DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } "
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
methods: {
|
|
264
|
+
getSessionForSiop: {
|
|
265
|
+
description: "Get SIOP session",
|
|
266
|
+
arguments: {
|
|
267
|
+
$ref: "#/components/schemas/IGetSiopSessionArgs"
|
|
268
|
+
},
|
|
269
|
+
returnType: "object"
|
|
270
|
+
},
|
|
271
|
+
registerSessionForSiop: {
|
|
272
|
+
description: "Register SIOP session",
|
|
273
|
+
arguments: {
|
|
274
|
+
$ref: "#/components/schemas/IRegisterSiopSessionArgs"
|
|
275
|
+
},
|
|
276
|
+
returnType: "object"
|
|
277
|
+
},
|
|
278
|
+
removeSessionForSiop: {
|
|
279
|
+
description: "Remove SIOP session",
|
|
280
|
+
arguments: {
|
|
281
|
+
$ref: "#/components/schemas/IRemoveSiopSessionArgs"
|
|
282
|
+
},
|
|
283
|
+
returnType: "boolean"
|
|
284
|
+
},
|
|
285
|
+
authenticateWithSiop: {
|
|
286
|
+
description: "Authenticate using DID Auth SIOP",
|
|
287
|
+
arguments: {
|
|
288
|
+
$ref: "#/components/schemas/IAuthenticateWithSiopArgs"
|
|
289
|
+
},
|
|
290
|
+
returnType: {
|
|
291
|
+
$ref: "#/components/schemas/Response"
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
getSiopAuthenticationRequestFromRP: {
|
|
295
|
+
description: "Get authentication request from RP",
|
|
296
|
+
arguments: {
|
|
297
|
+
$ref: "#/components/schemas/IGetSiopAuthenticationRequestFromRpArgs"
|
|
298
|
+
},
|
|
299
|
+
returnType: {
|
|
300
|
+
$ref: "#/components/schemas/ParsedAuthenticationRequestURI"
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
getSiopAuthenticationRequestDetails: {
|
|
304
|
+
description: "Get authentication request details",
|
|
305
|
+
arguments: {
|
|
306
|
+
$ref: "#/components/schemas/IGetSiopAuthenticationRequestDetailsArgs"
|
|
307
|
+
},
|
|
308
|
+
returnType: {
|
|
309
|
+
$ref: "#/components/schemas/IAuthRequestDetails"
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
verifySiopAuthenticationRequestURI: {
|
|
313
|
+
description: "Verify authentication request URI",
|
|
314
|
+
arguments: {
|
|
315
|
+
$ref: "#/components/schemas/IVerifySiopAuthenticationRequestUriArgs"
|
|
316
|
+
},
|
|
317
|
+
returnType: {
|
|
318
|
+
$ref: "#/components/schemas/VerifiedAuthorizationRequest"
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
sendSiopAuthenticationResponse: {
|
|
322
|
+
description: "Send authentication response",
|
|
323
|
+
arguments: {
|
|
324
|
+
$ref: "#/components/schemas/ISendSiopAuthenticationResponseArgs"
|
|
325
|
+
},
|
|
326
|
+
returnType: {
|
|
327
|
+
$ref: "#/components/schemas/IRequiredContext"
|
|
336
328
|
}
|
|
337
329
|
}
|
|
338
330
|
}
|
|
339
|
-
}
|
|
331
|
+
}
|
|
340
332
|
}
|
|
341
|
-
}
|
|
333
|
+
};
|
|
342
334
|
|
|
343
335
|
// src/agent/SIOPv2RP.ts
|
|
344
336
|
import { AuthorizationResponseStateStatus, decodeUriAsJson } from "@sphereon/did-auth-siop";
|
|
345
337
|
import { getAgentResolver as getAgentResolver2 } from "@sphereon/ssi-sdk-ext.did-utils";
|
|
338
|
+
import { shaHasher as defaultHasher2 } from "@sphereon/ssi-sdk.core";
|
|
346
339
|
import { CredentialMapper as CredentialMapper2 } from "@sphereon/ssi-types";
|
|
347
340
|
import { DcqlQuery } from "dcql";
|
|
348
341
|
|
|
349
342
|
// src/functions.ts
|
|
350
|
-
import { InMemoryRPSessionManager, PassBy, PropertyTarget, ResponseMode, ResponseType, RevocationVerification, RP, Scope, SubjectType, SupportedVersion } from "@sphereon/did-auth-siop";
|
|
343
|
+
import { ClientIdentifierPrefix, InMemoryRPSessionManager, PassBy, PropertyTarget, ResponseMode, ResponseType, RevocationVerification, RP, Scope, SubjectType, SupportedVersion } from "@sphereon/did-auth-siop";
|
|
351
344
|
import { SigningAlgo } from "@sphereon/oid4vc-common";
|
|
352
345
|
import { getAgentDIDMethods, getAgentResolver } from "@sphereon/ssi-sdk-ext.did-utils";
|
|
353
346
|
import { isExternalIdentifierOIDFEntityIdOpts, isManagedIdentifierDidOpts, isManagedIdentifierDidResult, isManagedIdentifierX5cOpts } from "@sphereon/ssi-sdk-ext.identifier-resolution";
|
|
@@ -416,11 +409,11 @@ async function createRPBuilder(args) {
|
|
|
416
409
|
const { identifierOpts } = rpOpts;
|
|
417
410
|
let definition = args.definition;
|
|
418
411
|
let dcqlQuery = args.dcql;
|
|
419
|
-
if (!definition && pexOpts && pexOpts.
|
|
412
|
+
if (!definition && pexOpts && pexOpts.queryId) {
|
|
420
413
|
const presentationDefinitionItems = await context.agent.pdmGetDefinitions({
|
|
421
414
|
filter: [
|
|
422
415
|
{
|
|
423
|
-
|
|
416
|
+
queryId: pexOpts.queryId,
|
|
424
417
|
version: pexOpts.version,
|
|
425
418
|
tenantId: pexOpts.tenantId
|
|
426
419
|
}
|
|
@@ -502,7 +495,9 @@ async function createRPBuilder(args) {
|
|
|
502
495
|
builder.withEntityId(oidfOpts.identifier, PropertyTarget.REQUEST_OBJECT);
|
|
503
496
|
} else {
|
|
504
497
|
const resolution = await context.agent.identifierManagedGet(identifierOpts.idOpts);
|
|
505
|
-
|
|
498
|
+
const clientId = rpOpts.clientMetadataOpts?.client_id ?? resolution.issuer ?? (isManagedIdentifierDidResult(resolution) ? resolution.did : resolution.jwkThumbprint);
|
|
499
|
+
const clientIdPrefixed = prefixClientId(clientId);
|
|
500
|
+
builder.withClientId(clientIdPrefixed, PropertyTarget.REQUEST_OBJECT);
|
|
506
501
|
}
|
|
507
502
|
if (hasher) {
|
|
508
503
|
builder.withHasher(hasher);
|
|
@@ -566,6 +561,13 @@ function getSigningAlgo(type) {
|
|
|
566
561
|
}
|
|
567
562
|
}
|
|
568
563
|
__name(getSigningAlgo, "getSigningAlgo");
|
|
564
|
+
function prefixClientId(clientId) {
|
|
565
|
+
if (clientId.startsWith("did:")) {
|
|
566
|
+
return `${ClientIdentifierPrefix.DECENTRALIZED_IDENTIFIER}:${clientId}`;
|
|
567
|
+
}
|
|
568
|
+
return clientId;
|
|
569
|
+
}
|
|
570
|
+
__name(prefixClientId, "prefixClientId");
|
|
569
571
|
|
|
570
572
|
// src/RPInstance.ts
|
|
571
573
|
import { v4 as uuidv4 } from "uuid";
|
|
@@ -602,7 +604,7 @@ var RPInstance = class {
|
|
|
602
604
|
return this.definitionId !== void 0;
|
|
603
605
|
}
|
|
604
606
|
get definitionId() {
|
|
605
|
-
return this.pexOptions?.
|
|
607
|
+
return this.pexOptions?.queryId;
|
|
606
608
|
}
|
|
607
609
|
async getPresentationDefinition(context) {
|
|
608
610
|
return this.definitionId ? await context.agent.pexStoreGetDefinition({
|
|
@@ -611,7 +613,7 @@ var RPInstance = class {
|
|
|
611
613
|
}) : void 0;
|
|
612
614
|
}
|
|
613
615
|
async createAuthorizationRequestURI(createArgs, context) {
|
|
614
|
-
const { correlationId, claims, requestByReferenceURI, responseURI, responseURIType } = createArgs;
|
|
616
|
+
const { correlationId, queryId, claims, requestByReferenceURI, responseURI, responseURIType, callback } = createArgs;
|
|
615
617
|
const nonce = createArgs.nonce ?? uuidv4();
|
|
616
618
|
const state = createArgs.state ?? correlationId;
|
|
617
619
|
let jwtIssuer;
|
|
@@ -639,13 +641,15 @@ var RPInstance = class {
|
|
|
639
641
|
return await this.get(context).then((rp) => rp.createAuthorizationRequestURI({
|
|
640
642
|
version: getRequestVersion(this.rpOptions),
|
|
641
643
|
correlationId,
|
|
644
|
+
queryId,
|
|
642
645
|
nonce,
|
|
643
646
|
state,
|
|
644
647
|
claims,
|
|
645
648
|
requestByReferenceURI,
|
|
646
649
|
responseURI,
|
|
647
650
|
responseURIType,
|
|
648
|
-
jwtIssuer
|
|
651
|
+
jwtIssuer,
|
|
652
|
+
callback
|
|
649
653
|
}));
|
|
650
654
|
}
|
|
651
655
|
async createAuthorizationRequest(createArgs, context) {
|
|
@@ -686,7 +690,6 @@ var RPInstance = class {
|
|
|
686
690
|
};
|
|
687
691
|
|
|
688
692
|
// src/agent/SIOPv2RP.ts
|
|
689
|
-
import { shaHasher as defaultHasher2 } from "@sphereon/ssi-sdk.core";
|
|
690
693
|
var SIOPv2RP = class _SIOPv2RP {
|
|
691
694
|
static {
|
|
692
695
|
__name(this, "SIOPv2RP");
|
|
@@ -694,7 +697,7 @@ var SIOPv2RP = class _SIOPv2RP {
|
|
|
694
697
|
opts;
|
|
695
698
|
static _DEFAULT_OPTS_KEY = "_default";
|
|
696
699
|
instances = /* @__PURE__ */ new Map();
|
|
697
|
-
schema =
|
|
700
|
+
schema = plugin_schema_default.IDidAuthSiopOpAuthenticator;
|
|
698
701
|
methods = {
|
|
699
702
|
siopCreateAuthRequestURI: this.createAuthorizationRequestURI.bind(this),
|
|
700
703
|
siopCreateAuthRequestPayloads: this.createAuthorizationRequestPayloads.bind(this),
|
|
@@ -724,30 +727,32 @@ var SIOPv2RP = class _SIOPv2RP {
|
|
|
724
727
|
}
|
|
725
728
|
async createAuthorizationRequestURI(createArgs, context) {
|
|
726
729
|
return await this.getRPInstance({
|
|
727
|
-
|
|
728
|
-
|
|
730
|
+
responseRedirectURI: createArgs.responseRedirectURI,
|
|
731
|
+
...createArgs.useQueryIdInstance === true && {
|
|
732
|
+
queryId: createArgs.queryId
|
|
733
|
+
}
|
|
729
734
|
}, context).then((rp) => rp.createAuthorizationRequestURI(createArgs, context)).then((URI) => URI.encodedUri);
|
|
730
735
|
}
|
|
731
736
|
async createAuthorizationRequestPayloads(createArgs, context) {
|
|
732
737
|
return await this.getRPInstance({
|
|
733
|
-
|
|
738
|
+
queryId: createArgs.queryId
|
|
734
739
|
}, context).then((rp) => rp.createAuthorizationRequest(createArgs, context)).then(async (request) => {
|
|
735
740
|
const authRequest = {
|
|
736
741
|
authorizationRequest: request.payload,
|
|
737
742
|
requestObject: await request.requestObjectJwt(),
|
|
738
|
-
requestObjectDecoded:
|
|
743
|
+
requestObjectDecoded: request.requestObject?.getPayload()
|
|
739
744
|
};
|
|
740
745
|
return authRequest;
|
|
741
746
|
});
|
|
742
747
|
}
|
|
743
748
|
async siopGetRequestState(args, context) {
|
|
744
749
|
return await this.getRPInstance({
|
|
745
|
-
|
|
750
|
+
queryId: args.queryId
|
|
746
751
|
}, context).then((rp) => rp.get(context).then((rp2) => rp2.sessionManager.getRequestStateByCorrelationId(args.correlationId, args.errorOnNotFound)));
|
|
747
752
|
}
|
|
748
753
|
async siopGetResponseState(args, context) {
|
|
749
754
|
const rpInstance = await this.getRPInstance({
|
|
750
|
-
|
|
755
|
+
queryId: args.queryId
|
|
751
756
|
}, context);
|
|
752
757
|
const authorizationResponseState = await rpInstance.get(context).then((rp) => rp.sessionManager.getResponseStateByCorrelationId(args.correlationId, args.errorOnNotFound));
|
|
753
758
|
if (authorizationResponseState === void 0) {
|
|
@@ -800,11 +805,11 @@ var SIOPv2RP = class _SIOPv2RP {
|
|
|
800
805
|
}
|
|
801
806
|
presentationOrClaimsFrom = /* @__PURE__ */ __name((presentationDecoded) => CredentialMapper2.isSdJwtDecodedCredential(presentationDecoded) ? presentationDecoded.decodedPayload : CredentialMapper2.toUniformPresentation(presentationDecoded), "presentationOrClaimsFrom");
|
|
802
807
|
async siopUpdateRequestState(args, context) {
|
|
803
|
-
if (args.state !== "
|
|
804
|
-
throw Error(`Only '
|
|
808
|
+
if (args.state !== "authorization_request_created") {
|
|
809
|
+
throw Error(`Only 'authorization_request_created' status is supported for this method at this point`);
|
|
805
810
|
}
|
|
806
811
|
return await this.getRPInstance({
|
|
807
|
-
|
|
812
|
+
queryId: args.queryId
|
|
808
813
|
}, context).then((rp) => rp.get(context).then(async (rp2) => {
|
|
809
814
|
await rp2.signalAuthRequestRetrieved({
|
|
810
815
|
correlationId: args.correlationId,
|
|
@@ -815,7 +820,7 @@ var SIOPv2RP = class _SIOPv2RP {
|
|
|
815
820
|
}
|
|
816
821
|
async siopDeleteState(args, context) {
|
|
817
822
|
return await this.getRPInstance({
|
|
818
|
-
|
|
823
|
+
queryId: args.queryId
|
|
819
824
|
}, context).then((rp) => rp.get(context).then((rp2) => rp2.sessionManager.deleteStateForCorrelationId(args.correlationId))).then(() => true);
|
|
820
825
|
}
|
|
821
826
|
async siopVerifyAuthResponse(args, context) {
|
|
@@ -824,42 +829,26 @@ var SIOPv2RP = class _SIOPv2RP {
|
|
|
824
829
|
}
|
|
825
830
|
const authResponse = typeof args.authorizationResponse === "string" ? decodeUriAsJson(args.authorizationResponse) : args.authorizationResponse;
|
|
826
831
|
return await this.getRPInstance({
|
|
827
|
-
|
|
832
|
+
queryId: args.queryId
|
|
828
833
|
}, context).then((rp) => rp.get(context).then((rp2) => rp2.verifyAuthorizationResponse(authResponse, {
|
|
829
834
|
correlationId: args.correlationId,
|
|
830
|
-
...args.
|
|
831
|
-
dcqlQuery: args.
|
|
835
|
+
...args.dcqlQuery ? {
|
|
836
|
+
dcqlQuery: args.dcqlQuery
|
|
832
837
|
} : {},
|
|
833
838
|
audience: args.audience
|
|
834
839
|
})));
|
|
835
840
|
}
|
|
836
841
|
async siopImportDefinitions(args, context) {
|
|
837
|
-
const {
|
|
838
|
-
await Promise.all(
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
return Promise.reject(Error("Either dcqlPayload or definitionPayload must be suppplied"));
|
|
842
|
-
}
|
|
843
|
-
let definitionId;
|
|
844
|
-
if (definitionPair.dcqlPayload) {
|
|
845
|
-
DcqlQuery.validate(definitionPair.dcqlPayload.dcqlQuery);
|
|
846
|
-
console.log(`persisting DCQL definition ${definitionPair.dcqlPayload.queryId} with versionControlMode ${versionControlMode}`);
|
|
847
|
-
definitionId = definitionPair.dcqlPayload.queryId;
|
|
848
|
-
}
|
|
849
|
-
if (definitionPayload) {
|
|
850
|
-
await context.agent.pexValidateDefinition({
|
|
851
|
-
definition: definitionPayload
|
|
852
|
-
});
|
|
853
|
-
console.log(`persisting PEX definition ${definitionPayload.id} / ${definitionPayload.name} with versionControlMode ${versionControlMode}`);
|
|
854
|
-
definitionId = definitionPayload.id;
|
|
855
|
-
}
|
|
842
|
+
const { importItems, tenantId, version, versionControlMode } = args;
|
|
843
|
+
await Promise.all(importItems.map(async (importItem) => {
|
|
844
|
+
DcqlQuery.validate(importItem.query);
|
|
845
|
+
console.log(`persisting DCQL definition ${importItem.queryId} with versionControlMode ${versionControlMode}`);
|
|
856
846
|
return context.agent.pdmPersistDefinition({
|
|
857
847
|
definitionItem: {
|
|
858
|
-
|
|
848
|
+
queryId: importItem.queryId,
|
|
859
849
|
tenantId,
|
|
860
850
|
version,
|
|
861
|
-
|
|
862
|
-
dcqlPayload: definitionPair.dcqlPayload
|
|
851
|
+
query: importItem.query
|
|
863
852
|
},
|
|
864
853
|
opts: {
|
|
865
854
|
versionControlMode
|
|
@@ -868,7 +857,7 @@ var SIOPv2RP = class _SIOPv2RP {
|
|
|
868
857
|
}));
|
|
869
858
|
}
|
|
870
859
|
async siopGetRedirectURI(args, context) {
|
|
871
|
-
const instanceId = args.
|
|
860
|
+
const instanceId = args.queryId ?? _SIOPv2RP._DEFAULT_OPTS_KEY;
|
|
872
861
|
if (this.instances.has(instanceId)) {
|
|
873
862
|
const rpInstance = this.instances.get(instanceId);
|
|
874
863
|
if (rpInstance !== void 0) {
|
|
@@ -884,12 +873,12 @@ var SIOPv2RP = class _SIOPv2RP {
|
|
|
884
873
|
}
|
|
885
874
|
return void 0;
|
|
886
875
|
}
|
|
887
|
-
async getRPInstance({
|
|
888
|
-
const instanceId =
|
|
876
|
+
async getRPInstance({ queryId, responseRedirectURI }, context) {
|
|
877
|
+
const instanceId = queryId ?? _SIOPv2RP._DEFAULT_OPTS_KEY;
|
|
889
878
|
if (!this.instances.has(instanceId)) {
|
|
890
|
-
const instanceOpts = this.getInstanceOpts(
|
|
879
|
+
const instanceOpts = this.getInstanceOpts(queryId);
|
|
891
880
|
const rpOpts = await this.getRPOptions(context, {
|
|
892
|
-
|
|
881
|
+
queryId,
|
|
893
882
|
responseRedirectURI
|
|
894
883
|
});
|
|
895
884
|
if (!rpOpts.identifierOpts.resolveOpts?.resolver || typeof rpOpts.identifierOpts.resolveOpts.resolver.resolve !== "function") {
|
|
@@ -901,7 +890,7 @@ var SIOPv2RP = class _SIOPv2RP {
|
|
|
901
890
|
...rpOpts.identifierOpts.resolveOpts
|
|
902
891
|
};
|
|
903
892
|
}
|
|
904
|
-
console.log("Using agent DID resolver for RP instance with definition id " +
|
|
893
|
+
console.log("Using agent DID resolver for RP instance with definition id " + queryId);
|
|
905
894
|
rpOpts.identifierOpts.resolveOpts.resolver = getAgentResolver2(context, {
|
|
906
895
|
uniresolverResolution: true,
|
|
907
896
|
localResolution: true,
|
|
@@ -920,10 +909,10 @@ var SIOPv2RP = class _SIOPv2RP {
|
|
|
920
909
|
return rpInstance;
|
|
921
910
|
}
|
|
922
911
|
async getRPOptions(context, opts) {
|
|
923
|
-
const {
|
|
924
|
-
const options = this.getInstanceOpts(
|
|
912
|
+
const { queryId, responseRedirectURI } = opts;
|
|
913
|
+
const options = this.getInstanceOpts(queryId)?.rpOpts ?? this.opts.defaultOpts;
|
|
925
914
|
if (!options) {
|
|
926
|
-
throw Error(`Could not get specific nor default options for definition ${
|
|
915
|
+
throw Error(`Could not get specific nor default options for definition ${queryId}`);
|
|
927
916
|
}
|
|
928
917
|
if (this.opts.defaultOpts) {
|
|
929
918
|
if (!options.identifierOpts) {
|
|
@@ -957,18 +946,18 @@ var SIOPv2RP = class _SIOPv2RP {
|
|
|
957
946
|
}
|
|
958
947
|
getInstanceOpts(definitionId) {
|
|
959
948
|
if (!this.opts.instanceOpts) return void 0;
|
|
960
|
-
const instanceOpt = definitionId ? this.opts.instanceOpts.find((i) => i.
|
|
949
|
+
const instanceOpt = definitionId ? this.opts.instanceOpts.find((i) => i.queryId === definitionId) : void 0;
|
|
961
950
|
return instanceOpt ?? this.getDefaultOptions(definitionId);
|
|
962
951
|
}
|
|
963
952
|
getDefaultOptions(definitionId) {
|
|
964
953
|
if (!this.opts.instanceOpts) return void 0;
|
|
965
|
-
const defaultOptions = this.opts.instanceOpts.find((i) => i.
|
|
954
|
+
const defaultOptions = this.opts.instanceOpts.find((i) => i.queryId === "default");
|
|
966
955
|
if (defaultOptions) {
|
|
967
956
|
const clonedOptions = {
|
|
968
957
|
...defaultOptions
|
|
969
958
|
};
|
|
970
959
|
if (definitionId !== void 0) {
|
|
971
|
-
clonedOptions.
|
|
960
|
+
clonedOptions.queryId = definitionId;
|
|
972
961
|
}
|
|
973
962
|
return clonedOptions;
|
|
974
963
|
}
|
|
@@ -983,12 +972,9 @@ var VerifiedDataMode = /* @__PURE__ */ (function(VerifiedDataMode2) {
|
|
|
983
972
|
VerifiedDataMode2["CREDENTIAL_SUBJECT_FLATTENED"] = "cs-flat";
|
|
984
973
|
return VerifiedDataMode2;
|
|
985
974
|
})({});
|
|
986
|
-
|
|
987
|
-
// src/index.ts
|
|
988
|
-
var schema = require_plugin_schema();
|
|
989
975
|
export {
|
|
990
976
|
SIOPv2RP,
|
|
991
977
|
VerifiedDataMode,
|
|
992
|
-
schema
|
|
978
|
+
plugin_schema_default as schema
|
|
993
979
|
};
|
|
994
980
|
//# sourceMappingURL=index.js.map
|