@libp2p/crypto 0.22.10 → 0.22.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/keys/index.d.ts +7 -5
- package/dist/src/keys/index.d.ts.map +1 -1
- package/dist/src/keys/index.js.map +1 -1
- package/dist/src/keys/keys.d.ts +4 -3
- package/dist/src/keys/keys.d.ts.map +1 -1
- package/dist/src/keys/keys.js +7 -1
- package/dist/src/keys/keys.js.map +1 -1
- package/package.json +5 -4
- package/src/keys/index.ts +10 -7
- package/src/keys/keys.ts +10 -4
package/dist/src/keys/index.d.ts
CHANGED
|
@@ -6,21 +6,23 @@ import generateEphemeralKeyPair from './ephemeral-keys.js';
|
|
|
6
6
|
import * as RSA from './rsa-class.js';
|
|
7
7
|
import * as Ed25519 from './ed25519-class.js';
|
|
8
8
|
import * as Secp256k1 from './secp256k1-class.js';
|
|
9
|
+
import type { PrivateKey, PublicKey } from '@libp2p/interfaces/keys';
|
|
9
10
|
export { keyStretcher };
|
|
10
11
|
export { generateEphemeralKeyPair };
|
|
11
12
|
export { keysPBM };
|
|
13
|
+
export declare type KeyTypes = 'RSA' | 'Ed25519' | 'secp256k1';
|
|
12
14
|
export declare const supportedKeys: {
|
|
13
15
|
rsa: typeof RSA;
|
|
14
16
|
ed25519: typeof Ed25519;
|
|
15
17
|
secp256k1: typeof Secp256k1;
|
|
16
18
|
};
|
|
17
|
-
export declare function generateKeyPair(type:
|
|
18
|
-
export declare function generateKeyPairFromSeed(type:
|
|
19
|
-
export declare function unmarshalPublicKey(buf: Uint8Array):
|
|
19
|
+
export declare function generateKeyPair(type: KeyTypes, bits?: number): Promise<PrivateKey>;
|
|
20
|
+
export declare function generateKeyPairFromSeed(type: KeyTypes, seed: Uint8Array, bits?: number): Promise<PrivateKey>;
|
|
21
|
+
export declare function unmarshalPublicKey(buf: Uint8Array): PublicKey;
|
|
20
22
|
export declare function marshalPublicKey(key: {
|
|
21
23
|
bytes: Uint8Array;
|
|
22
24
|
}, type?: string): Uint8Array;
|
|
23
|
-
export declare function unmarshalPrivateKey(buf: Uint8Array): Promise<
|
|
25
|
+
export declare function unmarshalPrivateKey(buf: Uint8Array): Promise<PrivateKey>;
|
|
24
26
|
export declare function marshalPrivateKey(key: {
|
|
25
27
|
bytes: Uint8Array;
|
|
26
28
|
}, type?: string): Uint8Array;
|
|
@@ -29,5 +31,5 @@ export declare function marshalPrivateKey(key: {
|
|
|
29
31
|
* @param {string} encryptedKey
|
|
30
32
|
* @param {string} password
|
|
31
33
|
*/
|
|
32
|
-
export declare function importKey(encryptedKey: string, password: string): Promise<
|
|
34
|
+
export declare function importKey(encryptedKey: string, password: string): Promise<PrivateKey>;
|
|
33
35
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,wBAAwB,CAAA;AAC/B,OAAO,uBAAuB,CAAA;AAK9B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,wBAAwB,MAAM,qBAAqB,CAAA;AAE1D,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,wBAAwB,CAAA;AAC/B,OAAO,uBAAuB,CAAA;AAK9B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,wBAAwB,MAAM,qBAAqB,CAAA;AAE1D,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEpE,OAAO,EAAE,YAAY,EAAE,CAAA;AACvB,OAAO,EAAE,wBAAwB,EAAE,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB,oBAAY,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,CAAA;AAEtD,eAAO,MAAM,aAAa;;;;CAIzB,CAAA;AAkBD,wBAAsB,eAAe,CAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEzF;AAID,wBAAsB,uBAAuB,CAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAMnH;AAID,wBAAgB,kBAAkB,CAAE,GAAG,EAAE,UAAU,GAAG,SAAS,CAc9D;AAGD,wBAAgB,gBAAgB,CAAE,GAAG,EAAE;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAIvF;AAID,wBAAsB,mBAAmB,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAc/E;AAGD,wBAAgB,iBAAiB,CAAE,GAAG,EAAE;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAIxF;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAgB5F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,wBAAwB,CAAA;AAC/B,OAAO,uBAAuB,CAAA;AAC9B,qCAAqC;AACrC,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAC3C,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,wBAAwB,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/keys/keys.d.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
+
import type { Codec } from 'protons-runtime';
|
|
1
2
|
export declare enum KeyType {
|
|
2
3
|
RSA = "RSA",
|
|
3
4
|
Ed25519 = "Ed25519",
|
|
4
5
|
Secp256k1 = "Secp256k1"
|
|
5
6
|
}
|
|
6
7
|
export declare namespace KeyType {
|
|
7
|
-
const codec: () =>
|
|
8
|
+
const codec: () => Codec<typeof KeyType>;
|
|
8
9
|
}
|
|
9
10
|
export interface PublicKey {
|
|
10
11
|
Type: KeyType;
|
|
11
12
|
Data: Uint8Array;
|
|
12
13
|
}
|
|
13
14
|
export declare namespace PublicKey {
|
|
14
|
-
const codec: () =>
|
|
15
|
+
const codec: () => Codec<PublicKey>;
|
|
15
16
|
const encode: (obj: PublicKey) => Uint8Array;
|
|
16
17
|
const decode: (buf: Uint8Array) => PublicKey;
|
|
17
18
|
}
|
|
@@ -20,7 +21,7 @@ export interface PrivateKey {
|
|
|
20
21
|
Data: Uint8Array;
|
|
21
22
|
}
|
|
22
23
|
export declare namespace PrivateKey {
|
|
23
|
-
const codec: () =>
|
|
24
|
+
const codec: () => Codec<PrivateKey>;
|
|
24
25
|
const encode: (obj: PrivateKey) => Uint8Array;
|
|
25
26
|
const decode: (buf: Uint8Array) => PrivateKey;
|
|
26
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/keys/keys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/keys/keys.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAE5C,oBAAY,OAAO;IACjB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAQD,yBAAiB,OAAO,CAAC;IAChB,MAAM,KAAK,6BAEjB,CAAA;CACF;AACD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,yBAAiB,SAAS,CAAC;IAClB,MAAM,KAAK,QAAO,MAAM,SAAS,CAKvC,CAAA;IAEM,MAAM,MAAM,QAAS,SAAS,KAAG,UAEvC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,SAExC,CAAA;CACF;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,yBAAiB,UAAU,CAAC;IACnB,MAAM,KAAK,QAAO,MAAM,UAAU,CAKxC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,UAExC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,UAExC,CAAA;CACF"}
|
package/dist/src/keys/keys.js
CHANGED
|
@@ -7,9 +7,15 @@ export var KeyType;
|
|
|
7
7
|
KeyType["Ed25519"] = "Ed25519";
|
|
8
8
|
KeyType["Secp256k1"] = "Secp256k1";
|
|
9
9
|
})(KeyType || (KeyType = {}));
|
|
10
|
+
var __KeyTypeValues;
|
|
11
|
+
(function (__KeyTypeValues) {
|
|
12
|
+
__KeyTypeValues[__KeyTypeValues["RSA"] = 0] = "RSA";
|
|
13
|
+
__KeyTypeValues[__KeyTypeValues["Ed25519"] = 1] = "Ed25519";
|
|
14
|
+
__KeyTypeValues[__KeyTypeValues["Secp256k1"] = 2] = "Secp256k1";
|
|
15
|
+
})(__KeyTypeValues || (__KeyTypeValues = {}));
|
|
10
16
|
(function (KeyType) {
|
|
11
17
|
KeyType.codec = () => {
|
|
12
|
-
return enumeration(
|
|
18
|
+
return enumeration(__KeyTypeValues);
|
|
13
19
|
};
|
|
14
20
|
})(KeyType || (KeyType = {}));
|
|
15
21
|
export var PublicKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/keys/keys.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,oDAAoD;AAEpD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/keys/keys.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,oDAAoD;AAEpD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAG3F,MAAM,CAAN,IAAY,OAIX;AAJD,WAAY,OAAO;IACjB,sBAAW,CAAA;IACX,8BAAmB,CAAA;IACnB,kCAAuB,CAAA;AACzB,CAAC,EAJW,OAAO,KAAP,OAAO,QAIlB;AAED,IAAK,eAIJ;AAJD,WAAK,eAAe;IAClB,mDAAO,CAAA;IACP,2DAAW,CAAA;IACX,+DAAa,CAAA;AACf,CAAC,EAJI,eAAe,KAAf,eAAe,QAInB;AAED,WAAiB,OAAO;IACT,aAAK,GAAG,GAAG,EAAE;QACxB,OAAO,WAAW,CAAiB,eAAe,CAAC,CAAA;IACrD,CAAC,CAAA;AACH,CAAC,EAJgB,OAAO,KAAP,OAAO,QAIvB;AAMD,MAAM,KAAW,SAAS,CAezB;AAfD,WAAiB,SAAS;IACX,eAAK,GAAG,GAAqB,EAAE;QAC1C,OAAO,OAAO,CAAY;YACxB,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE;YAC3C,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;SAClC,CAAC,CAAA;IACJ,CAAC,CAAA;IAEY,gBAAM,GAAG,CAAC,GAAc,EAAc,EAAE;QACnD,OAAO,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA;IAC9C,CAAC,CAAA;IAEY,gBAAM,GAAG,CAAC,GAAe,EAAa,EAAE;QACnD,OAAO,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA;IAC9C,CAAC,CAAA;AACH,CAAC,EAfgB,SAAS,KAAT,SAAS,QAezB;AAOD,MAAM,KAAW,UAAU,CAe1B;AAfD,WAAiB,UAAU;IACZ,gBAAK,GAAG,GAAsB,EAAE;QAC3C,OAAO,OAAO,CAAa;YACzB,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE;YAC3C,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;SAClC,CAAC,CAAA;IACJ,CAAC,CAAA;IAEY,iBAAM,GAAG,CAAC,GAAe,EAAc,EAAE;QACpD,OAAO,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA;IAC/C,CAAC,CAAA;IAEY,iBAAM,GAAG,CAAC,GAAe,EAAc,EAAE;QACpD,OAAO,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA;IAC/C,CAAC,CAAA;AACH,CAAC,EAfgB,UAAU,KAAV,UAAU,QAe1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/crypto",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.13",
|
|
4
4
|
"description": "Crypto primitives for libp2p",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p-crypto#readme",
|
|
@@ -169,21 +169,22 @@
|
|
|
169
169
|
"generate": "protons ./src/keys/keys.proto"
|
|
170
170
|
},
|
|
171
171
|
"dependencies": {
|
|
172
|
+
"@libp2p/interfaces": "^1.3.20",
|
|
172
173
|
"@noble/ed25519": "^1.6.0",
|
|
173
174
|
"@noble/secp256k1": "^1.5.4",
|
|
174
175
|
"err-code": "^3.0.1",
|
|
175
176
|
"iso-random-stream": "^2.0.0",
|
|
176
177
|
"multiformats": "^9.4.5",
|
|
177
178
|
"node-forge": "^1.1.0",
|
|
178
|
-
"protons-runtime": "^1.0.
|
|
179
|
+
"protons-runtime": "^1.0.4",
|
|
179
180
|
"uint8arrays": "^3.0.0"
|
|
180
181
|
},
|
|
181
182
|
"devDependencies": {
|
|
182
183
|
"@types/mocha": "^9.0.0",
|
|
183
184
|
"aegir": "^37.0.12",
|
|
184
185
|
"benchmark": "^2.1.4",
|
|
185
|
-
"protons": "^3.0.
|
|
186
|
-
"sinon": "^
|
|
186
|
+
"protons": "^3.0.4",
|
|
187
|
+
"sinon": "^14.0.0",
|
|
187
188
|
"util": "^0.12.3",
|
|
188
189
|
"wherearewe": "^1.0.0"
|
|
189
190
|
},
|
package/src/keys/index.ts
CHANGED
|
@@ -11,11 +11,14 @@ import { importer } from './importer.js'
|
|
|
11
11
|
import * as RSA from './rsa-class.js'
|
|
12
12
|
import * as Ed25519 from './ed25519-class.js'
|
|
13
13
|
import * as Secp256k1 from './secp256k1-class.js'
|
|
14
|
+
import type { PrivateKey, PublicKey } from '@libp2p/interfaces/keys'
|
|
14
15
|
|
|
15
16
|
export { keyStretcher }
|
|
16
17
|
export { generateEphemeralKeyPair }
|
|
17
18
|
export { keysPBM }
|
|
18
19
|
|
|
20
|
+
export type KeyTypes = 'RSA' | 'Ed25519' | 'secp256k1'
|
|
21
|
+
|
|
19
22
|
export const supportedKeys = {
|
|
20
23
|
rsa: RSA,
|
|
21
24
|
ed25519: Ed25519,
|
|
@@ -38,13 +41,13 @@ function typeToKey (type: string) {
|
|
|
38
41
|
}
|
|
39
42
|
|
|
40
43
|
// Generates a keypair of the given type and bitsize
|
|
41
|
-
export async function generateKeyPair (type:
|
|
44
|
+
export async function generateKeyPair (type: KeyTypes, bits?: number): Promise<PrivateKey> { // eslint-disable-line require-await
|
|
42
45
|
return await typeToKey(type).generateKeyPair(bits ?? 2048)
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
// Generates a keypair of the given type and bitsize
|
|
46
49
|
// seed is a 32 byte uint8array
|
|
47
|
-
export async function generateKeyPairFromSeed (type:
|
|
50
|
+
export async function generateKeyPairFromSeed (type: KeyTypes, seed: Uint8Array, bits?: number): Promise<PrivateKey> { // eslint-disable-line require-await
|
|
48
51
|
if (type.toLowerCase() !== 'ed25519') {
|
|
49
52
|
throw errcode(new Error('Seed key derivation is unimplemented for RSA or secp256k1'), 'ERR_UNSUPPORTED_KEY_DERIVATION_TYPE')
|
|
50
53
|
}
|
|
@@ -54,7 +57,7 @@ export async function generateKeyPairFromSeed (type: 'RSA' | 'Ed25519' | 'secp25
|
|
|
54
57
|
|
|
55
58
|
// Converts a protobuf serialized public key into its
|
|
56
59
|
// representative object
|
|
57
|
-
export function unmarshalPublicKey (buf: Uint8Array) {
|
|
60
|
+
export function unmarshalPublicKey (buf: Uint8Array): PublicKey {
|
|
58
61
|
const decoded = keysPBM.PublicKey.decode(buf)
|
|
59
62
|
const data = decoded.Data
|
|
60
63
|
|
|
@@ -71,7 +74,7 @@ export function unmarshalPublicKey (buf: Uint8Array) {
|
|
|
71
74
|
}
|
|
72
75
|
|
|
73
76
|
// Converts a public key object into a protobuf serialized public key
|
|
74
|
-
export function marshalPublicKey (key: { bytes: Uint8Array }, type?: string) {
|
|
77
|
+
export function marshalPublicKey (key: { bytes: Uint8Array }, type?: string): Uint8Array {
|
|
75
78
|
type = (type ?? 'rsa').toLowerCase()
|
|
76
79
|
typeToKey(type) // check type
|
|
77
80
|
return key.bytes
|
|
@@ -79,7 +82,7 @@ export function marshalPublicKey (key: { bytes: Uint8Array }, type?: string) {
|
|
|
79
82
|
|
|
80
83
|
// Converts a protobuf serialized private key into its
|
|
81
84
|
// representative object
|
|
82
|
-
export async function unmarshalPrivateKey (buf: Uint8Array) { // eslint-disable-line require-await
|
|
85
|
+
export async function unmarshalPrivateKey (buf: Uint8Array): Promise<PrivateKey> { // eslint-disable-line require-await
|
|
83
86
|
const decoded = keysPBM.PrivateKey.decode(buf)
|
|
84
87
|
const data = decoded.Data
|
|
85
88
|
|
|
@@ -96,7 +99,7 @@ export async function unmarshalPrivateKey (buf: Uint8Array) { // eslint-disable-
|
|
|
96
99
|
}
|
|
97
100
|
|
|
98
101
|
// Converts a private key object into a protobuf serialized private key
|
|
99
|
-
export function marshalPrivateKey (key: { bytes: Uint8Array }, type?: string) {
|
|
102
|
+
export function marshalPrivateKey (key: { bytes: Uint8Array }, type?: string): Uint8Array {
|
|
100
103
|
type = (type ?? 'rsa').toLowerCase()
|
|
101
104
|
typeToKey(type) // check type
|
|
102
105
|
return key.bytes
|
|
@@ -107,7 +110,7 @@ export function marshalPrivateKey (key: { bytes: Uint8Array }, type?: string) {
|
|
|
107
110
|
* @param {string} encryptedKey
|
|
108
111
|
* @param {string} password
|
|
109
112
|
*/
|
|
110
|
-
export async function importKey (encryptedKey: string, password: string) { // eslint-disable-line require-await
|
|
113
|
+
export async function importKey (encryptedKey: string, password: string): Promise<PrivateKey> { // eslint-disable-line require-await
|
|
111
114
|
try {
|
|
112
115
|
const key = await importer(encryptedKey, password)
|
|
113
116
|
return await unmarshalPrivateKey(key)
|
package/src/keys/keys.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-namespace */
|
|
3
3
|
|
|
4
4
|
import { enumeration, encodeMessage, decodeMessage, message, bytes } from 'protons-runtime'
|
|
5
|
+
import type { Codec } from 'protons-runtime'
|
|
5
6
|
|
|
6
7
|
export enum KeyType {
|
|
7
8
|
RSA = 'RSA',
|
|
@@ -9,19 +10,24 @@ export enum KeyType {
|
|
|
9
10
|
Secp256k1 = 'Secp256k1'
|
|
10
11
|
}
|
|
11
12
|
|
|
13
|
+
enum __KeyTypeValues {
|
|
14
|
+
RSA = 0,
|
|
15
|
+
Ed25519 = 1,
|
|
16
|
+
Secp256k1 = 2
|
|
17
|
+
}
|
|
18
|
+
|
|
12
19
|
export namespace KeyType {
|
|
13
20
|
export const codec = () => {
|
|
14
|
-
return enumeration<typeof KeyType>(
|
|
21
|
+
return enumeration<typeof KeyType>(__KeyTypeValues)
|
|
15
22
|
}
|
|
16
23
|
}
|
|
17
|
-
|
|
18
24
|
export interface PublicKey {
|
|
19
25
|
Type: KeyType
|
|
20
26
|
Data: Uint8Array
|
|
21
27
|
}
|
|
22
28
|
|
|
23
29
|
export namespace PublicKey {
|
|
24
|
-
export const codec = () => {
|
|
30
|
+
export const codec = (): Codec<PublicKey> => {
|
|
25
31
|
return message<PublicKey>({
|
|
26
32
|
1: { name: 'Type', codec: KeyType.codec() },
|
|
27
33
|
2: { name: 'Data', codec: bytes }
|
|
@@ -43,7 +49,7 @@ export interface PrivateKey {
|
|
|
43
49
|
}
|
|
44
50
|
|
|
45
51
|
export namespace PrivateKey {
|
|
46
|
-
export const codec = () => {
|
|
52
|
+
export const codec = (): Codec<PrivateKey> => {
|
|
47
53
|
return message<PrivateKey>({
|
|
48
54
|
1: { name: 'Type', codec: KeyType.codec() },
|
|
49
55
|
2: { name: 'Data', codec: bytes }
|