@sphereon/ssi-sdk-ext.key-manager 0.19.0 → 0.19.1-next.48

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.
@@ -1,15 +1,18 @@
1
1
  import { KeyManager as VeramoKeyManager, AbstractKeyManagementSystem, AbstractKeyStore } from '@veramo/key-manager';
2
+ import { ManagedKeyInfo } from '@veramo/core';
2
3
  import { ISphereonKeyManager, ISphereonKeyManagerSignArgs, ISphereonKeyManagerVerifyArgs } from '../types/ISphereonKeyManager';
4
+ export declare const sphereonKeyManagerMethods: Array<string>;
3
5
  export declare class SphereonKeyManager extends VeramoKeyManager {
4
6
  private localStore;
5
- private readonly localKms;
7
+ private readonly availableKMSes;
6
8
  readonly localMethods: ISphereonKeyManager;
7
9
  constructor(options: {
8
10
  store: AbstractKeyStore;
9
11
  kms: Record<string, AbstractKeyManagementSystem>;
10
12
  });
11
- private getLocalKms;
13
+ private getAvailableKms;
12
14
  keyManagerSign(args: ISphereonKeyManagerSignArgs): Promise<string>;
13
15
  keyManagerVerify(args: ISphereonKeyManagerVerifyArgs): Promise<boolean>;
16
+ keyManagerListKeys(): Promise<ManagedKeyInfo[]>;
14
17
  }
15
18
  //# sourceMappingURL=SphereonKeyManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SphereonKeyManager.d.ts","sourceRoot":"","sources":["../../src/agent/SphereonKeyManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAInH,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAA;AAE9H,qBAAa,kBAAmB,SAAQ,gBAAgB;IACtD,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6C;IACtE,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAA;gBAE9B,OAAO,EAAE;QAAE,KAAK,EAAE,gBAAgB,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAA;KAAE;IASlG,OAAO,CAAC,WAAW;IASb,cAAc,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC;IAUlE,gBAAgB,CAAC,IAAI,EAAE,6BAA6B,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ9E"}
1
+ {"version":3,"file":"SphereonKeyManager.d.ts","sourceRoot":"","sources":["../../src/agent/SphereonKeyManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEnH,OAAO,EAAO,cAAc,EAAW,MAAM,cAAc,CAAA;AAE3D,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,8BAA8B,CAAA;AAErC,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,MAAM,CAAoG,CAAA;AAExJ,qBAAa,kBAAmB,SAAQ,gBAAgB;IACtD,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAA;gBAE9B,OAAO,EAAE;QAAE,KAAK,EAAE,gBAAgB,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAA;KAAE;IAUlG,OAAO,CAAC,eAAe;IASjB,cAAc,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC;IAUlE,gBAAgB,CAAC,IAAI,EAAE,6BAA6B,GAAG,OAAO,CAAC,OAAO,CAAC;IASvE,kBAAkB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;CAGtD"}
@@ -9,20 +9,22 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.SphereonKeyManager = void 0;
12
+ exports.SphereonKeyManager = exports.sphereonKeyManagerMethods = void 0;
13
13
  const key_manager_1 = require("@veramo/key-manager");
14
14
  const ssi_sdk_ext_kms_local_1 = require("@sphereon/ssi-sdk-ext.kms-local");
15
+ exports.sphereonKeyManagerMethods = ['keyManagerCreate', 'keyManagerImport', 'keyManagerSign', 'keyManagerVerify', 'keyManagerListKeys'];
15
16
  class SphereonKeyManager extends key_manager_1.KeyManager {
16
17
  constructor(options) {
17
18
  super({ store: options.store, kms: options.kms });
18
19
  this.localStore = options.store;
19
- this.localKms = options.kms;
20
+ this.availableKMSes = options.kms;
20
21
  const methods = this.methods;
21
22
  methods.keyManagerVerify = this.keyManagerVerify.bind(this);
23
+ methods.keyManagerListKeys = this.keyManagerListKeys.bind(this);
22
24
  this.localMethods = methods;
23
25
  }
24
- getLocalKms(name) {
25
- const kms = this.localKms[name];
26
+ getAvailableKms(name) {
27
+ const kms = this.availableKMSes[name];
26
28
  if (!kms) {
27
29
  throw Error(`invalid_argument: This agent has no registered KeyManagementSystem with name='${name}'`);
28
30
  }
@@ -35,7 +37,7 @@ class SphereonKeyManager extends key_manager_1.KeyManager {
35
37
  });
36
38
  return __awaiter(this, void 0, void 0, function* () {
37
39
  const keyInfo = (yield this.localStore.get({ kid: args.keyRef }));
38
- const kms = this.getLocalKms(keyInfo.kms);
40
+ const kms = this.getAvailableKms(keyInfo.kms);
39
41
  if (keyInfo.type === ssi_sdk_ext_kms_local_1.KeyType.Bls12381G2) {
40
42
  return yield kms.sign({ keyRef: keyInfo, data: Uint8Array.from(Buffer.from(args.data)) });
41
43
  }
@@ -45,7 +47,7 @@ class SphereonKeyManager extends key_manager_1.KeyManager {
45
47
  }
46
48
  keyManagerVerify(args) {
47
49
  return __awaiter(this, void 0, void 0, function* () {
48
- const kms = this.getLocalKms(args.kms);
50
+ const kms = this.getAvailableKms(args.kms);
49
51
  if (('verify' in kms && typeof kms.verify === 'function') || kms instanceof ssi_sdk_ext_kms_local_1.SphereonKeyManagementSystem) {
50
52
  // @ts-ignore
51
53
  return yield kms.verify(args);
@@ -53,6 +55,11 @@ class SphereonKeyManager extends key_manager_1.KeyManager {
53
55
  throw Error(`KMS ${kms} does not support verification`);
54
56
  });
55
57
  }
58
+ keyManagerListKeys() {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ return this.localStore.list({}); // FIXME there are no args it seems
61
+ });
62
+ }
56
63
  }
57
64
  exports.SphereonKeyManager = SphereonKeyManager;
58
65
  //# sourceMappingURL=SphereonKeyManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SphereonKeyManager.js","sourceRoot":"","sources":["../../src/agent/SphereonKeyManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAmH;AAGnH,2EAAsF;AAGtF,MAAa,kBAAmB,SAAQ,wBAAgB;IAKtD,YAAY,OAAsF;QAChG,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAA;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAA;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3D,IAAI,CAAC,YAAY,GAAkC,OAAQ,CAAA;IAC7D,CAAC;IAEO,WAAW,CAAC,IAAY;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,KAAK,CAAC,iFAAiF,IAAI,GAAG,CAAC,CAAA;QACvG,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,8EAA8E;IACxE,cAAc,CAAC,IAAiC;;;;;YACpD,MAAM,OAAO,GAAS,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAS,CAAA;YAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACzC,IAAI,OAAO,CAAC,IAAI,KAAe,+BAAO,CAAC,UAAU,EAAE,CAAC;gBAClD,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;YAC3F,CAAC;YACD,aAAa;YACb,OAAO,MAAM,OAAM,cAAc,YAAC,IAAI,CAAC,CAAA;QACzC,CAAC;KAAA;IAEK,gBAAgB,CAAC,IAAmC;;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACtC,IAAI,CAAC,QAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,GAAG,YAAY,mDAA2B,EAAE,CAAC;gBACxG,aAAa;gBACb,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC/B,CAAC;YACD,MAAM,KAAK,CAAC,OAAO,GAAG,gCAAgC,CAAC,CAAA;QACzD,CAAC;KAAA;CACF;AAzCD,gDAyCC"}
1
+ {"version":3,"file":"SphereonKeyManager.js","sourceRoot":"","sources":["../../src/agent/SphereonKeyManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAmH;AAGnH,2EAAsF;AAOzE,QAAA,yBAAyB,GAAkB,CAAC,kBAAkB,EAAC,kBAAkB,EAAC,gBAAgB,EAAC,kBAAkB,EAAC,oBAAoB,CAAC,CAAA;AAExJ,MAAa,kBAAmB,SAAQ,wBAAgB;IAKtD,YAAY,OAAsF;QAChG,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAA;QAC/B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,GAAG,CAAA;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3D,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/D,IAAI,CAAC,YAAY,GAAkC,OAAQ,CAAA;IAC7D,CAAC;IAEO,eAAe,CAAC,IAAY;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QACrC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,KAAK,CAAC,iFAAiF,IAAI,GAAG,CAAC,CAAA;QACvG,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,8EAA8E;IACxE,cAAc,CAAC,IAAiC;;;;;YACpD,MAAM,OAAO,GAAS,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAS,CAAA;YAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC7C,IAAI,OAAO,CAAC,IAAI,KAAe,+BAAO,CAAC,UAAU,EAAE,CAAC;gBAClD,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;YAC3F,CAAC;YACD,aAAa;YACb,OAAO,MAAM,OAAM,cAAc,YAAC,IAAI,CAAC,CAAA;QACzC,CAAC;KAAA;IAEK,gBAAgB,CAAC,IAAmC;;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC1C,IAAI,CAAC,QAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,GAAG,YAAY,mDAA2B,EAAE,CAAC;gBACxG,aAAa;gBACb,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC/B,CAAC;YACD,MAAM,KAAK,CAAC,OAAO,GAAG,gCAAgC,CAAC,CAAA;QACzD,CAAC;KAAA;IAEK,kBAAkB;;YACtB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,CAAC,mCAAmC;QACrE,CAAC;KAAA;CACF;AA9CD,gDA8CC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  declare const schema: any;
2
2
  export { schema };
3
- export { SphereonKeyManager } from './agent/SphereonKeyManager';
3
+ export { SphereonKeyManager, sphereonKeyManagerMethods } from './agent/SphereonKeyManager';
4
4
  export * from './types/ISphereonKeyManager';
5
5
  export * from '@veramo/key-manager';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM,KAAmC,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM,KAAmC,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAC1F,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA"}
package/dist/index.js CHANGED
@@ -14,11 +14,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.SphereonKeyManager = exports.schema = void 0;
17
+ exports.sphereonKeyManagerMethods = exports.SphereonKeyManager = exports.schema = void 0;
18
18
  const schema = require('../plugin.schema.json');
19
19
  exports.schema = schema;
20
20
  var SphereonKeyManager_1 = require("./agent/SphereonKeyManager");
21
21
  Object.defineProperty(exports, "SphereonKeyManager", { enumerable: true, get: function () { return SphereonKeyManager_1.SphereonKeyManager; } });
22
+ Object.defineProperty(exports, "sphereonKeyManagerMethods", { enumerable: true, get: function () { return SphereonKeyManager_1.sphereonKeyManagerMethods; } });
22
23
  __exportStar(require("./types/ISphereonKeyManager"), exports);
23
24
  __exportStar(require("@veramo/key-manager"), exports);
24
25
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;AACtC,wBAAM;AACf,iEAA+D;AAAtD,wHAAA,kBAAkB,OAAA;AAC3B,8DAA2C;AAC3C,sDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;AACtC,wBAAM;AACf,iEAA0F;AAAjF,wHAAA,kBAAkB,OAAA;AAAE,+HAAA,yBAAyB,OAAA;AACtD,8DAA2C;AAC3C,sDAAmC"}
@@ -61,6 +61,7 @@ export declare interface ISphereonKeyManager extends IKeyManager, IPluginMethodM
61
61
  * @param args
62
62
  */
63
63
  keyManagerVerify(args: ISphereonKeyManagerVerifyArgs): Promise<boolean>;
64
+ keyManagerListKeys(): Promise<Array<ManagedKeyInfo>>;
64
65
  }
65
66
 
66
67
  /**
@@ -91,17 +92,20 @@ export declare const schema: any;
91
92
 
92
93
  export declare class SphereonKeyManager extends KeyManager {
93
94
  private localStore;
94
- private readonly localKms;
95
+ private readonly availableKMSes;
95
96
  readonly localMethods: ISphereonKeyManager;
96
97
  constructor(options: {
97
98
  store: AbstractKeyStore;
98
99
  kms: Record<string, AbstractKeyManagementSystem>;
99
100
  });
100
- private getLocalKms;
101
+ private getAvailableKms;
101
102
  keyManagerSign(args: ISphereonKeyManagerSignArgs): Promise<string>;
102
103
  keyManagerVerify(args: ISphereonKeyManagerVerifyArgs): Promise<boolean>;
104
+ keyManagerListKeys(): Promise<ManagedKeyInfo[]>;
103
105
  }
104
106
 
107
+ export declare const sphereonKeyManagerMethods: Array<string>;
108
+
105
109
 
106
110
  export * from "@veramo/key-manager";
107
111
 
@@ -14,6 +14,7 @@ export interface ISphereonKeyManager extends IKeyManager, IPluginMethodMap {
14
14
  * @param args
15
15
  */
16
16
  keyManagerVerify(args: ISphereonKeyManagerVerifyArgs): Promise<boolean>;
17
+ keyManagerListKeys(): Promise<Array<ManagedKeyInfo>>;
17
18
  }
18
19
  /**
19
20
  * Input arguments for {@link ISphereonKeyManager.keyManagerCreate | keyManagerCreate}
@@ -1 +1 @@
1
- {"version":3,"file":"ISphereonKeyManager.d.ts","sourceRoot":"","sources":["../../src/types/ISphereonKeyManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9H,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnE,MAAM,WAAW,mBAAoB,SAAQ,WAAW,EAAE,gBAAgB;IACxE,gBAAgB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAElE,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAEhE,cAAc,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAElE;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,6BAA6B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACxE;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAA;IAEd;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;OAEG;IACH,IAAI,CAAC,EAAE,WAAW,CAAA;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;GAGG;AAEH,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB;IACtE;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CAC1B;AAED,MAAM,WAAW,6BAA6B;IAC5C,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB"}
1
+ {"version":3,"file":"ISphereonKeyManager.d.ts","sourceRoot":"","sources":["../../src/types/ISphereonKeyManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9H,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnE,MAAM,WAAW,mBAAoB,SAAQ,WAAW,EAAE,gBAAgB;IACxE,gBAAgB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAElE,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAEhE,cAAc,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAElE;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,6BAA6B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEvE,kBAAkB,IAAI,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;CACrD;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAA;IAEd;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;OAEG;IACH,IAAI,CAAC,EAAE,WAAW,CAAA;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;GAGG;AAEH,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB;IACtE;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CAC1B;AAED,MAAM,WAAW,6BAA6B;IAC5C,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB"}
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.19.0",
4
+ "version": "0.19.1-next.48+0cb2a95",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -15,13 +15,13 @@
15
15
  "generate-plugin-schema": "sphereon dev generate-plugin-schema"
16
16
  },
17
17
  "dependencies": {
18
- "@sphereon/ssi-sdk-ext.kms-local": "0.19.0",
18
+ "@sphereon/ssi-sdk-ext.kms-local": "0.19.1-next.48+0cb2a95",
19
19
  "@veramo/core": "4.2.0",
20
20
  "@veramo/key-manager": "4.2.0"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@mattrglobal/bbs-signatures": "^1.3.1",
24
- "@sphereon/ssi-sdk-ext.key-utils": "0.19.0",
24
+ "@sphereon/ssi-sdk-ext.key-utils": "0.19.1-next.48+0cb2a95",
25
25
  "@sphereon/ssi-sdk.dev": "^0.23.0"
26
26
  },
27
27
  "resolutions": {
@@ -46,5 +46,5 @@
46
46
  "kms",
47
47
  "Veramo"
48
48
  ],
49
- "gitHead": "82fc25ebed0f9ae2167bf228e5045b9c4217ce5a"
49
+ "gitHead": "0cb2a95114ee6a68d5ce042ec4a031214c9386b7"
50
50
  }
@@ -132,6 +132,45 @@
132
132
  },
133
133
  "description": "Represents an object type where a subset of keys are required and everything else is optional."
134
134
  },
135
+ "ManagedKeyInfo": {
136
+ "type": "object",
137
+ "properties": {
138
+ "kid": {
139
+ "type": "string",
140
+ "description": "Key ID"
141
+ },
142
+ "kms": {
143
+ "type": "string",
144
+ "description": "Key Management System"
145
+ },
146
+ "type": {
147
+ "$ref": "#/components/schemas/TKeyType",
148
+ "description": "Key type"
149
+ },
150
+ "publicKeyHex": {
151
+ "type": "string",
152
+ "description": "Public key"
153
+ },
154
+ "meta": {
155
+ "anyOf": [
156
+ {
157
+ "$ref": "#/components/schemas/KeyMetadata"
158
+ },
159
+ {
160
+ "type": "null"
161
+ }
162
+ ],
163
+ "description": "Optional. Key metadata. This should be used to determine which algorithms are supported."
164
+ }
165
+ },
166
+ "required": [
167
+ "kid",
168
+ "kms",
169
+ "type",
170
+ "publicKeyHex"
171
+ ],
172
+ "description": "Represents information about a managed key. Private or secret key material is NOT present."
173
+ },
135
174
  "ISphereonKeyManagerSignArgs": {
136
175
  "type": "object",
137
176
  "properties": {
@@ -301,6 +340,18 @@
301
340
  "$ref": "#/components/schemas/PartialKey"
302
341
  }
303
342
  },
343
+ "keyManagerListKeys": {
344
+ "description": "",
345
+ "arguments": {
346
+ "type": "object"
347
+ },
348
+ "returnType": {
349
+ "type": "array",
350
+ "items": {
351
+ "$ref": "#/components/schemas/ManagedKeyInfo"
352
+ }
353
+ }
354
+ },
304
355
  "keyManagerSign": {
305
356
  "description": "",
306
357
  "arguments": {
@@ -1,6 +1,6 @@
1
1
  import { SphereonKeyManager } from '../agent/SphereonKeyManager'
2
2
  import { MemoryKeyStore, MemoryPrivateKeyStore } from '@veramo/key-manager'
3
- import { IKey } from '@veramo/core'
3
+ import { IKey, ManagedKeyInfo } from '@veramo/core'
4
4
  import { generateBls12381G2KeyPair } from '@mattrglobal/bbs-signatures'
5
5
  import { SphereonKeyManagementSystem } from '@sphereon/ssi-sdk-ext.kms-local'
6
6
 
@@ -82,6 +82,25 @@ describe('@sphereon/ssi-sdk-ext.kms-local', () => {
82
82
  await expect(kms.keyManagerDelete({ kid: Buffer.from(bls.publicKey).toString('hex') })).resolves.toBeTruthy()
83
83
  })
84
84
 
85
+ it('should get all the keys in the sphereon key manager', async () => {
86
+ const myKey = {
87
+ type: 'Bls12381G2',
88
+ privateKeyHex: Buffer.from(bls.secretKey).toString('hex'),
89
+ publicKeyHex: Buffer.from(bls.publicKey).toString('hex'),
90
+ }
91
+ await kms.keyManagerImport({
92
+ kid: myKey.publicKeyHex,
93
+ privateKeyHex: myKey.privateKeyHex,
94
+ publicKeyHex: myKey.publicKeyHex,
95
+ kms: 'local',
96
+ type: 'Bls12381G2',
97
+ })
98
+ const keys: ManagedKeyInfo[] = await kms.keyManagerListKeys()
99
+ keys.forEach((key) => {
100
+ expect(key['privateKeyHex' as keyof ManagedKeyInfo]).toBeUndefined()
101
+ })
102
+ })
103
+
85
104
  afterAll(async () => {
86
105
  await new Promise((resolve) => setTimeout((v: void) => resolve(v), 500))
87
106
  })
@@ -1,25 +1,32 @@
1
1
  import { KeyManager as VeramoKeyManager, AbstractKeyManagementSystem, AbstractKeyStore } from '@veramo/key-manager'
2
2
 
3
- import { IKey, TKeyType } from '@veramo/core'
3
+ import {IKey, ManagedKeyInfo, TKeyType} from '@veramo/core'
4
4
  import { KeyType, SphereonKeyManagementSystem } from '@sphereon/ssi-sdk-ext.kms-local'
5
- import { ISphereonKeyManager, ISphereonKeyManagerSignArgs, ISphereonKeyManagerVerifyArgs } from '../types/ISphereonKeyManager'
5
+ import {
6
+ ISphereonKeyManager,
7
+ ISphereonKeyManagerSignArgs,
8
+ ISphereonKeyManagerVerifyArgs,
9
+ } from '../types/ISphereonKeyManager'
10
+
11
+ export const sphereonKeyManagerMethods: Array<string> = ['keyManagerCreate','keyManagerImport','keyManagerSign','keyManagerVerify','keyManagerListKeys']
6
12
 
7
13
  export class SphereonKeyManager extends VeramoKeyManager {
8
14
  private localStore: AbstractKeyStore
9
- private readonly localKms: Record<string, AbstractKeyManagementSystem>
15
+ private readonly availableKMSes: Record<string, AbstractKeyManagementSystem>
10
16
  readonly localMethods: ISphereonKeyManager
11
17
 
12
18
  constructor(options: { store: AbstractKeyStore; kms: Record<string, AbstractKeyManagementSystem> }) {
13
19
  super({ store: options.store, kms: options.kms })
14
20
  this.localStore = options.store
15
- this.localKms = options.kms
21
+ this.availableKMSes = options.kms
16
22
  const methods = this.methods
17
23
  methods.keyManagerVerify = this.keyManagerVerify.bind(this)
24
+ methods.keyManagerListKeys = this.keyManagerListKeys.bind(this)
18
25
  this.localMethods = <ISphereonKeyManager>(<unknown>methods)
19
26
  }
20
27
 
21
- private getLocalKms(name: string): AbstractKeyManagementSystem {
22
- const kms = this.localKms[name]
28
+ private getAvailableKms(name: string): AbstractKeyManagementSystem {
29
+ const kms = this.availableKMSes[name]
23
30
  if (!kms) {
24
31
  throw Error(`invalid_argument: This agent has no registered KeyManagementSystem with name='${name}'`)
25
32
  }
@@ -29,7 +36,7 @@ export class SphereonKeyManager extends VeramoKeyManager {
29
36
  //FIXME extend the IKeyManagerSignArgs.data to be a string or array of strings
30
37
  async keyManagerSign(args: ISphereonKeyManagerSignArgs): Promise<string> {
31
38
  const keyInfo: IKey = (await this.localStore.get({ kid: args.keyRef })) as IKey
32
- const kms = this.getLocalKms(keyInfo.kms)
39
+ const kms = this.getAvailableKms(keyInfo.kms)
33
40
  if (keyInfo.type === <TKeyType>KeyType.Bls12381G2) {
34
41
  return await kms.sign({ keyRef: keyInfo, data: Uint8Array.from(Buffer.from(args.data)) })
35
42
  }
@@ -38,11 +45,15 @@ export class SphereonKeyManager extends VeramoKeyManager {
38
45
  }
39
46
 
40
47
  async keyManagerVerify(args: ISphereonKeyManagerVerifyArgs): Promise<boolean> {
41
- const kms = this.getLocalKms(args.kms)
48
+ const kms = this.getAvailableKms(args.kms)
42
49
  if (('verify' in kms && typeof kms.verify === 'function') || kms instanceof SphereonKeyManagementSystem) {
43
50
  // @ts-ignore
44
51
  return await kms.verify(args)
45
52
  }
46
53
  throw Error(`KMS ${kms} does not support verification`)
47
54
  }
55
+
56
+ async keyManagerListKeys(): Promise<ManagedKeyInfo[]> {
57
+ return this.localStore.list({}) // FIXME there are no args it seems
58
+ }
48
59
  }
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  const schema = require('../plugin.schema.json')
2
2
  export { schema }
3
- export { SphereonKeyManager } from './agent/SphereonKeyManager'
3
+ export { SphereonKeyManager, sphereonKeyManagerMethods } from './agent/SphereonKeyManager'
4
4
  export * from './types/ISphereonKeyManager'
5
5
  export * from '@veramo/key-manager'
@@ -17,6 +17,8 @@ export interface ISphereonKeyManager extends IKeyManager, IPluginMethodMap {
17
17
  * @param args
18
18
  */
19
19
  keyManagerVerify(args: ISphereonKeyManagerVerifyArgs): Promise<boolean>
20
+
21
+ keyManagerListKeys(): Promise<Array<ManagedKeyInfo>>
20
22
  }
21
23
 
22
24
  /**