@libp2p/keychain 0.6.1 → 1.0.0

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,9 +1,5 @@
1
1
  export declare enum codes {
2
- ERR_KEYCHAIN_REQUIRED = "ERR_KEYCHAIN_REQUIRED",
3
2
  ERR_INVALID_PARAMETERS = "ERR_INVALID_PARAMETERS",
4
- ERR_INVALID_CMS = "ERR_INVALID_CMS",
5
- ERR_MISSING_KEYS = "ERR_MISSING_KEYS",
6
- ERR_NO_KEY = "ERR_NO_KEY",
7
3
  ERR_INVALID_KEY_NAME = "ERR_INVALID_KEY_NAME",
8
4
  ERR_INVALID_KEY_TYPE = "ERR_INVALID_KEY_TYPE",
9
5
  ERR_KEY_ALREADY_EXISTS = "ERR_KEY_ALREADY_EXISTS",
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AACA,oBAAY,KAAK;IACf,qBAAqB,0BAA0B;IAC/C,sBAAsB,2BAA2B;IACjD,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;IACzB,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,wBAAwB,6BAA6B;IACrD,wBAAwB,6BAA6B;IACrD,qBAAqB,0BAA0B;IAC/C,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IACnD,yBAAyB,8BAA8B;IACvD,yBAAyB,8BAA8B;IACvD,uBAAuB,4BAA4B;CACpD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AACA,oBAAY,KAAK;IACf,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,wBAAwB,6BAA6B;IACrD,wBAAwB,6BAA6B;IACrD,qBAAqB,0BAA0B;IAC/C,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IACnD,yBAAyB,8BAA8B;IACvD,yBAAyB,8BAA8B;IACvD,uBAAuB,4BAA4B;CACpD"}
@@ -1,10 +1,6 @@
1
1
  export var codes;
2
2
  (function (codes) {
3
- codes["ERR_KEYCHAIN_REQUIRED"] = "ERR_KEYCHAIN_REQUIRED";
4
3
  codes["ERR_INVALID_PARAMETERS"] = "ERR_INVALID_PARAMETERS";
5
- codes["ERR_INVALID_CMS"] = "ERR_INVALID_CMS";
6
- codes["ERR_MISSING_KEYS"] = "ERR_MISSING_KEYS";
7
- codes["ERR_NO_KEY"] = "ERR_NO_KEY";
8
4
  codes["ERR_INVALID_KEY_NAME"] = "ERR_INVALID_KEY_NAME";
9
5
  codes["ERR_INVALID_KEY_TYPE"] = "ERR_INVALID_KEY_TYPE";
10
6
  codes["ERR_KEY_ALREADY_EXISTS"] = "ERR_KEY_ALREADY_EXISTS";
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,KAoBX;AApBD,WAAY,KAAK;IACf,wDAA+C,CAAA;IAC/C,0DAAiD,CAAA;IACjD,4CAAmC,CAAA;IACnC,8CAAqC,CAAA;IACrC,kCAAyB,CAAA;IACzB,sDAA6C,CAAA;IAC7C,sDAA6C,CAAA;IAC7C,0DAAiD,CAAA;IACjD,sDAA6C,CAAA;IAC7C,gDAAuC,CAAA;IACvC,8DAAqD,CAAA;IACrD,8DAAqD,CAAA;IACrD,wDAA+C,CAAA;IAC/C,8CAAqC,CAAA;IACrC,oDAA2C,CAAA;IAC3C,4DAAmD,CAAA;IACnD,gEAAuD,CAAA;IACvD,gEAAuD,CAAA;IACvD,4DAAmD,CAAA;AACrD,CAAC,EApBW,KAAK,KAAL,KAAK,QAoBhB"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,KAgBX;AAhBD,WAAY,KAAK;IACf,0DAAiD,CAAA;IACjD,sDAA6C,CAAA;IAC7C,sDAA6C,CAAA;IAC7C,0DAAiD,CAAA;IACjD,sDAA6C,CAAA;IAC7C,gDAAuC,CAAA;IACvC,8DAAqD,CAAA;IACrD,8DAAqD,CAAA;IACrD,wDAA+C,CAAA;IAC/C,8CAAqC,CAAA;IACrC,oDAA2C,CAAA;IAC3C,4DAAmD,CAAA;IACnD,gEAAuD,CAAA;IACvD,gEAAuD,CAAA;IACvD,4DAAmD,CAAA;AACrD,CAAC,EAhBW,KAAK,KAAL,KAAK,QAgBhB"}
@@ -1,7 +1,6 @@
1
- import { CMS } from './cms.js';
2
1
  import type { PeerId } from '@libp2p/interface-peer-id';
3
2
  import type { Datastore } from 'interface-datastore';
4
- import type { KeyTypes } from '@libp2p/crypto/keys';
3
+ import type { KeyChain, KeyInfo, KeyType } from '@libp2p/interface-keychain';
5
4
  export interface DEKConfig {
6
5
  hash: string;
7
6
  salt: string;
@@ -12,19 +11,14 @@ export interface KeyChainInit {
12
11
  pass?: string;
13
12
  dek?: DEKConfig;
14
13
  }
15
- /**
16
- * Information about a key.
17
- */
18
- export interface KeyInfo {
19
- /**
20
- * The universally unique key id
21
- */
22
- id: string;
23
- /**
24
- * The local key name.
25
- */
26
- name: string;
27
- }
14
+ declare const defaultOptions: {
15
+ dek: {
16
+ keyLength: number;
17
+ iterationCount: number;
18
+ salt: string;
19
+ hash: string;
20
+ };
21
+ };
28
22
  export interface KeyChainComponents {
29
23
  datastore: Datastore;
30
24
  }
@@ -36,22 +30,13 @@ export interface KeyChainComponents {
36
30
  * - '/pkcs8/*key-name*', contains the PKCS #8 for the key
37
31
  *
38
32
  */
39
- export declare class KeyChain {
33
+ export declare class DefaultKeyChain implements KeyChain {
40
34
  private readonly components;
41
35
  private readonly init;
42
36
  /**
43
37
  * Creates a new instance of a key chain
44
38
  */
45
39
  constructor(components: KeyChainComponents, init: KeyChainInit);
46
- /**
47
- * Gets an object that can encrypt/decrypt protected data
48
- * using the Cryptographic Message Syntax (CMS).
49
- *
50
- * CMS describes an encapsulation syntax for data protection. It
51
- * is used to digitally sign, digest, authenticate, or encrypt
52
- * arbitrary message content
53
- */
54
- get cms(): CMS;
55
40
  /**
56
41
  * Generates the options for a keychain. A random salt is produced.
57
42
  *
@@ -64,14 +49,7 @@ export declare class KeyChain {
64
49
  *
65
50
  * @returns {object}
66
51
  */
67
- static get options(): {
68
- dek: {
69
- keyLength: number;
70
- iterationCount: number;
71
- salt: string;
72
- hash: string;
73
- };
74
- };
52
+ static get options(): typeof defaultOptions;
75
53
  /**
76
54
  * Create a new key.
77
55
  *
@@ -79,13 +57,13 @@ export declare class KeyChain {
79
57
  * @param {string} type - One of the key types; 'rsa'.
80
58
  * @param {number} [size = 2048] - The key size in bits. Used for rsa keys only
81
59
  */
82
- createKey(name: string, type: KeyTypes, size?: number): Promise<KeyInfo>;
60
+ createKey(name: string, type: KeyType, size?: number): Promise<KeyInfo>;
83
61
  /**
84
62
  * List all the keys.
85
63
  *
86
64
  * @returns {Promise<KeyInfo[]>}
87
65
  */
88
- listKeys(): Promise<any[]>;
66
+ listKeys(): Promise<KeyInfo[]>;
89
67
  /**
90
68
  * Find a key by it's id
91
69
  */
@@ -142,4 +120,5 @@ export declare class KeyChain {
142
120
  */
143
121
  rotateKeychainPass(oldPass: string, newPass: string): Promise<void>;
144
122
  }
123
+ export {};
145
124
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAM9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAInD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,SAAS,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AA6DD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,SAAS,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IAEnC;;OAEG;gBACU,UAAU,EAAE,kBAAkB,EAAE,IAAI,EAAE,YAAY;IA8B/D;;;;;;;OAOG;IACH,IAAI,GAAG,QAUN;IAED;;;;OAIG;IACH,MAAM,CAAC,eAAe,IAAK,YAAY;IAOvC;;;;;OAKG;IACH,MAAM,KAAK,OAAO;;;;;;;MAEjB;IAED;;;;;;OAMG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA0D7E;;;;OAIG;IACG,QAAQ;IAad;;OAEG;IACG,WAAW,CAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUhD;;;;;OAKG;IACG,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBpD;;;;;OAKG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM;IAc7B;;;;;;OAMG;IACG,SAAS,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuCpE;;OAEG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IA6B/C;;OAEG;IACG,YAAY,CAAE,IAAI,EAAE,MAAM;IAQhC;;;;;;;OAOG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoD/E;;OAEG;IACG,UAAU,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4C/D;;OAEG;IACG,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBnD;;OAEG;IACG,kBAAkB,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAmD3D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAI5E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,SAAS,CAAA;CAChB;AAaD,QAAA,MAAM,cAAc;;;;;;;CAQnB,CAAA;AAwCD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,SAAS,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IAEnC;;OAEG;gBACU,UAAU,EAAE,kBAAkB,EAAE,IAAI,EAAE,YAAY;IA8B/D;;;;OAIG;IACH,MAAM,CAAC,eAAe,IAAK,YAAY;IAOvC;;;;;OAKG;IACH,MAAM,KAAK,OAAO,IAAK,OAAO,cAAc,CAE3C;IAED;;;;;;OAMG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA0D5E;;;;OAIG;IACG,QAAQ,IAAK,OAAO,CAAC,OAAO,EAAE,CAAC;IAarC;;OAEG;IACG,WAAW,CAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBhD;;;;;OAKG;IACG,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBpD;;;;;OAKG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAchD;;;;;;OAMG;IACG,SAAS,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuCpE;;OAEG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA6BjE;;OAEG;IACG,YAAY,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQlD;;;;;;;OAOG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoD/E;;OAEG;IACG,UAAU,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4C/D;;OAEG;IACG,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBnD;;OAEG;IACG,kBAAkB,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAmD3E"}
package/dist/src/index.js CHANGED
@@ -3,7 +3,6 @@ import { logger } from '@libp2p/logger';
3
3
  import sanitize from 'sanitize-filename';
4
4
  import mergeOptions from 'merge-options';
5
5
  import { Key } from 'interface-datastore/key';
6
- import { CMS } from './cms.js';
7
6
  import errCode from 'err-code';
8
7
  import { codes } from './errors.js';
9
8
  import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
@@ -71,7 +70,7 @@ function DsInfoName(name) {
71
70
  * - '/pkcs8/*key-name*', contains the PKCS #8 for the key
72
71
  *
73
72
  */
74
- export class KeyChain {
73
+ export class DefaultKeyChain {
75
74
  /**
76
75
  * Creates a new instance of a key chain
77
76
  */
@@ -96,22 +95,6 @@ export class KeyChain {
96
95
  : '';
97
96
  privates.set(this, { dek });
98
97
  }
99
- /**
100
- * Gets an object that can encrypt/decrypt protected data
101
- * using the Cryptographic Message Syntax (CMS).
102
- *
103
- * CMS describes an encapsulation syntax for data protection. It
104
- * is used to digitally sign, digest, authenticate, or encrypt
105
- * arbitrary message content
106
- */
107
- get cms() {
108
- const cached = privates.get(this);
109
- if (cached == null) {
110
- throw errCode(new Error('dek missing'), codes.ERR_INVALID_PARAMETERS);
111
- }
112
- const dek = cached.dek;
113
- return new CMS(this, dek);
114
- }
115
98
  /**
116
99
  * Generates the options for a keychain. A random salt is produced.
117
100
  *
@@ -175,7 +158,7 @@ export class KeyChain {
175
158
  const dek = cached.dek;
176
159
  const pem = await keypair.export(dek);
177
160
  keyInfo = {
178
- name: name,
161
+ name,
179
162
  id: kid
180
163
  };
181
164
  const batch = this.components.datastore.batch();
@@ -210,7 +193,11 @@ export class KeyChain {
210
193
  async findKeyById(id) {
211
194
  try {
212
195
  const keys = await this.listKeys();
213
- return keys.find((k) => k.id === id);
196
+ const key = keys.find((k) => k.id === id);
197
+ if (key == null) {
198
+ throw errCode(new Error(`Key with id '${id}' does not exist.`), codes.ERR_KEY_NOT_FOUND);
199
+ }
200
+ return key;
214
201
  }
215
202
  catch (err) {
216
203
  await randomDelay();
@@ -385,7 +372,7 @@ export class KeyChain {
385
372
  throw err;
386
373
  }
387
374
  const keyInfo = {
388
- name: name,
375
+ name,
389
376
  id: kid
390
377
  };
391
378
  const batch = this.components.datastore.batch();
@@ -422,7 +409,7 @@ export class KeyChain {
422
409
  const dek = cached.dek;
423
410
  const pem = await privateKey.export(dek);
424
411
  const keyInfo = {
425
- name: name,
412
+ name,
426
413
  id: peer.toString()
427
414
  };
428
415
  const batch = this.components.datastore.batch();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,3 @@
1
- import 'node-forge/lib/x509.js';
2
- /**
3
- * Gets a self-signed X.509 certificate for the key.
4
- *
5
- * The output Uint8Array contains the PKCS #7 message in DER.
6
- *
7
- * TODO: move to libp2p-crypto package
8
- */
9
- export declare const certificateForKey: (key: any, privateKey: forge.pki.rsa.PrivateKey) => any;
10
1
  /**
11
2
  * Finds the first item in a collection that is matched in the
12
3
  * `asyncCompare` function.
@@ -17,5 +8,5 @@ export declare const certificateForKey: (key: any, privateKey: forge.pki.rsa.Pri
17
8
  * @param {Array} array
18
9
  * @param {function(*)} asyncCompare - An async function that returns a boolean
19
10
  */
20
- export declare function findAsync<T>(array: T[], asyncCompare: (val: T) => Promise<any>): Promise<T>;
11
+ export declare function findAsync<T>(array: T[], asyncCompare: (val: T) => Promise<any>): Promise<T | undefined>;
21
12
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAA;AAM/B;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,QAAS,GAAG,8CAmDzC,CAAA;AAED;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAE,CAAC,EAAG,KAAK,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,cAKtF"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAE,CAAC,EAAG,KAAK,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAK/G"}
package/dist/src/util.js CHANGED
@@ -1,65 +1,3 @@
1
- import 'node-forge/lib/x509.js';
2
- // @ts-expect-error types are missing
3
- import forge from 'node-forge/lib/forge.js';
4
- const pki = forge.pki;
5
- /**
6
- * Gets a self-signed X.509 certificate for the key.
7
- *
8
- * The output Uint8Array contains the PKCS #7 message in DER.
9
- *
10
- * TODO: move to libp2p-crypto package
11
- */
12
- export const certificateForKey = (key, privateKey) => {
13
- const publicKey = pki.rsa.setPublicKey(privateKey.n, privateKey.e);
14
- const cert = pki.createCertificate();
15
- cert.publicKey = publicKey;
16
- cert.serialNumber = '01';
17
- cert.validity.notBefore = new Date();
18
- cert.validity.notAfter = new Date();
19
- cert.validity.notAfter.setFullYear(cert.validity.notBefore.getFullYear() + 10); // eslint-disable-line @typescript-eslint/restrict-plus-operands
20
- const attrs = [{
21
- name: 'organizationName',
22
- value: 'ipfs'
23
- }, {
24
- shortName: 'OU',
25
- value: 'keystore'
26
- }, {
27
- name: 'commonName',
28
- value: key.id
29
- }];
30
- cert.setSubject(attrs);
31
- cert.setIssuer(attrs);
32
- cert.setExtensions([{
33
- name: 'basicConstraints',
34
- cA: true
35
- }, {
36
- name: 'keyUsage',
37
- keyCertSign: true,
38
- digitalSignature: true,
39
- nonRepudiation: true,
40
- keyEncipherment: true,
41
- dataEncipherment: true
42
- }, {
43
- name: 'extKeyUsage',
44
- serverAuth: true,
45
- clientAuth: true,
46
- codeSigning: true,
47
- emailProtection: true,
48
- timeStamping: true
49
- }, {
50
- name: 'nsCertType',
51
- client: true,
52
- server: true,
53
- email: true,
54
- objsign: true,
55
- sslCA: true,
56
- emailCA: true,
57
- objCA: true
58
- }]);
59
- // self-sign certificate
60
- cert.sign(privateKey);
61
- return cert;
62
- };
63
1
  /**
64
2
  * Finds the first item in a collection that is matched in the
65
3
  * `asyncCompare` function.
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAA;AAC/B,qCAAqC;AACrC,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAE3C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;AAErB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAQ,EAAE,UAAoC,EAAE,EAAE;IAClF,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IAClE,MAAM,IAAI,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAA;IACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;IACxB,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;IACpC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAA;IACnC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAA,CAAC,gEAAgE;IAC/I,MAAM,KAAK,GAAG,CAAC;YACb,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,MAAM;SACd,EAAE;YACD,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,UAAU;SAClB,EAAE;YACD,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,GAAG,CAAC,EAAE;SACd,CAAC,CAAA;IACF,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACrB,IAAI,CAAC,aAAa,CAAC,CAAC;YAClB,IAAI,EAAE,kBAAkB;YACxB,EAAE,EAAE,IAAI;SACT,EAAE;YACD,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,IAAI;YACjB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;SACvB,EAAE;YACD,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,IAAI;YACrB,YAAY,EAAE,IAAI;SACnB,EAAE;YACD,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC,CAAA;IACH,wBAAwB;IACxB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAErB,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAM,KAAU,EAAE,YAAsC;IACrF,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IACxC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IACjD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAA;AACrB,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAM,KAAU,EAAE,YAAsC;IACrF,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IACxC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IACjD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAA;AACrB,CAAC"}
@@ -0,0 +1,6 @@
1
+ {
2
+ "DefaultKeyChain": "https://libp2p.github.io/js-libp2p-keychain/classes/DefaultKeyChain.html",
3
+ "DEKConfig": "https://libp2p.github.io/js-libp2p-keychain/interfaces/DEKConfig.html",
4
+ "KeyChainComponents": "https://libp2p.github.io/js-libp2p-keychain/interfaces/KeyChainComponents.html",
5
+ "KeyChainInit": "https://libp2p.github.io/js-libp2p-keychain/interfaces/KeyChainInit.html"
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/keychain",
3
- "version": "0.6.1",
3
+ "version": "1.0.0",
4
4
  "description": "Key management and cryptographically protected messages",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p-keychain#readme",
@@ -145,13 +145,13 @@
145
145
  },
146
146
  "dependencies": {
147
147
  "@libp2p/crypto": "^1.0.11",
148
+ "@libp2p/interface-keychain": "^2.0.3",
148
149
  "@libp2p/interface-peer-id": "^2.0.1",
149
150
  "@libp2p/logger": "^2.0.5",
150
151
  "@libp2p/peer-id": "^2.0.1",
151
152
  "err-code": "^3.0.1",
152
153
  "interface-datastore": "^7.0.3",
153
154
  "merge-options": "^3.0.4",
154
- "node-forge": "^1.3.1",
155
155
  "sanitize-filename": "^1.6.3",
156
156
  "uint8arrays": "^4.0.3"
157
157
  },
package/src/errors.ts CHANGED
@@ -1,10 +1,6 @@
1
1
 
2
2
  export enum codes {
3
- ERR_KEYCHAIN_REQUIRED = 'ERR_KEYCHAIN_REQUIRED',
4
3
  ERR_INVALID_PARAMETERS = 'ERR_INVALID_PARAMETERS',
5
- ERR_INVALID_CMS = 'ERR_INVALID_CMS',
6
- ERR_MISSING_KEYS = 'ERR_MISSING_KEYS',
7
- ERR_NO_KEY = 'ERR_NO_KEY',
8
4
  ERR_INVALID_KEY_NAME = 'ERR_INVALID_KEY_NAME',
9
5
  ERR_INVALID_KEY_TYPE = 'ERR_INVALID_KEY_TYPE',
10
6
  ERR_KEY_ALREADY_EXISTS = 'ERR_KEY_ALREADY_EXISTS',
@@ -19,4 +15,4 @@ export enum codes {
19
15
  ERR_INVALID_OLD_PASS_TYPE = 'ERR_INVALID_OLD_PASS_TYPE',
20
16
  ERR_INVALID_NEW_PASS_TYPE = 'ERR_INVALID_NEW_PASS_TYPE',
21
17
  ERR_INVALID_PASS_LENGTH = 'ERR_INVALID_PASS_LENGTH'
22
- }
18
+ }
package/src/index.ts CHANGED
@@ -4,7 +4,6 @@ import { logger } from '@libp2p/logger'
4
4
  import sanitize from 'sanitize-filename'
5
5
  import mergeOptions from 'merge-options'
6
6
  import { Key } from 'interface-datastore/key'
7
- import { CMS } from './cms.js'
8
7
  import errCode from 'err-code'
9
8
  import { codes } from './errors.js'
10
9
  import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
@@ -14,7 +13,7 @@ import type { PeerId } from '@libp2p/interface-peer-id'
14
13
  import { pbkdf2, randomBytes } from '@libp2p/crypto'
15
14
  import type { Datastore } from 'interface-datastore'
16
15
  import { peerIdFromKeys } from '@libp2p/peer-id'
17
- import type { KeyTypes } from '@libp2p/crypto/keys'
16
+ import type { KeyChain, KeyInfo, KeyType } from '@libp2p/interface-keychain'
18
17
 
19
18
  const log = logger('libp2p:keychain')
20
19
 
@@ -30,21 +29,6 @@ export interface KeyChainInit {
30
29
  dek?: DEKConfig
31
30
  }
32
31
 
33
- /**
34
- * Information about a key.
35
- */
36
- export interface KeyInfo {
37
- /**
38
- * The universally unique key id
39
- */
40
- id: string
41
-
42
- /**
43
- * The local key name.
44
- */
45
- name: string
46
- }
47
-
48
32
  const keyPrefix = '/pkcs8/'
49
33
  const infoPrefix = '/info/'
50
34
  const privates = new WeakMap<object, { dek: string }>()
@@ -66,7 +50,7 @@ const defaultOptions = {
66
50
  }
67
51
  }
68
52
 
69
- function validateKeyName (name: string) {
53
+ function validateKeyName (name: string): boolean {
70
54
  if (name == null) {
71
55
  return false
72
56
  }
@@ -82,7 +66,7 @@ function validateKeyName (name: string) {
82
66
  * This assumes than an error indicates that the keychain is under attack. Delay returning an
83
67
  * error to make brute force attacks harder.
84
68
  */
85
- async function randomDelay () {
69
+ async function randomDelay (): Promise<void> {
86
70
  const min = 200
87
71
  const max = 1000
88
72
  const delay = Math.random() * (max - min) + min
@@ -93,14 +77,14 @@ async function randomDelay () {
93
77
  /**
94
78
  * Converts a key name into a datastore name
95
79
  */
96
- function DsName (name: string) {
80
+ function DsName (name: string): Key {
97
81
  return new Key(keyPrefix + name)
98
82
  }
99
83
 
100
84
  /**
101
85
  * Converts a key name into a datastore info name
102
86
  */
103
- function DsInfoName (name: string) {
87
+ function DsInfoName (name: string): Key {
104
88
  return new Key(infoPrefix + name)
105
89
  }
106
90
 
@@ -116,7 +100,7 @@ export interface KeyChainComponents {
116
100
  * - '/pkcs8/*key-name*', contains the PKCS #8 for the key
117
101
  *
118
102
  */
119
- export class KeyChain {
103
+ export class DefaultKeyChain implements KeyChain {
120
104
  private readonly components: KeyChainComponents
121
105
  private readonly init: KeyChainInit
122
106
 
@@ -153,26 +137,6 @@ export class KeyChain {
153
137
  privates.set(this, { dek })
154
138
  }
155
139
 
156
- /**
157
- * Gets an object that can encrypt/decrypt protected data
158
- * using the Cryptographic Message Syntax (CMS).
159
- *
160
- * CMS describes an encapsulation syntax for data protection. It
161
- * is used to digitally sign, digest, authenticate, or encrypt
162
- * arbitrary message content
163
- */
164
- get cms () {
165
- const cached = privates.get(this)
166
-
167
- if (cached == null) {
168
- throw errCode(new Error('dek missing'), codes.ERR_INVALID_PARAMETERS)
169
- }
170
-
171
- const dek = cached.dek
172
-
173
- return new CMS(this, dek)
174
- }
175
-
176
140
  /**
177
141
  * Generates the options for a keychain. A random salt is produced.
178
142
  *
@@ -191,7 +155,7 @@ export class KeyChain {
191
155
  *
192
156
  * @returns {object}
193
157
  */
194
- static get options () {
158
+ static get options (): typeof defaultOptions {
195
159
  return defaultOptions
196
160
  }
197
161
 
@@ -202,7 +166,7 @@ export class KeyChain {
202
166
  * @param {string} type - One of the key types; 'rsa'.
203
167
  * @param {number} [size = 2048] - The key size in bits. Used for rsa keys only
204
168
  */
205
- async createKey (name: string, type: KeyTypes, size = 2048): Promise<KeyInfo> {
169
+ async createKey (name: string, type: KeyType, size = 2048): Promise<KeyInfo> {
206
170
  if (!validateKeyName(name) || name === 'self') {
207
171
  await randomDelay()
208
172
  throw errCode(new Error('Invalid key name'), codes.ERR_INVALID_KEY_NAME)
@@ -244,7 +208,7 @@ export class KeyChain {
244
208
  const dek = cached.dek
245
209
  const pem = await keypair.export(dek)
246
210
  keyInfo = {
247
- name: name,
211
+ name,
248
212
  id: kid
249
213
  }
250
214
  const batch = this.components.datastore.batch()
@@ -265,7 +229,7 @@ export class KeyChain {
265
229
  *
266
230
  * @returns {Promise<KeyInfo[]>}
267
231
  */
268
- async listKeys () {
232
+ async listKeys (): Promise<KeyInfo[]> {
269
233
  const query = {
270
234
  prefix: infoPrefix
271
235
  }
@@ -284,7 +248,13 @@ export class KeyChain {
284
248
  async findKeyById (id: string): Promise<KeyInfo> {
285
249
  try {
286
250
  const keys = await this.listKeys()
287
- return keys.find((k) => k.id === id)
251
+ const key = keys.find((k) => k.id === id)
252
+
253
+ if (key == null) {
254
+ throw errCode(new Error(`Key with id '${id}' does not exist.`), codes.ERR_KEY_NOT_FOUND)
255
+ }
256
+
257
+ return key
288
258
  } catch (err: any) {
289
259
  await randomDelay()
290
260
  throw err
@@ -320,7 +290,7 @@ export class KeyChain {
320
290
  * @param {string} name - The local key name; must already exist.
321
291
  * @returns {Promise<KeyInfo>}
322
292
  */
323
- async removeKey (name: string) {
293
+ async removeKey (name: string): Promise<KeyInfo> {
324
294
  if (!validateKeyName(name) || name === 'self') {
325
295
  await randomDelay()
326
296
  throw errCode(new Error(`Invalid key name '${name}'`), codes.ERR_INVALID_KEY_NAME)
@@ -383,7 +353,7 @@ export class KeyChain {
383
353
  /**
384
354
  * Export an existing key as a PEM encrypted PKCS #8 string
385
355
  */
386
- async exportKey (name: string, password: string) {
356
+ async exportKey (name: string, password: string): Promise<string> {
387
357
  if (!validateKeyName(name)) {
388
358
  await randomDelay()
389
359
  throw errCode(new Error(`Invalid key name '${name}'`), codes.ERR_INVALID_KEY_NAME)
@@ -415,7 +385,7 @@ export class KeyChain {
415
385
  /**
416
386
  * Export an existing key as a PeerId
417
387
  */
418
- async exportPeerId (name: string) {
388
+ async exportPeerId (name: string): Promise<PeerId> {
419
389
  const password = 'temporary-password'
420
390
  const pem = await this.exportKey(name, password)
421
391
  const privateKey = await importKey(pem, password)
@@ -472,7 +442,7 @@ export class KeyChain {
472
442
  }
473
443
 
474
444
  const keyInfo = {
475
- name: name,
445
+ name,
476
446
  id: kid
477
447
  }
478
448
  const batch = this.components.datastore.batch()
@@ -516,7 +486,7 @@ export class KeyChain {
516
486
  const dek = cached.dek
517
487
  const pem = await privateKey.export(dek)
518
488
  const keyInfo: KeyInfo = {
519
- name: name,
489
+ name,
520
490
  id: peer.toString()
521
491
  }
522
492
  const batch = this.components.datastore.batch()
@@ -553,7 +523,7 @@ export class KeyChain {
553
523
  /**
554
524
  * Rotate keychain password and re-encrypt all associated keys
555
525
  */
556
- async rotateKeychainPass (oldPass: string, newPass: string) {
526
+ async rotateKeychainPass (oldPass: string, newPass: string): Promise<void> {
557
527
  if (typeof oldPass !== 'string') {
558
528
  await randomDelay()
559
529
  throw errCode(new Error(`Invalid old pass type '${typeof oldPass}'`), codes.ERR_INVALID_OLD_PASS_TYPE)