@libp2p/crypto 1.0.16 → 1.0.17-06f4901a
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/README.md +3 -3
- package/dist/index.min.js +13 -13
- package/dist/src/aes/cipher-mode.js +1 -1
- package/dist/src/aes/cipher-mode.js.map +1 -1
- package/dist/src/aes/ciphers-browser.js +1 -1
- package/dist/src/aes/ciphers-browser.js.map +1 -1
- package/dist/src/aes/index.js +1 -1
- package/dist/src/aes/index.js.map +1 -1
- package/dist/src/ciphers/aes-gcm.browser.js.map +1 -1
- package/dist/src/ciphers/aes-gcm.js +1 -1
- package/dist/src/ciphers/aes-gcm.js.map +1 -1
- package/dist/src/hmac/index-browser.js +1 -1
- package/dist/src/hmac/index-browser.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/keys/ecdh-browser.js +4 -4
- package/dist/src/keys/ecdh-browser.js.map +1 -1
- package/dist/src/keys/ecdh.js +1 -1
- package/dist/src/keys/ecdh.js.map +1 -1
- package/dist/src/keys/ed25519-browser.js +2 -2
- package/dist/src/keys/ed25519-browser.js.map +1 -1
- package/dist/src/keys/ed25519-class.js +10 -7
- package/dist/src/keys/ed25519-class.js.map +1 -1
- package/dist/src/keys/ed25519.js +1 -1
- package/dist/src/keys/ed25519.js.map +1 -1
- package/dist/src/keys/exporter.d.ts.map +1 -1
- package/dist/src/keys/exporter.js.map +1 -1
- package/dist/src/keys/importer.js +1 -1
- package/dist/src/keys/importer.js.map +1 -1
- package/dist/src/keys/index.d.ts +4 -4
- package/dist/src/keys/index.d.ts.map +1 -1
- package/dist/src/keys/index.js +8 -8
- package/dist/src/keys/index.js.map +1 -1
- package/dist/src/keys/key-stretcher.js +1 -1
- package/dist/src/keys/key-stretcher.js.map +1 -1
- package/dist/src/keys/rsa-browser.d.ts.map +1 -1
- package/dist/src/keys/rsa-browser.js +8 -8
- package/dist/src/keys/rsa-browser.js.map +1 -1
- package/dist/src/keys/rsa-class.d.ts.map +1 -1
- package/dist/src/keys/rsa-class.js +12 -9
- package/dist/src/keys/rsa-class.js.map +1 -1
- package/dist/src/keys/rsa-utils.js +2 -2
- package/dist/src/keys/rsa-utils.js.map +1 -1
- package/dist/src/keys/rsa.js +1 -1
- package/dist/src/keys/rsa.js.map +1 -1
- package/dist/src/keys/secp256k1-class.js +8 -5
- package/dist/src/keys/secp256k1-class.js.map +1 -1
- package/dist/src/keys/secp256k1.js +1 -1
- package/dist/src/keys/secp256k1.js.map +1 -1
- package/dist/src/pbkdf2.js +1 -1
- package/dist/src/pbkdf2.js.map +1 -1
- package/dist/src/random-bytes.js +1 -1
- package/dist/src/random-bytes.js.map +1 -1
- package/dist/src/util.js +1 -1
- package/dist/src/util.js.map +1 -1
- package/package.json +14 -104
- package/src/aes/cipher-mode.ts +1 -1
- package/src/aes/ciphers-browser.ts +1 -1
- package/src/aes/index.ts +1 -1
- package/src/ciphers/aes-gcm.browser.ts +1 -1
- package/src/ciphers/aes-gcm.ts +1 -1
- package/src/hmac/index-browser.ts +1 -1
- package/src/index.ts +2 -2
- package/src/keys/ecdh-browser.ts +4 -4
- package/src/keys/ecdh.ts +1 -1
- package/src/keys/ed25519-browser.ts +2 -2
- package/src/keys/ed25519-class.ts +7 -7
- package/src/keys/ed25519.ts +1 -1
- package/src/keys/exporter.ts +1 -1
- package/src/keys/importer.ts +1 -1
- package/src/keys/index.ts +9 -9
- package/src/keys/key-stretcher.ts +1 -1
- package/src/keys/rsa-browser.ts +8 -8
- package/src/keys/rsa-class.ts +9 -9
- package/src/keys/rsa-utils.ts +2 -2
- package/src/keys/rsa.ts +1 -1
- package/src/keys/secp256k1-class.ts +5 -5
- package/src/keys/secp256k1.ts +1 -1
- package/src/pbkdf2.ts +1 -1
- package/src/random-bytes.ts +1 -1
- package/src/util.ts +1 -1
- package/dist/typedoc-urls.json +0 -41
|
@@ -1,19 +1,20 @@
|
|
|
1
|
+
import { CodeError } from '@libp2p/interface/errors';
|
|
1
2
|
import { sha256 } from 'multiformats/hashes/sha2';
|
|
2
|
-
import { CodeError } from '@libp2p/interfaces/errors';
|
|
3
|
-
import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
|
|
4
|
-
import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
|
|
5
|
-
import 'node-forge/lib/sha512.js';
|
|
6
3
|
// @ts-expect-error types are missing
|
|
7
4
|
import forge from 'node-forge/lib/forge.js';
|
|
8
|
-
import
|
|
9
|
-
import
|
|
5
|
+
import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
|
|
6
|
+
import 'node-forge/lib/sha512.js';
|
|
7
|
+
import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
|
|
10
8
|
import { exporter } from './exporter.js';
|
|
9
|
+
import * as pbm from './keys.js';
|
|
10
|
+
import * as crypto from './rsa.js';
|
|
11
11
|
export class RsaPublicKey {
|
|
12
|
+
_key;
|
|
12
13
|
constructor(key) {
|
|
13
14
|
this._key = key;
|
|
14
15
|
}
|
|
15
16
|
async verify(data, sig) {
|
|
16
|
-
return
|
|
17
|
+
return crypto.hashAndVerify(this._key, sig, data);
|
|
17
18
|
}
|
|
18
19
|
marshal() {
|
|
19
20
|
return crypto.utils.jwkToPkix(this._key);
|
|
@@ -36,6 +37,8 @@ export class RsaPublicKey {
|
|
|
36
37
|
}
|
|
37
38
|
}
|
|
38
39
|
export class RsaPrivateKey {
|
|
40
|
+
_key;
|
|
41
|
+
_publicKey;
|
|
39
42
|
constructor(key, publicKey) {
|
|
40
43
|
this._key = key;
|
|
41
44
|
this._publicKey = publicKey;
|
|
@@ -44,7 +47,7 @@ export class RsaPrivateKey {
|
|
|
44
47
|
return crypto.getRandomValues(16);
|
|
45
48
|
}
|
|
46
49
|
async sign(message) {
|
|
47
|
-
return
|
|
50
|
+
return crypto.hashAndSign(this._key, message);
|
|
48
51
|
}
|
|
49
52
|
get public() {
|
|
50
53
|
if (this._publicKey == null) {
|
|
@@ -99,7 +102,7 @@ export class RsaPrivateKey {
|
|
|
99
102
|
return forge.pki.encryptRsaPrivateKey(privateKey, password, options);
|
|
100
103
|
}
|
|
101
104
|
else if (format === 'libp2p-key') {
|
|
102
|
-
return
|
|
105
|
+
return exporter(this.bytes, password);
|
|
103
106
|
}
|
|
104
107
|
else {
|
|
105
108
|
throw new CodeError(`export format '${format}' is not supported`, 'ERR_INVALID_EXPORT_FORMAT');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa-class.js","sourceRoot":"","sources":["../../../src/keys/rsa-class.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"rsa-class.js","sourceRoot":"","sources":["../../../src/keys/rsa-class.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import 'node-forge/lib/asn1.js';
|
|
2
2
|
import 'node-forge/lib/rsa.js';
|
|
3
|
+
import { CodeError } from '@libp2p/interface/errors';
|
|
3
4
|
// @ts-expect-error types are missing
|
|
4
5
|
import forge from 'node-forge/lib/forge.js';
|
|
5
|
-
import { bigIntegerToUintBase64url, base64urlToBigInteger } from './../util.js';
|
|
6
6
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
7
7
|
import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
|
|
8
|
-
import {
|
|
8
|
+
import { bigIntegerToUintBase64url, base64urlToBigInteger } from './../util.js';
|
|
9
9
|
// Convert a PKCS#1 in ASN1 DER format to a JWK key
|
|
10
10
|
export function pkcs1ToJwk(bytes) {
|
|
11
11
|
const asn1 = forge.asn1.fromDer(uint8ArrayToString(bytes, 'ascii'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa-utils.js","sourceRoot":"","sources":["../../../src/keys/rsa-utils.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAA;AAC/B,OAAO,uBAAuB,CAAA;AAC9B,
|
|
1
|
+
{"version":3,"file":"rsa-utils.js","sourceRoot":"","sources":["../../../src/keys/rsa-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/src/keys/rsa.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import crypto from 'crypto';
|
|
2
2
|
import { promisify } from 'util';
|
|
3
|
-
import { CodeError } from '@libp2p/
|
|
3
|
+
import { CodeError } from '@libp2p/interface/errors';
|
|
4
4
|
import randomBytes from '../random-bytes.js';
|
|
5
5
|
import * as utils from './rsa-utils.js';
|
|
6
6
|
const keypair = promisify(crypto.generateKeyPair);
|
package/dist/src/keys/rsa.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa.js","sourceRoot":"","sources":["../../../src/keys/rsa.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"rsa.js","sourceRoot":"","sources":["../../../src/keys/rsa.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AAGvC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;AAEjD,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,MAAM,CAAC,KAAK,UAAU,WAAW,CAAE,IAAY;IAC7C,0DAA0D;IAC1D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE;QAC/B,aAAa,EAAE,IAAI;QACnB,iBAAiB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QACnD,kBAAkB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;KACrD,CAAC,CAAA;IAEF,OAAO;QACL,0DAA0D;QAC1D,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,0DAA0D;QAC1D,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAA;AACH,CAAC;AAED,kBAAkB;AAClB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAE,GAAe;IACxD,IAAI,GAAG,IAAI,IAAI,EAAE;QACf,MAAM,IAAI,SAAS,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAA;KAChE;IACD,OAAO;QACL,UAAU,EAAE,GAAG;QACf,SAAS,EAAE;YACT,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,CAAC,EAAE,GAAG,CAAC,CAAC;SACT;KACF,CAAA;AACH,CAAC;AAED,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,CAAA;AAEzC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAE,GAAe,EAAE,GAAe;IACjE,OAAO,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC;SACnC,MAAM,CAAC,GAAG,CAAC;QACZ,0DAA0D;SACzD,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAE,GAAe,EAAE,GAAe,EAAE,GAAe;IACpF,OAAO,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC;SACrC,MAAM,CAAC,GAAG,CAAC;QACZ,0DAA0D;SACzD,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAA;AAElD,MAAM,UAAU,OAAO,CAAE,GAAe,EAAE,KAAiB;IACzD,0DAA0D;IAC1D,OAAO,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAAA;AACrE,CAAC;AAED,MAAM,UAAU,OAAO,CAAE,GAAe,EAAE,KAAiB;IACzD,0DAA0D;IAC1D,OAAO,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAAA;AACtE,CAAC"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
+
import { CodeError } from '@libp2p/interface/errors';
|
|
1
2
|
import { sha256 } from 'multiformats/hashes/sha2';
|
|
2
|
-
import { CodeError } from '@libp2p/interfaces/errors';
|
|
3
3
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
|
|
4
4
|
import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
|
|
5
|
-
import * as crypto from './secp256k1.js';
|
|
6
5
|
import { exporter } from './exporter.js';
|
|
7
6
|
import * as keysProtobuf from './keys.js';
|
|
7
|
+
import * as crypto from './secp256k1.js';
|
|
8
8
|
export class Secp256k1PublicKey {
|
|
9
|
+
_key;
|
|
9
10
|
constructor(key) {
|
|
10
11
|
crypto.validatePublicKey(key);
|
|
11
12
|
this._key = key;
|
|
12
13
|
}
|
|
13
14
|
async verify(data, sig) {
|
|
14
|
-
return
|
|
15
|
+
return crypto.hashAndVerify(this._key, sig, data);
|
|
15
16
|
}
|
|
16
17
|
marshal() {
|
|
17
18
|
return crypto.compressPublicKey(this._key);
|
|
@@ -31,6 +32,8 @@ export class Secp256k1PublicKey {
|
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
export class Secp256k1PrivateKey {
|
|
35
|
+
_key;
|
|
36
|
+
_publicKey;
|
|
34
37
|
constructor(key, publicKey) {
|
|
35
38
|
this._key = key;
|
|
36
39
|
this._publicKey = publicKey ?? crypto.computePublicKey(key);
|
|
@@ -38,7 +41,7 @@ export class Secp256k1PrivateKey {
|
|
|
38
41
|
crypto.validatePublicKey(this._publicKey);
|
|
39
42
|
}
|
|
40
43
|
async sign(message) {
|
|
41
|
-
return
|
|
44
|
+
return crypto.hashAndSign(this._key, message);
|
|
42
45
|
}
|
|
43
46
|
get public() {
|
|
44
47
|
return new Secp256k1PublicKey(this._publicKey);
|
|
@@ -75,7 +78,7 @@ export class Secp256k1PrivateKey {
|
|
|
75
78
|
*/
|
|
76
79
|
async export(password, format = 'libp2p-key') {
|
|
77
80
|
if (format === 'libp2p-key') {
|
|
78
|
-
return
|
|
81
|
+
return exporter(this.bytes, password);
|
|
79
82
|
}
|
|
80
83
|
else {
|
|
81
84
|
throw new CodeError(`export format '${format}' is not supported`, 'ERR_INVALID_EXPORT_FORMAT');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256k1-class.js","sourceRoot":"","sources":["../../../src/keys/secp256k1-class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"secp256k1-class.js","sourceRoot":"","sources":["../../../src/keys/secp256k1-class.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256k1.js","sourceRoot":"","sources":["../../../src/keys/secp256k1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"secp256k1.js","sourceRoot":"","sources":["../../../src/keys/secp256k1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAEjD,MAAM,uBAAuB,GAAG,EAAE,CAAA;AAElC,OAAO,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,CAAA;AAEtD,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAE,GAAe,EAAE,GAAe;IACjE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC3C,IAAI;QACF,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KACpC;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,mBAAmB,CAAC,CAAA;KACtD;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAE,GAAe,EAAE,GAAe,EAAE,GAAe;IACpF,IAAI;QACF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;KACrC;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,mBAAmB,CAAC,CAAA;KACtD;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAE,GAAe;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACtD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAE,GAAe;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACvD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAE,GAAe;IACjD,IAAI;QACF,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;KAC7B;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,yBAAyB,CAAC,CAAA;KAC5D;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAE,GAAe;IAChD,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;KACxB;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,wBAAwB,CAAC,CAAA;KAC3D;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAE,UAAsB;IACtD,IAAI;QACF,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;KAC3C;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,yBAAyB,CAAC,CAAA;KAC5D;AACH,CAAC"}
|
package/dist/src/pbkdf2.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { CodeError } from '@libp2p/interface/errors';
|
|
1
2
|
// @ts-expect-error types are missing
|
|
2
3
|
import forgePbkdf2 from 'node-forge/lib/pbkdf2.js';
|
|
3
4
|
// @ts-expect-error types are missing
|
|
4
5
|
import forgeUtil from 'node-forge/lib/util.js';
|
|
5
|
-
import { CodeError } from '@libp2p/interfaces/errors';
|
|
6
6
|
/**
|
|
7
7
|
* Maps an IPFS hash name to its node-forge equivalent.
|
|
8
8
|
*
|
package/dist/src/pbkdf2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../src/pbkdf2.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../src/pbkdf2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,qCAAqC;AACrC,OAAO,WAAW,MAAM,0BAA0B,CAAA;AAClD,qCAAqC;AACrC,OAAO,SAAS,MAAM,wBAAwB,CAAA;AAE9C;;;;;;GAMG;AACH,MAAM,QAAQ,GAAG;IACf,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;CACrB,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAE,QAAgB,EAAE,IAAY,EAAE,UAAkB,EAAE,OAAe,EAAE,IAAY;IAC/G,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU,EAAE;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/C,MAAM,IAAI,SAAS,CAAC,SAAS,IAAI,0CAA0C,KAAK,EAAE,EAAE,2BAA2B,CAAC,CAAA;KACjH;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC7B,MAAM,GAAG,GAAG,WAAW,CACrB,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,OAAO,EACP,MAAM,CACP,CAAA;IAED,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACtC,CAAC"}
|
package/dist/src/random-bytes.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { CodeError } from '@libp2p/interface/errors';
|
|
1
2
|
import { utils } from '@noble/secp256k1';
|
|
2
|
-
import { CodeError } from '@libp2p/interfaces/errors';
|
|
3
3
|
export default function randomBytes(length) {
|
|
4
4
|
if (isNaN(length) || length <= 0) {
|
|
5
5
|
throw new CodeError('random bytes length must be a Number bigger than 0', 'ERR_INVALID_LENGTH');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"random-bytes.js","sourceRoot":"","sources":["../../src/random-bytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"random-bytes.js","sourceRoot":"","sources":["../../src/random-bytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAExC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAE,MAAc;IACjD,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;QAChC,MAAM,IAAI,SAAS,CAAC,oDAAoD,EAAE,oBAAoB,CAAC,CAAA;KAChG;IACD,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;AAClC,CAAC"}
|
package/dist/src/util.js
CHANGED
|
@@ -2,9 +2,9 @@ import 'node-forge/lib/util.js';
|
|
|
2
2
|
import 'node-forge/lib/jsbn.js';
|
|
3
3
|
// @ts-expect-error types are missing
|
|
4
4
|
import forge from 'node-forge/lib/forge.js';
|
|
5
|
+
import { concat as uint8ArrayConcat } from 'uint8arrays/concat';
|
|
5
6
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
6
7
|
import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
|
|
7
|
-
import { concat as uint8ArrayConcat } from 'uint8arrays/concat';
|
|
8
8
|
export function bigIntegerToUintBase64url(num, len) {
|
|
9
9
|
// Call `.abs()` to convert to unsigned
|
|
10
10
|
let buf = Uint8Array.from(num.abs().toByteArray()); // toByteArray converts to big endian
|
package/dist/src/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAA;AAC/B,OAAO,wBAAwB,CAAA;AAC/B,qCAAqC;AACrC,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAA;AAC/B,OAAO,wBAAwB,CAAA;AAC/B,qCAAqC;AACrC,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAC3C,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAEtE,MAAM,UAAU,yBAAyB,CAAE,GAAuB,EAAE,GAAY;IAC9E,uCAAuC;IACvC,IAAI,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA,CAAC,qCAAqC;IAExF,6EAA6E;IAC7E,uDAAuD;IACvD,6EAA6E;IAC7E,8EAA8E;IAC9E,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAE1C,IAAI,GAAG,IAAI,IAAI,EAAE;QACf,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;QAC9E,GAAG,GAAG,gBAAgB,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;KAChE;IAED,OAAO,kBAAkB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;AAC7C,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,qBAAqB,CAAE,GAAW;IAChD,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAClC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;AACzE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAE,GAAW,EAAE,GAAY;IAC1D,IAAI,GAAG,GAAG,oBAAoB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;IAEnD,IAAI,GAAG,IAAI,IAAI,EAAE;QACf,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;QAC9E,GAAG,GAAG,gBAAgB,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;KAChE;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/crypto",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.17-06f4901a",
|
|
4
4
|
"description": "Crypto primitives for libp2p",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
|
-
"homepage": "https://github.com/libp2p/js-libp2p
|
|
6
|
+
"homepage": "https://github.com/libp2p/js-libp2p/tree/master/packages/crypto#readme",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/libp2p/js-libp2p
|
|
9
|
+
"url": "git+https://github.com/libp2p/js-libp2p.git"
|
|
10
10
|
},
|
|
11
11
|
"bugs": {
|
|
12
|
-
"url": "https://github.com/libp2p/js-libp2p
|
|
12
|
+
"url": "https://github.com/libp2p/js-libp2p/issues"
|
|
13
13
|
},
|
|
14
14
|
"keywords": [
|
|
15
15
|
"IPFS",
|
|
@@ -18,10 +18,6 @@
|
|
|
18
18
|
"rsa",
|
|
19
19
|
"secp256k1"
|
|
20
20
|
],
|
|
21
|
-
"engines": {
|
|
22
|
-
"node": ">=16.0.0",
|
|
23
|
-
"npm": ">=7.0.0"
|
|
24
|
-
},
|
|
25
21
|
"type": "module",
|
|
26
22
|
"types": "./dist/src/index.d.ts",
|
|
27
23
|
"typesVersions": {
|
|
@@ -77,125 +73,36 @@
|
|
|
77
73
|
"src/*.d.ts"
|
|
78
74
|
]
|
|
79
75
|
},
|
|
80
|
-
"release": {
|
|
81
|
-
"branches": [
|
|
82
|
-
"master"
|
|
83
|
-
],
|
|
84
|
-
"plugins": [
|
|
85
|
-
[
|
|
86
|
-
"@semantic-release/commit-analyzer",
|
|
87
|
-
{
|
|
88
|
-
"preset": "conventionalcommits",
|
|
89
|
-
"releaseRules": [
|
|
90
|
-
{
|
|
91
|
-
"breaking": true,
|
|
92
|
-
"release": "major"
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
"revert": true,
|
|
96
|
-
"release": "patch"
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
"type": "feat",
|
|
100
|
-
"release": "minor"
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
"type": "fix",
|
|
104
|
-
"release": "patch"
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
"type": "docs",
|
|
108
|
-
"release": "patch"
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
"type": "test",
|
|
112
|
-
"release": "patch"
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
"type": "deps",
|
|
116
|
-
"release": "patch"
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
"scope": "no-release",
|
|
120
|
-
"release": false
|
|
121
|
-
}
|
|
122
|
-
]
|
|
123
|
-
}
|
|
124
|
-
],
|
|
125
|
-
[
|
|
126
|
-
"@semantic-release/release-notes-generator",
|
|
127
|
-
{
|
|
128
|
-
"preset": "conventionalcommits",
|
|
129
|
-
"presetConfig": {
|
|
130
|
-
"types": [
|
|
131
|
-
{
|
|
132
|
-
"type": "feat",
|
|
133
|
-
"section": "Features"
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
"type": "fix",
|
|
137
|
-
"section": "Bug Fixes"
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
"type": "chore",
|
|
141
|
-
"section": "Trivial Changes"
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
"type": "docs",
|
|
145
|
-
"section": "Documentation"
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
"type": "deps",
|
|
149
|
-
"section": "Dependencies"
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
"type": "test",
|
|
153
|
-
"section": "Tests"
|
|
154
|
-
}
|
|
155
|
-
]
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
],
|
|
159
|
-
"@semantic-release/changelog",
|
|
160
|
-
"@semantic-release/npm",
|
|
161
|
-
"@semantic-release/github",
|
|
162
|
-
"@semantic-release/git"
|
|
163
|
-
]
|
|
164
|
-
},
|
|
165
76
|
"scripts": {
|
|
166
77
|
"clean": "aegir clean",
|
|
167
78
|
"lint": "aegir lint",
|
|
168
|
-
"dep-check": "aegir dep-check
|
|
79
|
+
"dep-check": "aegir dep-check",
|
|
169
80
|
"build": "aegir build",
|
|
170
81
|
"test": "aegir test",
|
|
171
82
|
"test:chrome": "aegir test -t browser",
|
|
172
83
|
"test:chrome-webworker": "aegir test -t webworker",
|
|
173
84
|
"test:firefox": "aegir test -t browser -- --browser firefox",
|
|
174
85
|
"test:firefox-webworker": "aegir test -t webworker -- --browser firefox",
|
|
175
|
-
"test:webkit": "
|
|
86
|
+
"test:webkit": "aegir test -t browser -- --browser webkit",
|
|
176
87
|
"test:node": "aegir test -t node --cov",
|
|
177
88
|
"test:electron-main": "aegir test -t electron-main",
|
|
178
|
-
"release": "aegir release",
|
|
179
|
-
"docs": "aegir docs",
|
|
180
89
|
"generate": "protons ./src/keys/keys.proto"
|
|
181
90
|
},
|
|
182
91
|
"dependencies": {
|
|
183
|
-
"@libp2p/interface
|
|
184
|
-
"@libp2p/interfaces": "^3.2.0",
|
|
92
|
+
"@libp2p/interface": "0.0.1-06f4901a",
|
|
185
93
|
"@noble/ed25519": "^1.6.0",
|
|
186
94
|
"@noble/secp256k1": "^1.5.4",
|
|
187
|
-
"multiformats": "^
|
|
95
|
+
"multiformats": "^12.0.1",
|
|
188
96
|
"node-forge": "^1.1.0",
|
|
189
97
|
"protons-runtime": "^5.0.0",
|
|
190
98
|
"uint8arraylist": "^2.4.3",
|
|
191
|
-
"uint8arrays": "^4.0.
|
|
99
|
+
"uint8arrays": "^4.0.4"
|
|
192
100
|
},
|
|
193
101
|
"devDependencies": {
|
|
194
102
|
"@types/mocha": "^10.0.0",
|
|
195
|
-
"aegir": "^
|
|
103
|
+
"aegir": "^39.0.10",
|
|
196
104
|
"benchmark": "^2.1.4",
|
|
197
|
-
"protons": "^7.0.2"
|
|
198
|
-
"util": "^0.12.5"
|
|
105
|
+
"protons": "^7.0.2"
|
|
199
106
|
},
|
|
200
107
|
"browser": {
|
|
201
108
|
"./dist/src/aes/ciphers.js": "./dist/src/aes/ciphers-browser.js",
|
|
@@ -204,5 +111,8 @@
|
|
|
204
111
|
"./dist/src/keys/ecdh.js": "./dist/src/keys/ecdh-browser.js",
|
|
205
112
|
"./dist/src/keys/ed25519.js": "./dist/src/keys/ed25519-browser.js",
|
|
206
113
|
"./dist/src/keys/rsa.js": "./dist/src/keys/rsa-browser.js"
|
|
114
|
+
},
|
|
115
|
+
"typedoc": {
|
|
116
|
+
"entryPoint": "./src/index.ts"
|
|
207
117
|
}
|
|
208
118
|
}
|
package/src/aes/cipher-mode.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import 'node-forge/lib/aes.js'
|
|
3
3
|
// @ts-expect-error types are missing
|
|
4
4
|
import forge from 'node-forge/lib/forge.js'
|
|
5
|
-
import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
|
|
6
5
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
|
|
6
|
+
import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
|
|
7
7
|
|
|
8
8
|
export interface Cipher {
|
|
9
9
|
update: (data: Uint8Array) => Uint8Array
|
package/src/aes/index.ts
CHANGED
|
@@ -52,7 +52,7 @@ export function create (opts?: CreateOptions): AESCipher {
|
|
|
52
52
|
cryptoKey = await crypto.subtle.importKey('jwk', derivedEmptyPasswordKey, { name: 'AES-GCM' }, true, ['encrypt'])
|
|
53
53
|
}
|
|
54
54
|
} else {
|
|
55
|
-
|
|
55
|
+
// Derive a key using PBKDF2.
|
|
56
56
|
const deriveParams = { name: 'PBKDF2', salt, iterations, hash: { name: digest } }
|
|
57
57
|
const rawKey = await crypto.subtle.importKey('raw', password, { name: 'PBKDF2' }, false, ['deriveKey'])
|
|
58
58
|
cryptoKey = await crypto.subtle.deriveKey(deriveParams, rawKey, { name: algorithm, length: keyLength }, true, ['encrypt'])
|
package/src/ciphers/aes-gcm.ts
CHANGED
|
@@ -90,7 +90,7 @@ export function create (opts?: CreateOptions): AESCipher {
|
|
|
90
90
|
const key = crypto.pbkdf2Sync(password, salt, iterations, keyLength, digest)
|
|
91
91
|
|
|
92
92
|
// Decrypt and return result.
|
|
93
|
-
return
|
|
93
|
+
return decryptWithKey(ciphertextAndNonce, key)
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
const cipher: AESCipher = {
|
|
@@ -28,7 +28,7 @@ export async function create (hashType: 'SHA1' | 'SHA256' | 'SHA512', secret: Ui
|
|
|
28
28
|
|
|
29
29
|
return {
|
|
30
30
|
async digest (data: Uint8Array) { // eslint-disable-line require-await
|
|
31
|
-
return
|
|
31
|
+
return sign(key, data)
|
|
32
32
|
},
|
|
33
33
|
length: lengths[hashType]
|
|
34
34
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as hmac from './hmac/index.js'
|
|
2
1
|
import * as aes from './aes/index.js'
|
|
2
|
+
import * as hmac from './hmac/index.js'
|
|
3
3
|
import * as keys from './keys/index.js'
|
|
4
|
-
import randomBytes from './random-bytes.js'
|
|
5
4
|
import pbkdf2 from './pbkdf2.js'
|
|
5
|
+
import randomBytes from './random-bytes.js'
|
|
6
6
|
|
|
7
7
|
export { aes }
|
|
8
8
|
export { hmac }
|
package/src/keys/ecdh-browser.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { CodeError } from '@libp2p/
|
|
2
|
-
import webcrypto from '../webcrypto.js'
|
|
3
|
-
import { base64urlToBuffer } from '../util.js'
|
|
4
|
-
import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
|
|
1
|
+
import { CodeError } from '@libp2p/interface/errors'
|
|
5
2
|
import { concat as uint8ArrayConcat } from 'uint8arrays/concat'
|
|
6
3
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
|
|
4
|
+
import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
|
|
5
|
+
import { base64urlToBuffer } from '../util.js'
|
|
6
|
+
import webcrypto from '../webcrypto.js'
|
|
7
7
|
import type { ECDHKey, ECDHKeyPair, JWKEncodedPrivateKey, JWKEncodedPublicKey } from './interface.js'
|
|
8
8
|
|
|
9
9
|
const bits = {
|
package/src/keys/ecdh.ts
CHANGED
|
@@ -47,11 +47,11 @@ export async function generateKeyFromSeed (seed: Uint8Array): Promise<Uint8Array
|
|
|
47
47
|
export async function hashAndSign (privateKey: Uint8Array, msg: Uint8Array): Promise<Uint8Array> {
|
|
48
48
|
const privateKeyRaw = privateKey.subarray(0, KEYS_BYTE_LENGTH)
|
|
49
49
|
|
|
50
|
-
return
|
|
50
|
+
return ed.sign(msg, privateKeyRaw)
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
export async function hashAndVerify (publicKey: Uint8Array, sig: Uint8Array, msg: Uint8Array): Promise<boolean> {
|
|
54
|
-
return
|
|
54
|
+
return ed.verify(sig, msg, publicKey)
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
function concatKeys (privateKeyRaw: Uint8Array, publicKey: Uint8Array): Uint8Array {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { CodeError } from '@libp2p/
|
|
2
|
-
import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
|
|
3
|
-
import { sha256 } from 'multiformats/hashes/sha2'
|
|
1
|
+
import { CodeError } from '@libp2p/interface/errors'
|
|
4
2
|
import { base58btc } from 'multiformats/bases/base58'
|
|
5
3
|
import { identity } from 'multiformats/hashes/identity'
|
|
4
|
+
import { sha256 } from 'multiformats/hashes/sha2'
|
|
5
|
+
import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
|
|
6
6
|
import * as crypto from './ed25519.js'
|
|
7
|
-
import * as pbm from './keys.js'
|
|
8
7
|
import { exporter } from './exporter.js'
|
|
8
|
+
import * as pbm from './keys.js'
|
|
9
9
|
import type { Multibase } from 'multiformats'
|
|
10
10
|
|
|
11
11
|
export class Ed25519PublicKey {
|
|
@@ -16,7 +16,7 @@ export class Ed25519PublicKey {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
async verify (data: Uint8Array, sig: Uint8Array): Promise<boolean> { // eslint-disable-line require-await
|
|
19
|
-
return
|
|
19
|
+
return crypto.hashAndVerify(this._key, sig, data)
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
marshal (): Uint8Array {
|
|
@@ -53,7 +53,7 @@ export class Ed25519PrivateKey {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
async sign (message: Uint8Array): Promise<Uint8Array> { // eslint-disable-line require-await
|
|
56
|
-
return
|
|
56
|
+
return crypto.hashAndSign(this._key, message)
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
get public (): Ed25519PublicKey {
|
|
@@ -100,7 +100,7 @@ export class Ed25519PrivateKey {
|
|
|
100
100
|
*/
|
|
101
101
|
async export (password: string, format = 'libp2p-key'): Promise<Multibase<'m'>> {
|
|
102
102
|
if (format === 'libp2p-key') {
|
|
103
|
-
return
|
|
103
|
+
return exporter(this.bytes, password)
|
|
104
104
|
} else {
|
|
105
105
|
throw new CodeError(`export format '${format}' is not supported`, 'ERR_INVALID_EXPORT_FORMAT')
|
|
106
106
|
}
|
package/src/keys/ed25519.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import crypto from 'crypto'
|
|
2
2
|
import { promisify } from 'util'
|
|
3
|
-
import { toString as uint8arrayToString } from 'uint8arrays/to-string'
|
|
4
3
|
import { fromString as uint8arrayFromString } from 'uint8arrays/from-string'
|
|
4
|
+
import { toString as uint8arrayToString } from 'uint8arrays/to-string'
|
|
5
5
|
import type { Uint8ArrayKeyPair } from './interface.js'
|
|
6
6
|
|
|
7
7
|
const keypair = promisify(crypto.generateKeyPair)
|
package/src/keys/exporter.ts
CHANGED
package/src/keys/importer.ts
CHANGED
|
@@ -9,5 +9,5 @@ import * as ciphers from '../ciphers/aes-gcm.js'
|
|
|
9
9
|
export async function importer (privateKey: string, password: string): Promise<Uint8Array> {
|
|
10
10
|
const encryptedKey = base64.decode(privateKey)
|
|
11
11
|
const cipher = ciphers.create()
|
|
12
|
-
return
|
|
12
|
+
return cipher.decrypt(encryptedKey, password)
|
|
13
13
|
}
|