@libp2p/keychain 0.6.1 → 0.6.2

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,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,6 @@ 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
- }
28
14
  export interface KeyChainComponents {
29
15
  datastore: Datastore;
30
16
  }
@@ -36,22 +22,13 @@ export interface KeyChainComponents {
36
22
  * - '/pkcs8/*key-name*', contains the PKCS #8 for the key
37
23
  *
38
24
  */
39
- export declare class KeyChain {
25
+ export declare class DefaultKeyChain implements KeyChain {
40
26
  private readonly components;
41
27
  private readonly init;
42
28
  /**
43
29
  * Creates a new instance of a key chain
44
30
  */
45
31
  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
32
  /**
56
33
  * Generates the options for a keychain. A random salt is produced.
57
34
  *
@@ -79,7 +56,7 @@ export declare class KeyChain {
79
56
  * @param {string} type - One of the key types; 'rsa'.
80
57
  * @param {number} [size = 2048] - The key size in bits. Used for rsa keys only
81
58
  */
82
- createKey(name: string, type: KeyTypes, size?: number): Promise<KeyInfo>;
59
+ createKey(name: string, type: KeyType, size?: number): Promise<KeyInfo>;
83
60
  /**
84
61
  * List all the keys.
85
62
  *
@@ -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;AA6DD,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;;;;;;;MAEjB;IAED;;;;;;OAMG;IACG,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA0D5E;;;;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"}
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
  *
@@ -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.
@@ -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,cAKtF"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/keychain",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
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/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 }>()
@@ -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
  *
@@ -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)
package/src/util.ts CHANGED
@@ -1,69 +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
-
5
- const pki = forge.pki
6
-
7
- /**
8
- * Gets a self-signed X.509 certificate for the key.
9
- *
10
- * The output Uint8Array contains the PKCS #7 message in DER.
11
- *
12
- * TODO: move to libp2p-crypto package
13
- */
14
- export const certificateForKey = (key: any, privateKey: forge.pki.rsa.PrivateKey) => {
15
- const publicKey = pki.rsa.setPublicKey(privateKey.n, privateKey.e)
16
- const cert = pki.createCertificate()
17
- cert.publicKey = publicKey
18
- cert.serialNumber = '01'
19
- cert.validity.notBefore = new Date()
20
- cert.validity.notAfter = new Date()
21
- cert.validity.notAfter.setFullYear(cert.validity.notBefore.getFullYear() + 10) // eslint-disable-line @typescript-eslint/restrict-plus-operands
22
- const attrs = [{
23
- name: 'organizationName',
24
- value: 'ipfs'
25
- }, {
26
- shortName: 'OU',
27
- value: 'keystore'
28
- }, {
29
- name: 'commonName',
30
- value: key.id
31
- }]
32
- cert.setSubject(attrs)
33
- cert.setIssuer(attrs)
34
- cert.setExtensions([{
35
- name: 'basicConstraints',
36
- cA: true
37
- }, {
38
- name: 'keyUsage',
39
- keyCertSign: true,
40
- digitalSignature: true,
41
- nonRepudiation: true,
42
- keyEncipherment: true,
43
- dataEncipherment: true
44
- }, {
45
- name: 'extKeyUsage',
46
- serverAuth: true,
47
- clientAuth: true,
48
- codeSigning: true,
49
- emailProtection: true,
50
- timeStamping: true
51
- }, {
52
- name: 'nsCertType',
53
- client: true,
54
- server: true,
55
- email: true,
56
- objsign: true,
57
- sslCA: true,
58
- emailCA: true,
59
- objCA: true
60
- }])
61
- // self-sign certificate
62
- cert.sign(privateKey)
63
-
64
- return cert
65
- }
66
-
67
1
  /**
68
2
  * Finds the first item in a collection that is matched in the
69
3
  * `asyncCompare` function.
package/dist/src/cms.d.ts DELETED
@@ -1,33 +0,0 @@
1
- import 'node-forge/lib/pkcs7.js';
2
- import 'node-forge/lib/pbe.js';
3
- import type { KeyChain } from './index.js';
4
- /**
5
- * Cryptographic Message Syntax (aka PKCS #7)
6
- *
7
- * CMS describes an encapsulation syntax for data protection. It
8
- * is used to digitally sign, digest, authenticate, or encrypt
9
- * arbitrary message content.
10
- *
11
- * See RFC 5652 for all the details.
12
- */
13
- export declare class CMS {
14
- private readonly keychain;
15
- /**
16
- * Creates a new instance with a keychain
17
- */
18
- constructor(keychain: KeyChain, dek: string);
19
- /**
20
- * Creates some protected data.
21
- *
22
- * The output Uint8Array contains the PKCS #7 message in DER.
23
- */
24
- encrypt(name: string, plain: Uint8Array): Promise<Uint8Array>;
25
- /**
26
- * Reads some protected data.
27
- *
28
- * The keychain must contain one of the keys used to encrypt the data. If none of the keys
29
- * exists, an Error is returned with the property 'missingKeys'. It is array of key ids.
30
- */
31
- decrypt(cmsData: Uint8Array): Promise<Uint8Array>;
32
- }
33
- //# sourceMappingURL=cms.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cms.d.ts","sourceRoot":"","sources":["../../src/cms.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAA;AAChC,OAAO,uBAAuB,CAAA;AAS9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAM1C;;;;;;;;GAQG;AACH,qBAAa,GAAG;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IAEnC;;OAEG;gBACU,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM;IAS5C;;;;OAIG;IACG,OAAO,CAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IA4BpE;;;;;OAKG;IACG,OAAO,CAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAsEzD"}
package/dist/src/cms.js DELETED
@@ -1,129 +0,0 @@
1
- import 'node-forge/lib/pkcs7.js';
2
- import 'node-forge/lib/pbe.js';
3
- // @ts-expect-error types are missing
4
- import forge from 'node-forge/lib/forge.js';
5
- import { certificateForKey, findAsync } from './util.js';
6
- import errCode from 'err-code';
7
- import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
8
- import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
9
- import { codes } from './errors.js';
10
- import { logger } from '@libp2p/logger';
11
- const log = logger('libp2p:keychain:cms');
12
- const privates = new WeakMap();
13
- /**
14
- * Cryptographic Message Syntax (aka PKCS #7)
15
- *
16
- * CMS describes an encapsulation syntax for data protection. It
17
- * is used to digitally sign, digest, authenticate, or encrypt
18
- * arbitrary message content.
19
- *
20
- * See RFC 5652 for all the details.
21
- */
22
- export class CMS {
23
- /**
24
- * Creates a new instance with a keychain
25
- */
26
- constructor(keychain, dek) {
27
- if (keychain == null) {
28
- throw errCode(new Error('keychain is required'), codes.ERR_KEYCHAIN_REQUIRED);
29
- }
30
- this.keychain = keychain;
31
- privates.set(this, { dek });
32
- }
33
- /**
34
- * Creates some protected data.
35
- *
36
- * The output Uint8Array contains the PKCS #7 message in DER.
37
- */
38
- async encrypt(name, plain) {
39
- if (!(plain instanceof Uint8Array)) {
40
- throw errCode(new Error('Plain data must be a Uint8Array'), codes.ERR_INVALID_PARAMETERS);
41
- }
42
- const key = await this.keychain.findKeyByName(name);
43
- const pem = await this.keychain.getPrivateKey(name);
44
- const cached = privates.get(this);
45
- if (cached == null) {
46
- throw errCode(new Error('dek missing'), codes.ERR_INVALID_PARAMETERS);
47
- }
48
- const dek = cached.dek;
49
- const privateKey = forge.pki.decryptRsaPrivateKey(pem, dek);
50
- const certificate = await certificateForKey(key, privateKey);
51
- // create a p7 enveloped message
52
- const p7 = forge.pkcs7.createEnvelopedData();
53
- p7.addRecipient(certificate);
54
- p7.content = forge.util.createBuffer(plain);
55
- p7.encrypt();
56
- // convert message to DER
57
- const der = forge.asn1.toDer(p7.toAsn1()).getBytes();
58
- return uint8ArrayFromString(der, 'ascii');
59
- }
60
- /**
61
- * Reads some protected data.
62
- *
63
- * The keychain must contain one of the keys used to encrypt the data. If none of the keys
64
- * exists, an Error is returned with the property 'missingKeys'. It is array of key ids.
65
- */
66
- async decrypt(cmsData) {
67
- if (!(cmsData instanceof Uint8Array)) {
68
- throw errCode(new Error('CMS data is required'), codes.ERR_INVALID_PARAMETERS);
69
- }
70
- let cms;
71
- try {
72
- const buf = forge.util.createBuffer(uint8ArrayToString(cmsData, 'ascii'));
73
- const obj = forge.asn1.fromDer(buf);
74
- cms = forge.pkcs7.messageFromAsn1(obj);
75
- }
76
- catch (err) {
77
- log.error(err);
78
- throw errCode(new Error('Invalid CMS'), codes.ERR_INVALID_CMS);
79
- }
80
- // Find a recipient whose key we hold. We only deal with recipient certs
81
- // issued by ipfs (O=ipfs).
82
- const recipients = cms.recipients
83
- // @ts-expect-error cms types not defined
84
- .filter(r => r.issuer.find(a => a.shortName === 'O' && a.value === 'ipfs'))
85
- // @ts-expect-error cms types not defined
86
- .filter(r => r.issuer.find(a => a.shortName === 'CN'))
87
- // @ts-expect-error cms types not defined
88
- .map(r => {
89
- return {
90
- recipient: r,
91
- // @ts-expect-error cms types not defined
92
- keyId: r.issuer.find(a => a.shortName === 'CN').value
93
- };
94
- });
95
- const r = await findAsync(recipients, async (recipient) => {
96
- try {
97
- const key = await this.keychain.findKeyById(recipient.keyId);
98
- if (key != null) {
99
- return true;
100
- }
101
- }
102
- catch (err) {
103
- return false;
104
- }
105
- return false;
106
- });
107
- if (r == null) {
108
- // @ts-expect-error cms types not defined
109
- const missingKeys = recipients.map(r => r.keyId);
110
- throw errCode(new Error(`Decryption needs one of the key(s): ${missingKeys.join(', ')}`), codes.ERR_MISSING_KEYS, {
111
- missingKeys
112
- });
113
- }
114
- const key = await this.keychain.findKeyById(r.keyId);
115
- if (key == null) {
116
- throw errCode(new Error('No key available to decrypto'), codes.ERR_NO_KEY);
117
- }
118
- const pem = await this.keychain.getPrivateKey(key.name);
119
- const cached = privates.get(this);
120
- if (cached == null) {
121
- throw errCode(new Error('dek missing'), codes.ERR_INVALID_PARAMETERS);
122
- }
123
- const dek = cached.dek;
124
- const privateKey = forge.pki.decryptRsaPrivateKey(pem, dek);
125
- cms.decrypt(r.recipient, privateKey);
126
- return uint8ArrayFromString(cms.content.getBytes(), 'ascii');
127
- }
128
- }
129
- //# sourceMappingURL=cms.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cms.js","sourceRoot":"","sources":["../../src/cms.ts"],"names":[],"mappings":"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"}