@sphereon/ssi-sdk.kms-rest-client 0.34.1-feature.IDK.11.52 → 0.34.1-feature.IDK.11.53

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/LICENSE CHANGED
@@ -7,7 +7,7 @@
7
7
  1. Definitions.
8
8
 
9
9
  "License" shall mean the terms and conditions for use, reproduction,
10
- and distribution as defined by Sections 1 through 9 of this fragment.
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
11
 
12
12
  "Licensor" shall mean the copyright owner or entity authorized by
13
13
  the copyright owner that is granting the License.
package/README.md ADDED
@@ -0,0 +1,369 @@
1
+ <!--suppress HtmlDeprecatedAttribute -->
2
+ <h1 align="center">
3
+ <br>
4
+ <a href="https://www.sphereon.com"><img src="https://sphereon.com/content/themes/sphereon/assets/img/logo.svg" alt="Sphereon" width="400"></a>
5
+ <br>KMS REST Client
6
+ <br>
7
+ </h1>
8
+
9
+ ---
10
+
11
+ **Warning: This package still is in very early development. Breaking changes without notice will happen at this point!**
12
+
13
+ ---
14
+
15
+ # ssi-sdk.kms-rest-client
16
+
17
+ A SSI-SDK plugin with types/interfaces and utility functions for calling rest endpoints of a KMS
18
+
19
+ ## Available functions
20
+
21
+ - kmsClientGetResolver
22
+ - kmsClientListResolvers
23
+ - kmsClientResolveKey
24
+ - kmsClientCreateRawSignature
25
+ - kmsClientIsValidRawSignature
26
+ - kmsClientGetKey
27
+ - kmsClientListKeys
28
+ - kmsClientStoreKey
29
+ - kmsClientGenerateKey
30
+ - kmsClientDeleteKey
31
+ - kmsClientGetKeyProvider
32
+ - kmsClientListKeyProviders
33
+ - kmsClientProviderListKeys
34
+ - kmsClientProviderStoreKey
35
+ - kmsClientProviderGenerateKey
36
+ - kmsClientProviderGetKey
37
+ - kmsClientProviderDeleteKey
38
+
39
+ ### Adding the plugin to an agent:
40
+
41
+ ```typescript
42
+ import { KmsRestClient } from '@sphereon/ssi-sdk.kms-rest-client'
43
+
44
+ const agent = createAgent<IKmsRestClient>({
45
+ plugins: [
46
+ new KmsRestClient({
47
+ baseUrl: 'my-issuer-base-url',
48
+ }),
49
+ ],
50
+ })
51
+ ```
52
+
53
+ ## Usage
54
+
55
+ ### Getting a resolver:
56
+
57
+ ```typescript
58
+ const resolver = await agent.kmsClientGetResolver({
59
+ baseUrl: 'https://ssi-backend.sphereon.com',
60
+ resolverId: 'jose_cose_resolver',
61
+ })
62
+ ```
63
+
64
+ ### List resolvers
65
+
66
+ ```typescript
67
+ const resolvers = await agent.kmsClientListResolvers({
68
+ baseUrl: 'https://ssi-backend.sphereon.com',
69
+ })
70
+ ```
71
+
72
+ ### Resolve key
73
+
74
+ ```typescript
75
+ const resolvedKey = await agent.kmsClientResolveKey({
76
+ baseUrl: 'https://ssi-backend.sphereon.com',
77
+ resolverId: 'jose_cose_resolver',
78
+ keyInfo: {
79
+ key: {
80
+ kty: 'EC',
81
+ kid: 'HAnuRAJHmahYSmnfcmX9lF25bRsi_IWoFkJ2KueEXOU',
82
+ use: 'sig',
83
+ keyOps: ['sign'],
84
+ crv: 'P-256',
85
+ x: 'DwRiRyvtMXhFwCKuoAMnpviMmrE1B0Fu44_LeQEycEs',
86
+ y: '3BnhvdB6QYGp7x9Ey7qW_TNZ0MI0hNZgLlyl6rbxln8',
87
+ d: 'xVjyhcZDnLR3zJcuMMlQjXlNGDz3hxS0_aCoDd8P9XY',
88
+ },
89
+ alias: 'HAnuRAJHmahYSmnfcmX9lF25bRsi_IWoFkJ2KueEXOU',
90
+ providerId: 'provider-id',
91
+ kid: 'HAnuRAJHmahYSmnfcmX9lF25bRsi_IWoFkJ2KueEXOU',
92
+ signatureAlgorithm: 'ECDSA_SHA256',
93
+ keyVisibility: 'PRIVATE',
94
+ keyType: 'EC',
95
+ keyEncoding: 'JOSE',
96
+ },
97
+ })
98
+ ```
99
+
100
+ ### Create signature
101
+
102
+ ```typescript
103
+ const signature = await agent.kmsClientCreateRawSignature({
104
+ baseUrl: 'https://ssi-backend.sphereon.com',
105
+ keyInfo: {
106
+ key: {
107
+ kty: 'EC',
108
+ kid: '00-qTBov6GxjPSuMNxnk876cMP0JKjbwl4ZyN_sY2tE',
109
+ use: 'sig',
110
+ keyOps: ['sign'],
111
+ crv: 'P-256',
112
+ x: 'HFL67WWh6PYWKOy1mzt9Y2ANs-CWFIyVtouR-Jx_mAM',
113
+ y: '9f_1x7fwUuEbEwxSNTYE3jQF-zForWpKkEMpiUp1MNI',
114
+ d: 'P_4YEyuDj4aA4IVYVku4dm3BoDReFTKVsBwb1utoWCQ',
115
+ },
116
+ kid: '7KYAtmhlRu4M5k5Uv9-jV3XKgRc8wpzJYKg3l89LkGQ',
117
+ alias: 'Gxq2tXSNl_kp8tKHNzIlO7jQDM-aYcgn1aewGW8Yby4',
118
+ providerId: 'test-software',
119
+ signatureAlgorithm: 'ECDSA_SHA256',
120
+ keyVisibility: 'PUBLIC',
121
+ x5c: ['1', '2'],
122
+ keyEncoding: 'JOSE',
123
+ opts: {
124
+ test: 'test',
125
+ },
126
+ keyType: 'EC',
127
+ },
128
+ input: 'aGVsbG8=',
129
+ })
130
+ ```
131
+
132
+ ### Verify signature
133
+
134
+ ```typescript
135
+ const verification = await agent.kmsClientIsValidRawSignature({
136
+ baseUrl: 'https://ssi-backend.sphereon.com',
137
+ keyInfo: {
138
+ key: {
139
+ kty: 'EC',
140
+ kid: '00-qTBov6GxjPSuMNxnk876cMP0JKjbwl4ZyN_sY2tE',
141
+ use: 'sig',
142
+ keyOps: ['sign'],
143
+ crv: 'P-256',
144
+ x: 'HFL67WWh6PYWKOy1mzt9Y2ANs-CWFIyVtouR-Jx_mAM',
145
+ y: '9f_1x7fwUuEbEwxSNTYE3jQF-zForWpKkEMpiUp1MNI',
146
+ d: 'P_4YEyuDj4aA4IVYVku4dm3BoDReFTKVsBwb1utoWCQ',
147
+ },
148
+ kid: '7KYAtmhlRu4M5k5Uv9-jV3XKgRc8wpzJYKg3l89LkGQ',
149
+ alias: 'Gxq2tXSNl_kp8tKHNzIlO7jQDM-aYcgn1aewGW8Yby4',
150
+ providerId: 'test-software',
151
+ signatureAlgorithm: 'ECDSA_SHA256',
152
+ keyVisibility: 'PUBLIC',
153
+ x5c: ['1', '2'],
154
+ keyEncoding: 'JOSE',
155
+ opts: {
156
+ test: 'test',
157
+ },
158
+ keyType: 'EC',
159
+ },
160
+ input: 'aGVsbG8=',
161
+ signature: 'RrTEoBb/3KQSEiCYnrTizM4O7qWeY5cNQYlQYl4pLMZKyLBYaoU1uxzmwLMFAIfnwA41mMTyLZlG4JG0zCm9iA==',
162
+ })
163
+ ```
164
+
165
+ ### Get key
166
+
167
+ ```typescript
168
+ const key = await agent.kmsClientGetKey({
169
+ baseUrl: 'https://ssi-backend.sphereon.com',
170
+ aliasOrKid: '00-qTBov6GxjPSuMNxnk876cMP0JKjbwl4ZyN_sY2tE',
171
+ })
172
+ ```
173
+
174
+ ### List keys
175
+
176
+ ```typescript
177
+ const keys = await agent.kmsClientListKeys({
178
+ baseUrl: 'https://ssi-backend.sphereon.com',
179
+ })
180
+ ```
181
+
182
+ ### Store key
183
+
184
+ ```typescript
185
+ const key = await agent.kmsClientStoreKey({
186
+ baseUrl: 'https://ssi-backend.sphereon.com',
187
+ keyInfo: {
188
+ key: {
189
+ kty: 'EC',
190
+ kid: '00-qTBov6GxjPSuMNxnk876cMP0JKjbwl4ZyN_sY2tE',
191
+ use: 'sig',
192
+ keyOps: ['sign'],
193
+ crv: 'P-256',
194
+ x: 'HFL67WWh6PYWKOy1mzt9Y2ANs-CWFIyVtouR-Jx_mAM',
195
+ y: '9f_1x7fwUuEbEwxSNTYE3jQF-zForWpKkEMpiUp1MNI',
196
+ d: 'P_4YEyuDj4aA4IVYVku4dm3BoDReFTKVsBwb1utoWCQ',
197
+ },
198
+ kid: '00-qTBov6GxjPSuMNxnk876cMP0JKjbwl4ZyN_sY2tE',
199
+ alias: 'Gxq2tXSNl_kp8tKHNzIlO7jQDM-aYcgn1aewGW8Yby4',
200
+ providerId: 'provider-id',
201
+ signatureAlgorithm: 'ECDSA_SHA256',
202
+ keyVisibility: 'PUBLIC',
203
+ x5c: ['1', '2'],
204
+ keyEncoding: 'JOSE',
205
+ opts: {
206
+ test: 'test',
207
+ },
208
+ keyType: 'EC',
209
+ },
210
+ certChain: [
211
+ 'MIIByTCCAW6gAwIBAgIQF+SpO+EPJj42boA4WHPL2zAKBggqhkjOPQQDAjBAMT4wPAYDVQQDEzVBY2MgS2l3YSBEaWdpdGFsIENlcnRpZmljYXRpb24gV2FsbGV0IEludGVybWVkaWF0ZSBDQTAeFw0yNTA2MjUxMzA4MzJaFw0yNjA2MjUxMzA4MzJaMDYxNDAyBgNVBAMTK3dhbGxldC02NDA2MzA3OS02ZmM3LTRhZTgtOWEwMi0yNTE4YTRhYmQyZmIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASnaLC4eYSs/8XkDz8rDANemjmyI+N5g0yIJIiScgCnjZogmlDGGQ8HYCdvs9SJJJ3c17YSax44vVl6LMnidvKno1QwUjAJBgNVHRMEAjAAMB0GA1UdDgQWBBRI7w4/H9JCty7T4aVl+im74XEV0zAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwCgYIKoZIzj0EAwIDSQAwRgIhAPnLEppg5TGMCqp/Nn+2os6vupEclyKv1yk/JQFQME8TAiEAiYrVm/6J8zGmhtiG958kZB0afXhM/i3DuY8+0kpTUzA=',
212
+ 'MIIByTCCAW6gAwIBAgIQF+SpO+EPJj42boA4WHPL2zAKBggqhkjOPQQDAjBAMT4wPAYDVQQDEzVBY2MgS2l3YSBEaWdpdGFsIENlcnRpZmljYXRpb24gV2FsbGV0IEludGVybWVkaWF0ZSBDQTAeFw0yNTA2MjUxMzA4MzJaFw0yNjA2MjUxMzA4MzJaMDYxNDAyBgNVBAMTK3dhbGxldC02NDA2MzA3OS02ZmM3LTRhZTgtOWEwMi0yNTE4YTRhYmQyZmIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASnaLC4eYSs/8XkDz8rDANemjmyI+N5g0yIJIiScgCnjZogmlDGGQ8HYCdvs9SJJJ3c17YSax44vVl6LMnidvKno1QwUjAJBgNVHRMEAjAAMB0GA1UdDgQWBBRI7w4/H9JCty7T4aVl+im74XEV0zAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwCgYIKoZIzj0EAwIDSQAwRgIhAPnLEppg5TGMCqp/Nn+2os6vupEclyKv1yk/JQFQME8TAiEAiYrVm/6J8zGmhtiG958kZB0afXhM/i3DuY8+0kpTUzA=',
213
+ ],
214
+ })
215
+ ```
216
+
217
+ ### Generate key
218
+
219
+ ```typescript
220
+ const key = await agent.kmsClientGenerateKey({
221
+ baseUrl: 'https://ssi-backend.sphereon.com',
222
+ use: 'sig',
223
+ alg: 'ECDSA_SHA256',
224
+ keyOperations: ['sign'],
225
+ })
226
+ ```
227
+
228
+ ### Delete key
229
+
230
+ ```typescript
231
+ const result = await agent.kmsClientDeleteKey({
232
+ baseUrl: 'https://ssi-backend.sphereon.com',
233
+ aliasOrKid: '00-qTBov6GxjPSuMNxnk876cMP0JKjbwl4ZyN_sY2tE',
234
+ })
235
+ ```
236
+
237
+ ### Get provider
238
+
239
+ ```typescript
240
+ const provider = await agent.kmsClientGetKeyProvider({
241
+ baseUrl: 'https://ssi-backend.sphereon.com',
242
+ providerId: 'provider-id',
243
+ })
244
+ ```
245
+
246
+ ### List providers
247
+
248
+ ```typescript
249
+ const providers = await agent.kmsClientListKeyProviders({
250
+ baseUrl: 'https://ssi-backend.sphereon.com',
251
+ })
252
+ ```
253
+
254
+ ### List providers
255
+
256
+ ```typescript
257
+ const providers = await agent.kmsClientListKeyProviders({
258
+ baseUrl: 'https://ssi-backend.sphereon.com',
259
+ })
260
+ ```
261
+
262
+ ### List provider keys
263
+
264
+ ```typescript
265
+ const keys = await agent.kmsClientProviderListKeys({
266
+ baseUrl: 'https://ssi-backend.sphereon.com',
267
+ providerId: 'provider-id',
268
+ })
269
+ ```
270
+
271
+ ### Store provider key
272
+
273
+ ```typescript
274
+ const key = await agent.kmsClientProviderStoreKey({
275
+ baseUrl: 'https://ssi-backend.sphereon.com',
276
+ providerId: 'provider-id',
277
+ keyInfo: {
278
+ key: {
279
+ kty: 'EC',
280
+ kid: '00-qTBov6GxjPSuMNxnk876cMP0JKjbwl4ZyN_sY2tE',
281
+ use: 'sig',
282
+ keyOps: ['sign'],
283
+ crv: 'P-256',
284
+ x: 'HFL67WWh6PYWKOy1mzt9Y2ANs-CWFIyVtouR-Jx_mAM',
285
+ y: '9f_1x7fwUuEbEwxSNTYE3jQF-zForWpKkEMpiUp1MNI',
286
+ d: 'P_4YEyuDj4aA4IVYVku4dm3BoDReFTKVsBwb1utoWCQ',
287
+ },
288
+ kid: '00-qTBov6GxjPSuMNxnk876cMP0JKjbwl4ZyN_sY2tE',
289
+ alias: 'Gxq2tXSNl_kp8tKHNzIlO7jQDM-aYcgn1aewGW8Yby4',
290
+ providerId: 'test-software',
291
+ signatureAlgorithm: 'ECDSA_SHA256',
292
+ keyVisibility: 'PUBLIC',
293
+ x5c: ['1', '2'],
294
+ keyEncoding: 'JOSE',
295
+ opts: {
296
+ test: 'test',
297
+ },
298
+ keyType: 'EC',
299
+ },
300
+ certChain: [
301
+ 'MIIByTCCAW6gAwIBAgIQF+SpO+EPJj42boA4WHPL2zAKBggqhkjOPQQDAjBAMT4wPAYDVQQDEzVBY2MgS2l3YSBEaWdpdGFsIENlcnRpZmljYXRpb24gV2FsbGV0IEludGVybWVkaWF0ZSBDQTAeFw0yNTA2MjUxMzA4MzJaFw0yNjA2MjUxMzA4MzJaMDYxNDAyBgNVBAMTK3dhbGxldC02NDA2MzA3OS02ZmM3LTRhZTgtOWEwMi0yNTE4YTRhYmQyZmIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASnaLC4eYSs/8XkDz8rDANemjmyI+N5g0yIJIiScgCnjZogmlDGGQ8HYCdvs9SJJJ3c17YSax44vVl6LMnidvKno1QwUjAJBgNVHRMEAjAAMB0GA1UdDgQWBBRI7w4/H9JCty7T4aVl+im74XEV0zAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwCgYIKoZIzj0EAwIDSQAwRgIhAPnLEppg5TGMCqp/Nn+2os6vupEclyKv1yk/JQFQME8TAiEAiYrVm/6J8zGmhtiG958kZB0afXhM/i3DuY8+0kpTUzA=',
302
+ 'MIIByTCCAW6gAwIBAgIQF+SpO+EPJj42boA4WHPL2zAKBggqhkjOPQQDAjBAMT4wPAYDVQQDEzVBY2MgS2l3YSBEaWdpdGFsIENlcnRpZmljYXRpb24gV2FsbGV0IEludGVybWVkaWF0ZSBDQTAeFw0yNTA2MjUxMzA4MzJaFw0yNjA2MjUxMzA4MzJaMDYxNDAyBgNVBAMTK3dhbGxldC02NDA2MzA3OS02ZmM3LTRhZTgtOWEwMi0yNTE4YTRhYmQyZmIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASnaLC4eYSs/8XkDz8rDANemjmyI+N5g0yIJIiScgCnjZogmlDGGQ8HYCdvs9SJJJ3c17YSax44vVl6LMnidvKno1QwUjAJBgNVHRMEAjAAMB0GA1UdDgQWBBRI7w4/H9JCty7T4aVl+im74XEV0zAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwCgYIKoZIzj0EAwIDSQAwRgIhAPnLEppg5TGMCqp/Nn+2os6vupEclyKv1yk/JQFQME8TAiEAiYrVm/6J8zGmhtiG958kZB0afXhM/i3DuY8+0kpTUzA=',
303
+ ],
304
+ })
305
+ ```
306
+
307
+ ### Generate provider key
308
+
309
+ ```typescript
310
+ const key = await agent.kmsClientProviderGenerateKey({
311
+ baseUrl: 'https://ssi-backend.sphereon.com',
312
+ providerId: 'provider-id',
313
+ use: 'sig',
314
+ alg: 'ECDSA_SHA256',
315
+ keyOperations: ['sign'],
316
+ })
317
+ ```
318
+
319
+ ### Get provider key
320
+
321
+ ```typescript
322
+ const key = await agent.kmsClientProviderGetKey({
323
+ baseUrl: 'https://ssi-backend.sphereon.com',
324
+ providerId: 'provider-id',
325
+ aliasOrKid: '00-qTBov6GxjPSuMNxnk876cMP0JKjbwl4ZyN_sY2tE',
326
+ })
327
+ ```
328
+
329
+ ### Delete provider key
330
+
331
+ ```typescript
332
+ const result = await agent.kmsClientProviderDeleteKey({
333
+ baseUrl: 'https://ssi-backend.sphereon.com',
334
+ providerId: 'provider-id',
335
+ aliasOrKid: '00-qTBov6GxjPSuMNxnk876cMP0JKjbwl4ZyN_sY2tE',
336
+ })
337
+ ```
338
+
339
+ ### Installation
340
+
341
+ ```shell
342
+ yarn add @sphereon/ssi-sdk.kms-rest-client
343
+ ```
344
+
345
+ ### Build
346
+
347
+ ```shell
348
+ yarn build
349
+ ```
350
+
351
+ ### Test
352
+
353
+ The test command runs:
354
+
355
+ - `prettier`
356
+ - `jest`
357
+ - `coverage`
358
+
359
+ You can also run only a single section of these tests, using for example `yarn test:unit`.
360
+
361
+ ```shell
362
+ yarn test
363
+ ```
364
+
365
+ ### Utility scripts
366
+
367
+ There are other utility scripts that help with development.
368
+
369
+ - `yarn fix` - runs `eslint --fix` as well as `prettier` to fix code style.