@libp2p/crypto 3.0.4-856ccd708 → 3.0.4-ddaa59a60
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/index.min.js +14 -72
- package/dist/src/aes/cipher-mode.d.ts +2 -0
- package/dist/src/aes/cipher-mode.d.ts.map +1 -0
- package/dist/src/aes/cipher-mode.js +13 -0
- package/dist/src/aes/cipher-mode.js.map +1 -0
- package/dist/src/aes/ciphers-browser.d.ts +7 -0
- package/dist/src/aes/ciphers-browser.d.ts.map +1 -0
- package/dist/src/aes/ciphers-browser.js +26 -0
- package/dist/src/aes/ciphers-browser.js.map +1 -0
- package/dist/src/aes/ciphers.d.ts +5 -0
- package/dist/src/aes/ciphers.d.ts.map +1 -0
- package/dist/src/aes/ciphers.js +4 -0
- package/dist/src/aes/ciphers.js.map +1 -0
- package/dist/src/aes/index.d.ts +50 -0
- package/dist/src/aes/index.d.ts.map +1 -0
- package/dist/src/aes/index.js +61 -0
- package/dist/src/aes/index.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/keys/ed25519-browser.d.ts +1 -1
- package/dist/src/keys/ed25519-browser.d.ts.map +1 -1
- package/dist/src/keys/index.d.ts +2 -4
- package/dist/src/keys/index.d.ts.map +1 -1
- package/dist/src/keys/index.js +12 -7
- package/dist/src/keys/index.js.map +1 -1
- package/dist/src/keys/jwk2pem.d.ts +8 -0
- package/dist/src/keys/jwk2pem.d.ts.map +1 -0
- package/dist/src/keys/jwk2pem.js +14 -0
- package/dist/src/keys/jwk2pem.js.map +1 -0
- package/dist/src/keys/rsa-browser.d.ts +2 -0
- package/dist/src/keys/rsa-browser.d.ts.map +1 -1
- package/dist/src/keys/rsa-browser.js +25 -0
- package/dist/src/keys/rsa-browser.js.map +1 -1
- package/dist/src/keys/rsa-class.d.ts +5 -6
- package/dist/src/keys/rsa-class.d.ts.map +1 -1
- package/dist/src/keys/rsa-class.js +25 -11
- package/dist/src/keys/rsa-class.js.map +1 -1
- package/dist/src/keys/rsa-utils.d.ts +2 -15
- package/dist/src/keys/rsa-utils.d.ts.map +1 -1
- package/dist/src/keys/rsa-utils.js +39 -304
- package/dist/src/keys/rsa-utils.js.map +1 -1
- package/dist/src/keys/rsa.d.ts +2 -0
- package/dist/src/keys/rsa.d.ts.map +1 -1
- package/dist/src/keys/rsa.js +22 -2
- package/dist/src/keys/rsa.js.map +1 -1
- package/dist/src/pbkdf2.d.ts +1 -1
- package/dist/src/pbkdf2.d.ts.map +1 -1
- package/dist/src/pbkdf2.js +10 -14
- package/dist/src/pbkdf2.js.map +1 -1
- package/dist/src/util.d.ts +7 -0
- package/dist/src/util.d.ts.map +1 -1
- package/dist/src/util.js +25 -0
- package/dist/src/util.js.map +1 -1
- package/dist/src/webcrypto.d.ts +1 -3
- package/dist/src/webcrypto.d.ts.map +1 -1
- package/dist/src/webcrypto.js +11 -4
- package/dist/src/webcrypto.js.map +1 -1
- package/package.json +15 -8
- package/src/aes/cipher-mode.ts +15 -0
- package/src/aes/ciphers-browser.ts +31 -0
- package/src/aes/ciphers.ts +4 -0
- package/src/aes/index.ts +70 -0
- package/src/index.ts +2 -0
- package/src/keys/ed25519-browser.ts +1 -1
- package/src/keys/index.ts +12 -10
- package/src/keys/jwk2pem.ts +21 -0
- package/src/keys/rsa-browser.ts +29 -0
- package/src/keys/rsa-class.ts +28 -11
- package/src/keys/rsa-utils.ts +39 -373
- package/src/keys/rsa.ts +23 -2
- package/src/pbkdf2.ts +15 -17
- package/src/util.ts +29 -0
- package/src/webcrypto.ts +18 -5
- package/dist/src/webcrypto-browser.d.ts +0 -5
- package/dist/src/webcrypto-browser.d.ts.map +0 -1
- package/dist/src/webcrypto-browser.js +0 -17
- package/dist/src/webcrypto-browser.js.map +0 -1
- package/src/webcrypto-browser.ts +0 -24
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa-class.js","sourceRoot":"","sources":["../../../src/keys/rsa-class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,GAAG,MAAM,WAAW,CAAA;AAChC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAIlC,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"rsa-class.js","sourceRoot":"","sources":["../../../src/keys/rsa-class.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
* Convert a PKCS#1 in ASN1 DER format to a JWK key
|
|
4
|
-
*/
|
|
1
|
+
import 'node-forge/lib/asn1.js';
|
|
2
|
+
import 'node-forge/lib/rsa.js';
|
|
5
3
|
export declare function pkcs1ToJwk(bytes: Uint8Array): JsonWebKey;
|
|
6
|
-
/**
|
|
7
|
-
* Convert a JWK key into PKCS#1 in ASN1 DER format
|
|
8
|
-
*/
|
|
9
4
|
export declare function jwkToPkcs1(jwk: JsonWebKey): Uint8Array;
|
|
10
|
-
/**
|
|
11
|
-
* Convert a PKCIX in ASN1 DER format to a JWK key
|
|
12
|
-
*/
|
|
13
5
|
export declare function pkixToJwk(bytes: Uint8Array): JsonWebKey;
|
|
14
|
-
/**
|
|
15
|
-
* Convert a JWK key to PKCIX in ASN1 DER format
|
|
16
|
-
*/
|
|
17
6
|
export declare function jwkToPkix(jwk: JsonWebKey): Uint8Array;
|
|
18
|
-
export declare function exportToPem(privateKey: RsaPrivateKey, password: string): Promise<string>;
|
|
19
|
-
export declare function importFromPem(pem: string, password: string): Promise<RsaPrivateKey>;
|
|
20
7
|
//# sourceMappingURL=rsa-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa-utils.d.ts","sourceRoot":"","sources":["../../../src/keys/rsa-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rsa-utils.d.ts","sourceRoot":"","sources":["../../../src/keys/rsa-utils.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAA;AAC/B,OAAO,uBAAuB,CAAA;AAS9B,wBAAgB,UAAU,CAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAiBzD;AAGD,wBAAgB,UAAU,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAiBvD;AAGD,wBAAgB,SAAS,CAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CASxD;AAGD,wBAAgB,SAAS,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAWtD"}
|
|
@@ -1,330 +1,65 @@
|
|
|
1
|
+
import 'node-forge/lib/asn1.js';
|
|
2
|
+
import 'node-forge/lib/rsa.js';
|
|
1
3
|
import { CodeError } from '@libp2p/interface';
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import * as asn1js from 'asn1js';
|
|
4
|
+
// @ts-expect-error types are missing
|
|
5
|
+
import forge from 'node-forge/lib/forge.js';
|
|
5
6
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
6
7
|
import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
import { unmarshalRsaPrivateKey } from './rsa-class.js';
|
|
10
|
-
/**
|
|
11
|
-
* Convert a PKCS#1 in ASN1 DER format to a JWK key
|
|
12
|
-
*/
|
|
8
|
+
import { bigIntegerToUintBase64url, base64urlToBigInteger } from './../util.js';
|
|
9
|
+
// Convert a PKCS#1 in ASN1 DER format to a JWK key
|
|
13
10
|
export function pkcs1ToJwk(bytes) {
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
const key = {
|
|
19
|
-
n: uint8ArrayToString(bnToBuf(values[1].toBigInt()), 'base64url'),
|
|
20
|
-
e: uint8ArrayToString(bnToBuf(values[2].toBigInt()), 'base64url'),
|
|
21
|
-
d: uint8ArrayToString(bnToBuf(values[3].toBigInt()), 'base64url'),
|
|
22
|
-
p: uint8ArrayToString(bnToBuf(values[4].toBigInt()), 'base64url'),
|
|
23
|
-
q: uint8ArrayToString(bnToBuf(values[5].toBigInt()), 'base64url'),
|
|
24
|
-
dp: uint8ArrayToString(bnToBuf(values[6].toBigInt()), 'base64url'),
|
|
25
|
-
dq: uint8ArrayToString(bnToBuf(values[7].toBigInt()), 'base64url'),
|
|
26
|
-
qi: uint8ArrayToString(bnToBuf(values[8].toBigInt()), 'base64url'),
|
|
11
|
+
const asn1 = forge.asn1.fromDer(uint8ArrayToString(bytes, 'ascii'));
|
|
12
|
+
const privateKey = forge.pki.privateKeyFromAsn1(asn1);
|
|
13
|
+
// https://tools.ietf.org/html/rfc7518#section-6.3.1
|
|
14
|
+
return {
|
|
27
15
|
kty: 'RSA',
|
|
16
|
+
n: bigIntegerToUintBase64url(privateKey.n),
|
|
17
|
+
e: bigIntegerToUintBase64url(privateKey.e),
|
|
18
|
+
d: bigIntegerToUintBase64url(privateKey.d),
|
|
19
|
+
p: bigIntegerToUintBase64url(privateKey.p),
|
|
20
|
+
q: bigIntegerToUintBase64url(privateKey.q),
|
|
21
|
+
dp: bigIntegerToUintBase64url(privateKey.dP),
|
|
22
|
+
dq: bigIntegerToUintBase64url(privateKey.dQ),
|
|
23
|
+
qi: bigIntegerToUintBase64url(privateKey.qInv),
|
|
28
24
|
alg: 'RS256'
|
|
29
25
|
};
|
|
30
|
-
return key;
|
|
31
26
|
}
|
|
32
|
-
|
|
33
|
-
* Convert a JWK key into PKCS#1 in ASN1 DER format
|
|
34
|
-
*/
|
|
27
|
+
// Convert a JWK key into PKCS#1 in ASN1 DER format
|
|
35
28
|
export function jwkToPkcs1(jwk) {
|
|
36
29
|
if (jwk.n == null || jwk.e == null || jwk.d == null || jwk.p == null || jwk.q == null || jwk.dp == null || jwk.dq == null || jwk.qi == null) {
|
|
37
30
|
throw new CodeError('JWK was missing components', 'ERR_INVALID_PARAMETERS');
|
|
38
31
|
}
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
asn1js.Integer.fromBigInt(bufToBn(uint8ArrayFromString(jwk.dq, 'base64url'))),
|
|
49
|
-
asn1js.Integer.fromBigInt(bufToBn(uint8ArrayFromString(jwk.qi, 'base64url')))
|
|
50
|
-
]
|
|
32
|
+
const asn1 = forge.pki.privateKeyToAsn1({
|
|
33
|
+
n: base64urlToBigInteger(jwk.n),
|
|
34
|
+
e: base64urlToBigInteger(jwk.e),
|
|
35
|
+
d: base64urlToBigInteger(jwk.d),
|
|
36
|
+
p: base64urlToBigInteger(jwk.p),
|
|
37
|
+
q: base64urlToBigInteger(jwk.q),
|
|
38
|
+
dP: base64urlToBigInteger(jwk.dp),
|
|
39
|
+
dQ: base64urlToBigInteger(jwk.dq),
|
|
40
|
+
qInv: base64urlToBigInteger(jwk.qi)
|
|
51
41
|
});
|
|
52
|
-
|
|
53
|
-
return new Uint8Array(der, 0, der.byteLength);
|
|
42
|
+
return uint8ArrayFromString(forge.asn1.toDer(asn1).getBytes(), 'ascii');
|
|
54
43
|
}
|
|
55
|
-
|
|
56
|
-
* Convert a PKCIX in ASN1 DER format to a JWK key
|
|
57
|
-
*/
|
|
44
|
+
// Convert a PKCIX in ASN1 DER format to a JWK key
|
|
58
45
|
export function pkixToJwk(bytes) {
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
// safe to have deeply property chains like this
|
|
62
|
-
const values = result.valueBlock.value[1].valueBlock.value[0].valueBlock.value;
|
|
46
|
+
const asn1 = forge.asn1.fromDer(uint8ArrayToString(bytes, 'ascii'));
|
|
47
|
+
const publicKey = forge.pki.publicKeyFromAsn1(asn1);
|
|
63
48
|
return {
|
|
64
49
|
kty: 'RSA',
|
|
65
|
-
n:
|
|
66
|
-
e:
|
|
50
|
+
n: bigIntegerToUintBase64url(publicKey.n),
|
|
51
|
+
e: bigIntegerToUintBase64url(publicKey.e)
|
|
67
52
|
};
|
|
68
53
|
}
|
|
69
|
-
|
|
70
|
-
* Convert a JWK key to PKCIX in ASN1 DER format
|
|
71
|
-
*/
|
|
54
|
+
// Convert a JWK key to PKCIX in ASN1 DER format
|
|
72
55
|
export function jwkToPkix(jwk) {
|
|
73
56
|
if (jwk.n == null || jwk.e == null) {
|
|
74
57
|
throw new CodeError('JWK was missing components', 'ERR_INVALID_PARAMETERS');
|
|
75
58
|
}
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
value: [
|
|
80
|
-
// rsaEncryption
|
|
81
|
-
new asn1js.ObjectIdentifier({
|
|
82
|
-
value: '1.2.840.113549.1.1.1'
|
|
83
|
-
}),
|
|
84
|
-
new asn1js.Null()
|
|
85
|
-
]
|
|
86
|
-
}),
|
|
87
|
-
// this appears to be a bug in asn1js.js - this should really be a Sequence
|
|
88
|
-
// and not a BitString but it generates the same bytes as node-forge so 🤷♂️
|
|
89
|
-
new asn1js.BitString({
|
|
90
|
-
valueHex: new asn1js.Sequence({
|
|
91
|
-
value: [
|
|
92
|
-
asn1js.Integer.fromBigInt(bufToBn(uint8ArrayFromString(jwk.n, 'base64url'))),
|
|
93
|
-
asn1js.Integer.fromBigInt(bufToBn(uint8ArrayFromString(jwk.e, 'base64url')))
|
|
94
|
-
]
|
|
95
|
-
}).toBER()
|
|
96
|
-
})
|
|
97
|
-
]
|
|
98
|
-
});
|
|
99
|
-
const der = root.toBER();
|
|
100
|
-
return new Uint8Array(der, 0, der.byteLength);
|
|
101
|
-
}
|
|
102
|
-
function bnToBuf(bn) {
|
|
103
|
-
let hex = bn.toString(16);
|
|
104
|
-
if (hex.length % 2 > 0) {
|
|
105
|
-
hex = `0${hex}`;
|
|
106
|
-
}
|
|
107
|
-
const len = hex.length / 2;
|
|
108
|
-
const u8 = new Uint8Array(len);
|
|
109
|
-
let i = 0;
|
|
110
|
-
let j = 0;
|
|
111
|
-
while (i < len) {
|
|
112
|
-
u8[i] = parseInt(hex.slice(j, j + 2), 16);
|
|
113
|
-
i += 1;
|
|
114
|
-
j += 2;
|
|
115
|
-
}
|
|
116
|
-
return u8;
|
|
117
|
-
}
|
|
118
|
-
function bufToBn(u8) {
|
|
119
|
-
const hex = [];
|
|
120
|
-
u8.forEach(function (i) {
|
|
121
|
-
let h = i.toString(16);
|
|
122
|
-
if (h.length % 2 > 0) {
|
|
123
|
-
h = `0${h}`;
|
|
124
|
-
}
|
|
125
|
-
hex.push(h);
|
|
126
|
-
});
|
|
127
|
-
return BigInt('0x' + hex.join(''));
|
|
128
|
-
}
|
|
129
|
-
const SALT_LENGTH = 16;
|
|
130
|
-
const KEY_SIZE = 32;
|
|
131
|
-
const ITERATIONS = 10000;
|
|
132
|
-
export async function exportToPem(privateKey, password) {
|
|
133
|
-
const crypto = webcrypto.get();
|
|
134
|
-
// PrivateKeyInfo
|
|
135
|
-
const keyWrapper = new asn1js.Sequence({
|
|
136
|
-
value: [
|
|
137
|
-
// version (0)
|
|
138
|
-
new asn1js.Integer({ value: 0 }),
|
|
139
|
-
// privateKeyAlgorithm
|
|
140
|
-
new asn1js.Sequence({
|
|
141
|
-
value: [
|
|
142
|
-
// rsaEncryption OID
|
|
143
|
-
new asn1js.ObjectIdentifier({
|
|
144
|
-
value: '1.2.840.113549.1.1.1'
|
|
145
|
-
}),
|
|
146
|
-
new asn1js.Null()
|
|
147
|
-
]
|
|
148
|
-
}),
|
|
149
|
-
// PrivateKey
|
|
150
|
-
new asn1js.OctetString({
|
|
151
|
-
valueHex: privateKey.marshal()
|
|
152
|
-
})
|
|
153
|
-
]
|
|
59
|
+
const asn1 = forge.pki.publicKeyToAsn1({
|
|
60
|
+
n: base64urlToBigInteger(jwk.n),
|
|
61
|
+
e: base64urlToBigInteger(jwk.e)
|
|
154
62
|
});
|
|
155
|
-
|
|
156
|
-
const keyArr = new Uint8Array(keyBuf, 0, keyBuf.byteLength);
|
|
157
|
-
const salt = randomBytes(SALT_LENGTH);
|
|
158
|
-
const encryptionKey = await pbkdf2Async(sha512, password, salt, {
|
|
159
|
-
c: ITERATIONS,
|
|
160
|
-
dkLen: KEY_SIZE
|
|
161
|
-
});
|
|
162
|
-
const iv = randomBytes(16);
|
|
163
|
-
const cryptoKey = await crypto.subtle.importKey('raw', encryptionKey, 'AES-CBC', false, ['encrypt']);
|
|
164
|
-
const encrypted = await crypto.subtle.encrypt({
|
|
165
|
-
name: 'AES-CBC',
|
|
166
|
-
iv
|
|
167
|
-
}, cryptoKey, keyArr);
|
|
168
|
-
const pbkdf2Params = new asn1js.Sequence({
|
|
169
|
-
value: [
|
|
170
|
-
// salt
|
|
171
|
-
new asn1js.OctetString({ valueHex: salt }),
|
|
172
|
-
// iteration count
|
|
173
|
-
new asn1js.Integer({ value: ITERATIONS }),
|
|
174
|
-
// key length
|
|
175
|
-
new asn1js.Integer({ value: KEY_SIZE }),
|
|
176
|
-
// AlgorithmIdentifier
|
|
177
|
-
new asn1js.Sequence({
|
|
178
|
-
value: [
|
|
179
|
-
// hmacWithSHA512
|
|
180
|
-
new asn1js.ObjectIdentifier({ value: '1.2.840.113549.2.11' }),
|
|
181
|
-
new asn1js.Null()
|
|
182
|
-
]
|
|
183
|
-
})
|
|
184
|
-
]
|
|
185
|
-
});
|
|
186
|
-
const encryptionAlgorithm = new asn1js.Sequence({
|
|
187
|
-
value: [
|
|
188
|
-
// pkcs5PBES2
|
|
189
|
-
new asn1js.ObjectIdentifier({
|
|
190
|
-
value: '1.2.840.113549.1.5.13'
|
|
191
|
-
}),
|
|
192
|
-
new asn1js.Sequence({
|
|
193
|
-
value: [
|
|
194
|
-
// keyDerivationFunc
|
|
195
|
-
new asn1js.Sequence({
|
|
196
|
-
value: [
|
|
197
|
-
// pkcs5PBKDF2
|
|
198
|
-
new asn1js.ObjectIdentifier({
|
|
199
|
-
value: '1.2.840.113549.1.5.12'
|
|
200
|
-
}),
|
|
201
|
-
// PBKDF2-params
|
|
202
|
-
pbkdf2Params
|
|
203
|
-
]
|
|
204
|
-
}),
|
|
205
|
-
// encryptionScheme
|
|
206
|
-
new asn1js.Sequence({
|
|
207
|
-
value: [
|
|
208
|
-
// aes256-CBC
|
|
209
|
-
new asn1js.ObjectIdentifier({
|
|
210
|
-
value: '2.16.840.1.101.3.4.1.42'
|
|
211
|
-
}),
|
|
212
|
-
// iv
|
|
213
|
-
new asn1js.OctetString({
|
|
214
|
-
valueHex: iv
|
|
215
|
-
})
|
|
216
|
-
]
|
|
217
|
-
})
|
|
218
|
-
]
|
|
219
|
-
})
|
|
220
|
-
]
|
|
221
|
-
});
|
|
222
|
-
const finalWrapper = new asn1js.Sequence({
|
|
223
|
-
value: [
|
|
224
|
-
encryptionAlgorithm,
|
|
225
|
-
new asn1js.OctetString({ valueHex: encrypted })
|
|
226
|
-
]
|
|
227
|
-
});
|
|
228
|
-
const finalWrapperBuf = finalWrapper.toBER();
|
|
229
|
-
const finalWrapperArr = new Uint8Array(finalWrapperBuf, 0, finalWrapperBuf.byteLength);
|
|
230
|
-
return [
|
|
231
|
-
'-----BEGIN ENCRYPTED PRIVATE KEY-----',
|
|
232
|
-
...uint8ArrayToString(finalWrapperArr, 'base64pad').split(/(.{64})/).filter(Boolean),
|
|
233
|
-
'-----END ENCRYPTED PRIVATE KEY-----'
|
|
234
|
-
].join('\n');
|
|
235
|
-
}
|
|
236
|
-
export async function importFromPem(pem, password) {
|
|
237
|
-
const crypto = webcrypto.get();
|
|
238
|
-
let plaintext;
|
|
239
|
-
if (pem.includes('-----BEGIN ENCRYPTED PRIVATE KEY-----')) {
|
|
240
|
-
const key = uint8ArrayFromString(pem
|
|
241
|
-
.replace('-----BEGIN ENCRYPTED PRIVATE KEY-----', '')
|
|
242
|
-
.replace('-----END ENCRYPTED PRIVATE KEY-----', '')
|
|
243
|
-
.replace(/\n/g, '')
|
|
244
|
-
.trim(), 'base64pad');
|
|
245
|
-
const { result } = asn1js.fromBER(key);
|
|
246
|
-
const { iv, salt, iterations, keySize, cipherText } = findEncryptedPEMData(result);
|
|
247
|
-
const encryptionKey = await pbkdf2Async(sha512, password, salt, {
|
|
248
|
-
c: iterations,
|
|
249
|
-
dkLen: keySize
|
|
250
|
-
});
|
|
251
|
-
const cryptoKey = await crypto.subtle.importKey('raw', encryptionKey, 'AES-CBC', false, ['decrypt']);
|
|
252
|
-
const decrypted = toUint8Array(await crypto.subtle.decrypt({
|
|
253
|
-
name: 'AES-CBC',
|
|
254
|
-
iv
|
|
255
|
-
}, cryptoKey, cipherText));
|
|
256
|
-
const { result: decryptedResult } = asn1js.fromBER(decrypted);
|
|
257
|
-
plaintext = findPEMData(decryptedResult);
|
|
258
|
-
}
|
|
259
|
-
else if (pem.includes('-----BEGIN PRIVATE KEY-----')) {
|
|
260
|
-
const key = uint8ArrayFromString(pem
|
|
261
|
-
.replace('-----BEGIN PRIVATE KEY-----', '')
|
|
262
|
-
.replace('-----END PRIVATE KEY-----', '')
|
|
263
|
-
.replace(/\n/g, '')
|
|
264
|
-
.trim(), 'base64pad');
|
|
265
|
-
const { result } = asn1js.fromBER(key);
|
|
266
|
-
plaintext = findPEMData(result);
|
|
267
|
-
}
|
|
268
|
-
else {
|
|
269
|
-
throw new CodeError('Could not parse private key from PEM data', 'ERR_INVALID_PARAMETERS');
|
|
270
|
-
}
|
|
271
|
-
return unmarshalRsaPrivateKey(plaintext);
|
|
272
|
-
}
|
|
273
|
-
function findEncryptedPEMData(root) {
|
|
274
|
-
const encryptionAlgorithm = root.valueBlock.value[0];
|
|
275
|
-
const scheme = encryptionAlgorithm.valueBlock.value[0].toString();
|
|
276
|
-
if (scheme !== 'OBJECT IDENTIFIER : 1.2.840.113549.1.5.13') {
|
|
277
|
-
throw new CodeError('Only pkcs5PBES2 encrypted private keys are supported', 'ERR_INVALID_PARAMS');
|
|
278
|
-
}
|
|
279
|
-
const keyDerivationFunc = encryptionAlgorithm.valueBlock.value[1].valueBlock.value[0];
|
|
280
|
-
const keyDerivationFuncName = keyDerivationFunc.valueBlock.value[0].toString();
|
|
281
|
-
if (keyDerivationFuncName !== 'OBJECT IDENTIFIER : 1.2.840.113549.1.5.12') {
|
|
282
|
-
throw new CodeError('Only pkcs5PBKDF2 key derivation functions are supported', 'ERR_INVALID_PARAMS');
|
|
283
|
-
}
|
|
284
|
-
const pbkdf2Params = keyDerivationFunc.valueBlock.value[1];
|
|
285
|
-
const salt = toUint8Array(pbkdf2Params.valueBlock.value[0].getValue());
|
|
286
|
-
let iterations = ITERATIONS;
|
|
287
|
-
let keySize = KEY_SIZE;
|
|
288
|
-
if (pbkdf2Params.valueBlock.value.length === 3) {
|
|
289
|
-
iterations = Number(pbkdf2Params.valueBlock.value[1].toBigInt());
|
|
290
|
-
keySize = Number((pbkdf2Params.valueBlock.value[2]).toBigInt());
|
|
291
|
-
}
|
|
292
|
-
else if (pbkdf2Params.valueBlock.value.length === 2) {
|
|
293
|
-
throw new CodeError('Could not derive key size and iterations from PEM file - please use @libp2p/rsa to re-import your key', 'ERR_INVALID_PARAMS');
|
|
294
|
-
}
|
|
295
|
-
const encryptionScheme = encryptionAlgorithm.valueBlock.value[1].valueBlock.value[1];
|
|
296
|
-
const encryptionSchemeName = encryptionScheme.valueBlock.value[0].toString();
|
|
297
|
-
if (encryptionSchemeName === 'OBJECT IDENTIFIER : 1.2.840.113549.3.7') {
|
|
298
|
-
// des-EDE3-CBC
|
|
299
|
-
}
|
|
300
|
-
else if (encryptionSchemeName === 'OBJECT IDENTIFIER : 1.3.14.3.2.7') {
|
|
301
|
-
// des-CBC
|
|
302
|
-
}
|
|
303
|
-
else if (encryptionSchemeName === 'OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.2') {
|
|
304
|
-
// aes128-CBC
|
|
305
|
-
}
|
|
306
|
-
else if (encryptionSchemeName === 'OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.22') {
|
|
307
|
-
// aes192-CBC
|
|
308
|
-
}
|
|
309
|
-
else if (encryptionSchemeName === 'OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.42') {
|
|
310
|
-
// aes256-CBC
|
|
311
|
-
}
|
|
312
|
-
else {
|
|
313
|
-
throw new CodeError('Only AES-CBC encryption schemes are supported', 'ERR_INVALID_PARAMS');
|
|
314
|
-
}
|
|
315
|
-
const iv = toUint8Array(encryptionScheme.valueBlock.value[1].getValue());
|
|
316
|
-
return {
|
|
317
|
-
cipherText: toUint8Array(root.valueBlock.value[1].getValue()),
|
|
318
|
-
salt,
|
|
319
|
-
iterations,
|
|
320
|
-
keySize,
|
|
321
|
-
iv
|
|
322
|
-
};
|
|
323
|
-
}
|
|
324
|
-
function findPEMData(seq) {
|
|
325
|
-
return toUint8Array(seq.valueBlock.value[2].getValue());
|
|
326
|
-
}
|
|
327
|
-
function toUint8Array(buf) {
|
|
328
|
-
return new Uint8Array(buf, 0, buf.byteLength);
|
|
63
|
+
return uint8ArrayFromString(forge.asn1.toDer(asn1).getBytes(), 'ascii');
|
|
329
64
|
}
|
|
330
65
|
//# sourceMappingURL=rsa-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa-utils.js","sourceRoot":"","sources":["../../../src/keys/rsa-utils.ts"],"names":[],"mappings":"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"}
|
|
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.d.ts
CHANGED
|
@@ -8,5 +8,7 @@ export declare function unmarshalPrivateKey(key: JsonWebKey): Promise<JWKKeyPair
|
|
|
8
8
|
export { randomBytes as getRandomValues };
|
|
9
9
|
export declare function hashAndSign(key: JsonWebKey, msg: Uint8Array | Uint8ArrayList): Promise<Uint8Array>;
|
|
10
10
|
export declare function hashAndVerify(key: JsonWebKey, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList): Promise<boolean>;
|
|
11
|
+
export declare function encrypt(key: JsonWebKey, bytes: Uint8Array | Uint8ArrayList): Uint8Array;
|
|
12
|
+
export declare function decrypt(key: JsonWebKey, bytes: Uint8Array | Uint8ArrayList): Uint8Array;
|
|
11
13
|
export declare function keySize(jwk: JsonWebKey): number;
|
|
12
14
|
//# sourceMappingURL=rsa.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa.d.ts","sourceRoot":"","sources":["../../../src/keys/rsa.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rsa.d.ts","sourceRoot":"","sources":["../../../src/keys/rsa.ts"],"names":[],"mappings":"AAGA,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIpD,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,wBAAsB,WAAW,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAcpE;AAGD,wBAAsB,mBAAmB,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAY/E;AAED,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,CAAA;AAEzC,wBAAsB,WAAW,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAazG;AAED,wBAAsB,aAAa,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAazH;AAID,wBAAgB,OAAO,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAQxF;AAED,wBAAgB,OAAO,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAQxF;AAED,wBAAgB,OAAO,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAQhD"}
|
package/dist/src/keys/rsa.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import crypto from 'crypto';
|
|
2
2
|
import { promisify } from 'util';
|
|
3
3
|
import { CodeError } from '@libp2p/interface';
|
|
4
|
-
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
5
4
|
import randomBytes from '../random-bytes.js';
|
|
6
5
|
import * as utils from './rsa-utils.js';
|
|
7
6
|
const keypair = promisify(crypto.generateKeyPair);
|
|
@@ -61,6 +60,27 @@ export async function hashAndVerify(key, sig, msg) {
|
|
|
61
60
|
// @ts-expect-error node types are missing jwk as a format
|
|
62
61
|
return hash.verify({ format: 'jwk', key }, sig);
|
|
63
62
|
}
|
|
63
|
+
const padding = crypto.constants.RSA_PKCS1_PADDING;
|
|
64
|
+
export function encrypt(key, bytes) {
|
|
65
|
+
if (bytes instanceof Uint8Array) {
|
|
66
|
+
// @ts-expect-error node types are missing jwk as a format
|
|
67
|
+
return crypto.publicEncrypt({ format: 'jwk', key, padding }, bytes);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// @ts-expect-error node types are missing jwk as a format
|
|
71
|
+
return crypto.publicEncrypt({ format: 'jwk', key, padding }, bytes.subarray());
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export function decrypt(key, bytes) {
|
|
75
|
+
if (bytes instanceof Uint8Array) {
|
|
76
|
+
// @ts-expect-error node types are missing jwk as a format
|
|
77
|
+
return crypto.privateDecrypt({ format: 'jwk', key, padding }, bytes);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
// @ts-expect-error node types are missing jwk as a format
|
|
81
|
+
return crypto.privateDecrypt({ format: 'jwk', key, padding }, bytes.subarray());
|
|
82
|
+
}
|
|
83
|
+
}
|
|
64
84
|
export function keySize(jwk) {
|
|
65
85
|
if (jwk.kty !== 'RSA') {
|
|
66
86
|
throw new CodeError('invalid key type', 'ERR_INVALID_KEY_TYPE');
|
|
@@ -68,7 +88,7 @@ export function keySize(jwk) {
|
|
|
68
88
|
else if (jwk.n == null) {
|
|
69
89
|
throw new CodeError('invalid key modulus', 'ERR_INVALID_KEY_MODULUS');
|
|
70
90
|
}
|
|
71
|
-
const modulus =
|
|
91
|
+
const modulus = Buffer.from(jwk.n, 'base64');
|
|
72
92
|
return modulus.length * 8;
|
|
73
93
|
}
|
|
74
94
|
//# sourceMappingURL=rsa.js.map
|
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,mBAAmB,CAAA;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"rsa.js","sourceRoot":"","sources":["../../../src/keys/rsa.ts"],"names":[],"mappings":"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"}
|
package/dist/src/pbkdf2.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Computes the Password-Based Key Derivation Function 2.
|
|
3
3
|
*/
|
|
4
|
-
export default function pbkdf2(password: string, salt: string
|
|
4
|
+
export default function pbkdf2(password: string, salt: string, iterations: number, keySize: number, hash: string): string;
|
|
5
5
|
//# sourceMappingURL=pbkdf2.d.ts.map
|
package/dist/src/pbkdf2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbkdf2.d.ts","sourceRoot":"","sources":["../../src/pbkdf2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pbkdf2.d.ts","sourceRoot":"","sources":["../../src/pbkdf2.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAgBzH"}
|
package/dist/src/pbkdf2.js
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import { CodeError } from '@libp2p/interface';
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
import
|
|
6
|
-
import { base64 } from 'multiformats/bases/base64';
|
|
2
|
+
// @ts-expect-error types are missing
|
|
3
|
+
import forgePbkdf2 from 'node-forge/lib/pbkdf2.js';
|
|
4
|
+
// @ts-expect-error types are missing
|
|
5
|
+
import forgeUtil from 'node-forge/lib/util.js';
|
|
7
6
|
/**
|
|
8
|
-
* Maps an IPFS hash name to its
|
|
7
|
+
* Maps an IPFS hash name to its node-forge equivalent.
|
|
9
8
|
*
|
|
10
9
|
* See https://github.com/multiformats/multihash/blob/master/hashtable.csv
|
|
11
10
|
*
|
|
12
11
|
* @private
|
|
13
12
|
*/
|
|
14
13
|
const hashName = {
|
|
15
|
-
sha1,
|
|
16
|
-
'sha2-256': sha256,
|
|
17
|
-
'sha2-512': sha512
|
|
14
|
+
sha1: 'sha1',
|
|
15
|
+
'sha2-256': 'sha256',
|
|
16
|
+
'sha2-512': 'sha512'
|
|
18
17
|
};
|
|
19
18
|
/**
|
|
20
19
|
* Computes the Password-Based Key Derivation Function 2.
|
|
@@ -25,10 +24,7 @@ export default function pbkdf2(password, salt, iterations, keySize, hash) {
|
|
|
25
24
|
throw new CodeError(`Hash '${hash}' is unknown or not supported. Must be ${types}`, 'ERR_UNSUPPORTED_HASH_TYPE');
|
|
26
25
|
}
|
|
27
26
|
const hasher = hashName[hash];
|
|
28
|
-
const dek =
|
|
29
|
-
|
|
30
|
-
dkLen: keySize
|
|
31
|
-
});
|
|
32
|
-
return base64.encode(dek).substring(1);
|
|
27
|
+
const dek = forgePbkdf2(password, salt, iterations, keySize, hasher);
|
|
28
|
+
return forgeUtil.encode64(dek, null);
|
|
33
29
|
}
|
|
34
30
|
//# sourceMappingURL=pbkdf2.js.map
|
package/dist/src/pbkdf2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../src/pbkdf2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,
|
|
1
|
+
{"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../src/pbkdf2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,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,CAAC;QAClE,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;IAClH,CAAC;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/util.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import 'node-forge/lib/util.js';
|
|
2
|
+
import 'node-forge/lib/jsbn.js';
|
|
3
|
+
import forge from 'node-forge/lib/forge.js';
|
|
4
|
+
export declare function bigIntegerToUintBase64url(num: {
|
|
5
|
+
abs(): any;
|
|
6
|
+
}, len?: number): string;
|
|
7
|
+
export declare function base64urlToBigInteger(str: string): typeof forge.jsbn.BigInteger;
|
|
1
8
|
export declare function base64urlToBuffer(str: string, len?: number): Uint8Array;
|
|
2
9
|
export declare function isPromise<T = unknown>(thing: any): thing is Promise<T>;
|
|
3
10
|
//# sourceMappingURL=util.d.ts.map
|
package/dist/src/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAA;AAC/B,OAAO,wBAAwB,CAAA;AAE/B,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAK3C,wBAAgB,yBAAyB,CAAE,GAAG,EAAE;IAAE,GAAG,IAAI,GAAG,CAAA;CAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBpF;AAGD,wBAAgB,qBAAqB,CAAE,GAAG,EAAE,MAAM,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAGhF;AAED,wBAAgB,iBAAiB,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CASxE;AAED,wBAAgB,SAAS,CAAE,CAAC,GAAG,OAAO,EAAG,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAQxE"}
|