@sphereon/ssi-sdk-ext.key-manager 0.26.1-next.9 → 0.27.1-next.4
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/agent/SphereonKeyManager.d.ts +4 -1
- package/dist/agent/SphereonKeyManager.d.ts.map +1 -1
- package/dist/agent/SphereonKeyManager.js +18 -6
- package/dist/agent/SphereonKeyManager.js.map +1 -1
- package/dist/ssi-sdk-ext.key-manager.d.ts +4 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/package.json +4 -4
- package/src/agent/SphereonKeyManager.ts +24 -8
|
@@ -5,7 +5,7 @@ export declare const sphereonKeyManagerMethods: Array<string>;
|
|
|
5
5
|
export declare class SphereonKeyManager extends VeramoKeyManager {
|
|
6
6
|
private kmsStore;
|
|
7
7
|
private readonly availableKmses;
|
|
8
|
-
|
|
8
|
+
_defaultKms: string;
|
|
9
9
|
readonly kmsMethods: ISphereonKeyManager;
|
|
10
10
|
constructor(options: {
|
|
11
11
|
store: AbstractKeyStore;
|
|
@@ -20,5 +20,8 @@ export declare class SphereonKeyManager extends VeramoKeyManager {
|
|
|
20
20
|
keyManagerHandleExpirations(args: ISphereonKeyManagerHandleExpirationsArgs): Promise<Array<ManagedKeyInfo>>;
|
|
21
21
|
private getKmsByName;
|
|
22
22
|
keyManagerGet({ kid }: IKeyManagerGetArgs): Promise<IKey>;
|
|
23
|
+
get defaultKms(): string;
|
|
24
|
+
set defaultKms(kms: string);
|
|
25
|
+
setKms(name: string, kms: AbstractKeyManagementSystem): void;
|
|
23
26
|
}
|
|
24
27
|
//# sourceMappingURL=SphereonKeyManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SphereonKeyManager.d.ts","sourceRoot":"","sources":["../../src/agent/SphereonKeyManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAe,cAAc,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGnH,OAAO,EAEL,kBAAkB,EAClB,mBAAmB,EACnB,6BAA6B,EAC7B,wCAAwC,EACxC,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,8BAA8B,CAAA;AAErC,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,MAAM,CASnD,CAAA;AAED,qBAAa,kBAAmB,SAAQ,gBAAgB;IAEtD,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;
|
|
1
|
+
{"version":3,"file":"SphereonKeyManager.d.ts","sourceRoot":"","sources":["../../src/agent/SphereonKeyManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAe,cAAc,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGnH,OAAO,EAEL,kBAAkB,EAClB,mBAAmB,EACnB,6BAA6B,EAC7B,wCAAwC,EACxC,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,8BAA8B,CAAA;AAErC,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,MAAM,CASnD,CAAA;AAED,qBAAa,kBAAmB,SAAQ,gBAAgB;IAEtD,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IACrE,WAAW,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAA;gBAE5B,OAAO,EAAE;QAAE,KAAK,EAAE,gBAAgB,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAevH,uCAAuC,IAAI,OAAO,CAAC,MAAM,CAAC;IAI3C,gBAAgB,CAAC,IAAI,EAAE,6BAA6B,GAAG,OAAO,CAAC,cAAc,CAAC;IAyBvF,cAAc,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC;IAUlE,gBAAgB,CAAC,IAAI,EAAE,6BAA6B,GAAG,OAAO,CAAC,OAAO,CAAC;IAevE,kBAAkB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAI/C,2BAA2B,CAAC,IAAI,EAAE,wCAAwC,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAiBjH,OAAO,CAAC,YAAY;IASd,aAAa,CAAC,EAAE,GAAG,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/D,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,UAAU,CAAC,GAAG,EAAE,MAAM,EAKzB;IAED,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,2BAA2B,GAAG,IAAI;CAG7D"}
|
|
@@ -53,8 +53,8 @@ class SphereonKeyManager extends key_manager_1.KeyManager {
|
|
|
53
53
|
super({ store: options.store, kms: options.kms });
|
|
54
54
|
this.kmsStore = options.store;
|
|
55
55
|
this.availableKmses = options.kms;
|
|
56
|
-
this.
|
|
57
|
-
if (!Object.keys(this.availableKmses).includes(this.
|
|
56
|
+
this._defaultKms = (_a = options.defaultKms) !== null && _a !== void 0 ? _a : Object.keys(this.availableKmses)[0];
|
|
57
|
+
if (!Object.keys(this.availableKmses).includes(this._defaultKms)) {
|
|
58
58
|
throw Error(`Default KMS needs to be listed in the kms object as well. Found kms-es: ${Object.keys(this.availableKmses).join(',')}`);
|
|
59
59
|
}
|
|
60
60
|
const methods = this.methods;
|
|
@@ -64,19 +64,19 @@ class SphereonKeyManager extends key_manager_1.KeyManager {
|
|
|
64
64
|
this.kmsMethods = methods;
|
|
65
65
|
}
|
|
66
66
|
keyManagerGetDefaultKeyManagementSystem() {
|
|
67
|
-
return Promise.resolve(this.
|
|
67
|
+
return Promise.resolve(this._defaultKms);
|
|
68
68
|
}
|
|
69
69
|
keyManagerCreate(args) {
|
|
70
70
|
return __awaiter(this, void 0, void 0, function* () {
|
|
71
71
|
var _a, _b, _c, _d, _e, _f;
|
|
72
|
-
const kms = this.getKmsByName((_a = args.kms) !== null && _a !== void 0 ? _a : this.
|
|
72
|
+
const kms = this.getKmsByName((_a = args.kms) !== null && _a !== void 0 ? _a : this._defaultKms);
|
|
73
73
|
const meta = Object.assign(Object.assign({}, args.meta), (args.opts && { opts: args.opts }));
|
|
74
74
|
if ((0, ISphereonKeyManager_1.hasKeyOptions)(meta) && ((_b = meta.opts) === null || _b === void 0 ? void 0 : _b.ephemeral) && !((_c = meta.opts.expiration) === null || _c === void 0 ? void 0 : _c.removalDate)) {
|
|
75
75
|
// Make sure we set a delete date on an ephemeral key
|
|
76
76
|
meta.opts = Object.assign(Object.assign({}, meta.opts), { expiration: Object.assign(Object.assign({}, (_d = meta.opts) === null || _d === void 0 ? void 0 : _d.expiration), { removalDate: new Date(Date.now() + 5 * 60 * 1000) }) });
|
|
77
77
|
}
|
|
78
78
|
const partialKey = yield kms.createKey({ type: args.type, meta });
|
|
79
|
-
const key = Object.assign(Object.assign({}, partialKey), { kms: (_e = args.kms) !== null && _e !== void 0 ? _e : this.
|
|
79
|
+
const key = Object.assign(Object.assign({}, partialKey), { kms: (_e = args.kms) !== null && _e !== void 0 ? _e : this._defaultKms });
|
|
80
80
|
key.meta = Object.assign(Object.assign({}, meta), key.meta);
|
|
81
81
|
key.meta.jwkThumbprint = (_f = key.meta.jwkThumbprint) !== null && _f !== void 0 ? _f : (0, ssi_sdk_ext_key_utils_1.calculateJwkThumbprintForKey)({ key });
|
|
82
82
|
yield this.kmsStore.import(key);
|
|
@@ -111,7 +111,7 @@ class SphereonKeyManager extends key_manager_1.KeyManager {
|
|
|
111
111
|
return yield kms.verify(args);
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
-
return yield (0, ssi_sdk_ext_key_utils_1.
|
|
114
|
+
return yield (0, ssi_sdk_ext_key_utils_1.verifyRawSignature)({
|
|
115
115
|
key: (0, ssi_sdk_ext_key_utils_1.toJwk)(args.publicKeyHex, args.type),
|
|
116
116
|
data: args.data,
|
|
117
117
|
signature: u8a.fromString(args.signature, 'utf-8'),
|
|
@@ -173,6 +173,18 @@ class SphereonKeyManager extends key_manager_1.KeyManager {
|
|
|
173
173
|
}
|
|
174
174
|
});
|
|
175
175
|
}
|
|
176
|
+
get defaultKms() {
|
|
177
|
+
return this._defaultKms;
|
|
178
|
+
}
|
|
179
|
+
set defaultKms(kms) {
|
|
180
|
+
if (!Object.keys(this.availableKmses).includes(kms)) {
|
|
181
|
+
throw Error(`Default KMS needs to be listed in the kms object as well. Found kms-es: ${Object.keys(this.availableKmses).join(',')}`);
|
|
182
|
+
}
|
|
183
|
+
this._defaultKms = kms;
|
|
184
|
+
}
|
|
185
|
+
setKms(name, kms) {
|
|
186
|
+
this.availableKmses[name] = kms;
|
|
187
|
+
}
|
|
176
188
|
}
|
|
177
189
|
exports.SphereonKeyManager = SphereonKeyManager;
|
|
178
190
|
//# sourceMappingURL=SphereonKeyManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SphereonKeyManager.js","sourceRoot":"","sources":["../../src/agent/SphereonKeyManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"SphereonKeyManager.js","sourceRoot":"","sources":["../../src/agent/SphereonKeyManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -131,7 +131,7 @@ export declare const schema: any;
|
|
|
131
131
|
export declare class SphereonKeyManager extends KeyManager {
|
|
132
132
|
private kmsStore;
|
|
133
133
|
private readonly availableKmses;
|
|
134
|
-
|
|
134
|
+
_defaultKms: string;
|
|
135
135
|
readonly kmsMethods: ISphereonKeyManager;
|
|
136
136
|
constructor(options: {
|
|
137
137
|
store: AbstractKeyStore;
|
|
@@ -146,6 +146,9 @@ export declare class SphereonKeyManager extends KeyManager {
|
|
|
146
146
|
keyManagerHandleExpirations(args: ISphereonKeyManagerHandleExpirationsArgs): Promise<Array<ManagedKeyInfo>>;
|
|
147
147
|
private getKmsByName;
|
|
148
148
|
keyManagerGet({ kid }: IKeyManagerGetArgs): Promise<IKey>;
|
|
149
|
+
get defaultKms(): string;
|
|
150
|
+
set defaultKms(kms: string);
|
|
151
|
+
setKms(name: string, kms: AbstractKeyManagementSystem): void;
|
|
149
152
|
}
|
|
150
153
|
|
|
151
154
|
export declare const sphereonKeyManagerMethods: Array<string>;
|
package/dist/tsdoc-metadata.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk-ext.key-manager",
|
|
3
3
|
"description": "Sphereon Key Manager plugin with BLS support",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.27.1-next.4+2ee36ea",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@mattrglobal/bbs-signatures": "^1.3.1",
|
|
24
|
-
"@sphereon/ssi-sdk-ext.key-utils": "0.
|
|
25
|
-
"@sphereon/ssi-sdk-ext.kms-local": "0.
|
|
24
|
+
"@sphereon/ssi-sdk-ext.key-utils": "0.27.1-next.4+2ee36ea",
|
|
25
|
+
"@sphereon/ssi-sdk-ext.kms-local": "0.27.1-next.4+2ee36ea",
|
|
26
26
|
"@sphereon/ssi-sdk.dev": "0.30.2-feature.SDK.41.oidf.support.286"
|
|
27
27
|
},
|
|
28
28
|
"resolutions": {
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"kms",
|
|
48
48
|
"Veramo"
|
|
49
49
|
],
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "2ee36ea7869b4855f0cbe1f8103d7132ad0692ba"
|
|
51
51
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { calculateJwkThumbprintForKey, toJwk,
|
|
1
|
+
import { calculateJwkThumbprintForKey, toJwk, verifyRawSignature } from '@sphereon/ssi-sdk-ext.key-utils'
|
|
2
2
|
import { IKey, KeyMetadata, ManagedKeyInfo } from '@veramo/core'
|
|
3
3
|
import { AbstractKeyManagementSystem, AbstractKeyStore, KeyManager as VeramoKeyManager } from '@veramo/key-manager'
|
|
4
4
|
|
|
@@ -28,15 +28,15 @@ export class SphereonKeyManager extends VeramoKeyManager {
|
|
|
28
28
|
// local store reference, given the superclass store is private, and we need additional functions/calls
|
|
29
29
|
private kmsStore: AbstractKeyStore
|
|
30
30
|
private readonly availableKmses: Record<string, AbstractKeyManagementSystem>
|
|
31
|
-
public
|
|
31
|
+
public _defaultKms: string
|
|
32
32
|
readonly kmsMethods: ISphereonKeyManager
|
|
33
33
|
|
|
34
34
|
constructor(options: { store: AbstractKeyStore; kms: Record<string, AbstractKeyManagementSystem>; defaultKms?: string }) {
|
|
35
35
|
super({ store: options.store, kms: options.kms })
|
|
36
36
|
this.kmsStore = options.store
|
|
37
37
|
this.availableKmses = options.kms
|
|
38
|
-
this.
|
|
39
|
-
if (!Object.keys(this.availableKmses).includes(this.
|
|
38
|
+
this._defaultKms = options.defaultKms ?? Object.keys(this.availableKmses)[0]
|
|
39
|
+
if (!Object.keys(this.availableKmses).includes(this._defaultKms)) {
|
|
40
40
|
throw Error(`Default KMS needs to be listed in the kms object as well. Found kms-es: ${Object.keys(this.availableKmses).join(',')}`)
|
|
41
41
|
}
|
|
42
42
|
const methods = this.methods
|
|
@@ -47,11 +47,11 @@ export class SphereonKeyManager extends VeramoKeyManager {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
keyManagerGetDefaultKeyManagementSystem(): Promise<string> {
|
|
50
|
-
return Promise.resolve(this.
|
|
50
|
+
return Promise.resolve(this._defaultKms)
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
override async keyManagerCreate(args: ISphereonKeyManagerCreateArgs): Promise<ManagedKeyInfo> {
|
|
54
|
-
const kms = this.getKmsByName(args.kms ?? this.
|
|
54
|
+
const kms = this.getKmsByName(args.kms ?? this._defaultKms)
|
|
55
55
|
const meta: KeyMetadata = { ...args.meta, ...(args.opts && { opts: args.opts }) }
|
|
56
56
|
if (hasKeyOptions(meta) && meta.opts?.ephemeral && !meta.opts.expiration?.removalDate) {
|
|
57
57
|
// Make sure we set a delete date on an ephemeral key
|
|
@@ -61,7 +61,7 @@ export class SphereonKeyManager extends VeramoKeyManager {
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
const partialKey = await kms.createKey({ type: args.type, meta })
|
|
64
|
-
const key: IKey = { ...partialKey, kms: args.kms ?? this.
|
|
64
|
+
const key: IKey = { ...partialKey, kms: args.kms ?? this._defaultKms }
|
|
65
65
|
key.meta = { ...meta, ...key.meta }
|
|
66
66
|
key.meta.jwkThumbprint = key.meta.jwkThumbprint ?? calculateJwkThumbprintForKey({ key })
|
|
67
67
|
|
|
@@ -93,7 +93,7 @@ export class SphereonKeyManager extends VeramoKeyManager {
|
|
|
93
93
|
return await kms.verify(args)
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
return await
|
|
96
|
+
return await verifyRawSignature({
|
|
97
97
|
key: toJwk(args.publicKeyHex, args.type),
|
|
98
98
|
data: args.data,
|
|
99
99
|
signature: u8a.fromString(args.signature, 'utf-8'),
|
|
@@ -149,4 +149,20 @@ export class SphereonKeyManager extends VeramoKeyManager {
|
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
get defaultKms(): string {
|
|
155
|
+
return this._defaultKms
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
set defaultKms(kms: string) {
|
|
159
|
+
if (!Object.keys(this.availableKmses).includes(kms)) {
|
|
160
|
+
throw Error(`Default KMS needs to be listed in the kms object as well. Found kms-es: ${Object.keys(this.availableKmses).join(',')}`)
|
|
161
|
+
}
|
|
162
|
+
this._defaultKms = kms
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
setKms(name: string, kms: AbstractKeyManagementSystem): void {
|
|
166
|
+
this.availableKmses[name] = kms
|
|
167
|
+
}
|
|
152
168
|
}
|