node-opcua-crypto 3.1.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cjs/source/common.js.map +1 -1
- package/dist-cjs/source/crypto_utils.js +9 -13
- package/dist-cjs/source/crypto_utils.js.map +1 -1
- package/dist-cjs/source/crypto_utils2.js +16 -45
- package/dist-cjs/source/crypto_utils2.js.map +1 -1
- package/dist-cjs/source/explore_private_key.js +4 -2
- package/dist-cjs/source/explore_private_key.js.map +1 -1
- package/dist-cjs/source/index.js +1 -0
- package/dist-cjs/source/index.js.map +1 -1
- package/dist-cjs/source/make_private_key_from_pem.js +8 -0
- package/dist-cjs/source/make_private_key_from_pem.js.map +1 -0
- package/dist-cjs/source/x509/_crypto.js +2 -0
- package/dist-cjs/source/x509/_crypto.js.map +1 -1
- package/dist-cjs/source/x509/coerce_private_key.js +8 -7
- package/dist-cjs/source/x509/coerce_private_key.js.map +1 -1
- package/dist-cjs/source_nodejs/generate_private_key_filename.js +1 -1
- package/dist-cjs/source_nodejs/generate_private_key_filename.js.map +1 -1
- package/dist-cjs/source_nodejs/read.js +25 -6
- package/dist-cjs/source_nodejs/read.js.map +1 -1
- package/dist-esm/source/common.js.map +1 -1
- package/dist-esm/source/crypto_utils.js +7 -12
- package/dist-esm/source/crypto_utils.js.map +1 -1
- package/dist-esm/source/crypto_utils2.js +15 -21
- package/dist-esm/source/crypto_utils2.js.map +1 -1
- package/dist-esm/source/explore_private_key.js +4 -2
- package/dist-esm/source/explore_private_key.js.map +1 -1
- package/dist-esm/source/index.js +1 -0
- package/dist-esm/source/index.js.map +1 -1
- package/dist-esm/source/make_private_key_from_pem.js +4 -0
- package/dist-esm/source/make_private_key_from_pem.js.map +1 -0
- package/dist-esm/source/x509/_crypto.js +2 -0
- package/dist-esm/source/x509/_crypto.js.map +1 -1
- package/dist-esm/source/x509/coerce_private_key.js +6 -5
- package/dist-esm/source/x509/coerce_private_key.js.map +1 -1
- package/dist-esm/source_nodejs/generate_private_key_filename.js +1 -1
- package/dist-esm/source_nodejs/generate_private_key_filename.js.map +1 -1
- package/dist-esm/source_nodejs/read.js +24 -6
- package/dist-esm/source_nodejs/read.js.map +1 -1
- package/dist-types/source/common.d.ts +5 -1
- package/dist-types/source/crypto_utils.d.ts +4 -3
- package/dist-types/source/crypto_utils2.d.ts +6 -6
- package/dist-types/source/explore_private_key.d.ts +1 -1
- package/dist-types/source/index.d.ts +1 -0
- package/dist-types/source/make_private_key_from_pem.d.ts +2 -0
- package/dist-types/source/x509/coerce_private_key.d.ts +5 -3
- package/dist-types/source_nodejs/read.d.ts +7 -1
- package/package.json +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../source/common.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../source/common.ts"],"names":[],"mappings":";;;AAsCA,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC1B,2EAAgB,CAAA;IAChB,iGAA2B,CAAA;IAC3B,+EAAkB,CAAA;IAClB,6FAAyB,CAAA;AAC7B,CAAC,EALW,kBAAkB,kCAAlB,kBAAkB,QAK7B"}
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.extractPublicKeyFromCertificate = exports.extractPublicKeyFromCertificateSync = exports.coerceCertificatePem = exports.privateDecrypt_long = exports.publicEncrypt_long = exports.privateDecrypt = exports.publicEncrypt = exports.privateDecrypt_native = exports.publicEncrypt_native = exports.PaddingAlgorithm = exports.RSA_PKCS1_PADDING = exports.RSA_PKCS1_OAEP_PADDING = exports.makeSHA1Thumbprint = exports.verifyMessageChunkSignature = exports.makeMessageChunkSignature = exports.hexDump = exports.convertPEMtoDER = exports.toPem = exports.identifyPemType = void 0;
|
|
6
|
+
exports.extractPublicKeyFromCertificate = exports.extractPublicKeyFromCertificateSync = exports.coerceCertificatePem = exports.privateDecrypt_long = exports.publicEncrypt_long = exports.privateDecrypt = exports.publicEncrypt = exports.privateDecrypt_native = exports.publicEncrypt_native = exports.PaddingAlgorithm = exports.RSA_PKCS1_PADDING = exports.RSA_PKCS1_OAEP_PADDING = exports.makeSHA1Thumbprint = exports.verifyMessageChunkSignature = exports.makeMessageChunkSignature = exports.hexDump = exports.convertPEMtoDER = exports.toPem = exports.removeTrailingLF = exports.identifyPemType = void 0;
|
|
7
7
|
var constants_1 = __importDefault(require("constants"));
|
|
8
8
|
var assert_1 = __importDefault(require("assert"));
|
|
9
9
|
var crypto_1 = require("crypto");
|
|
@@ -21,12 +21,17 @@ function identifyPemType(rawKey) {
|
|
|
21
21
|
return !match ? undefined : match[2];
|
|
22
22
|
}
|
|
23
23
|
exports.identifyPemType = identifyPemType;
|
|
24
|
+
function removeTrailingLF(str) {
|
|
25
|
+
var tmp = str.replace(/(\r|\n)+$/m, "").replace(/\r\n/gm, "\n");
|
|
26
|
+
return tmp;
|
|
27
|
+
}
|
|
28
|
+
exports.removeTrailingLF = removeTrailingLF;
|
|
24
29
|
function toPem(raw_key, pem) {
|
|
25
30
|
(0, assert_1.default)(raw_key, "expecting a key");
|
|
26
31
|
(0, assert_1.default)(typeof pem === "string");
|
|
27
32
|
var pemType = identifyPemType(raw_key);
|
|
28
33
|
if (pemType) {
|
|
29
|
-
return raw_key instanceof Buffer ? raw_key.toString("utf8") : raw_key;
|
|
34
|
+
return raw_key instanceof Buffer ? removeTrailingLF(raw_key.toString("utf8")) : removeTrailingLF(raw_key);
|
|
30
35
|
}
|
|
31
36
|
else {
|
|
32
37
|
pemType = pem;
|
|
@@ -38,7 +43,6 @@ function toPem(raw_key, pem) {
|
|
|
38
43
|
b = b.substring(64);
|
|
39
44
|
}
|
|
40
45
|
str += "-----END " + pemType + "-----";
|
|
41
|
-
str += "\n";
|
|
42
46
|
return str;
|
|
43
47
|
}
|
|
44
48
|
}
|
|
@@ -74,16 +78,12 @@ exports.hexDump = hexDump;
|
|
|
74
78
|
function makeMessageChunkSignature(chunk, options) {
|
|
75
79
|
var signer = (0, crypto_1.createSign)(options.algorithm);
|
|
76
80
|
signer.update(chunk);
|
|
77
|
-
var signature = signer.sign(options.privateKey);
|
|
81
|
+
var signature = signer.sign(options.privateKey.hidden);
|
|
78
82
|
(0, assert_1.default)(!options.signatureLength || signature.length === options.signatureLength);
|
|
79
83
|
return signature;
|
|
80
84
|
}
|
|
81
85
|
exports.makeMessageChunkSignature = makeMessageChunkSignature;
|
|
82
86
|
function verifyMessageChunkSignature(blockToVerify, signature, options) {
|
|
83
|
-
(0, assert_1.default)(blockToVerify instanceof Buffer);
|
|
84
|
-
(0, assert_1.default)(signature instanceof Buffer);
|
|
85
|
-
(0, assert_1.default)(typeof options.publicKey === "string");
|
|
86
|
-
(0, assert_1.default)(identifyPemType(options.publicKey));
|
|
87
87
|
var verify = (0, crypto_1.createVerify)(options.algorithm);
|
|
88
88
|
verify.update(blockToVerify);
|
|
89
89
|
return verify.verify(options.publicKey, signature);
|
|
@@ -106,8 +106,6 @@ function publicEncrypt_native(buffer, publicKey, algorithm) {
|
|
|
106
106
|
if (algorithm === undefined) {
|
|
107
107
|
algorithm = PaddingAlgorithm.RSA_PKCS1_PADDING;
|
|
108
108
|
}
|
|
109
|
-
(0, assert_1.default)(algorithm === exports.RSA_PKCS1_PADDING || algorithm === exports.RSA_PKCS1_OAEP_PADDING);
|
|
110
|
-
(0, assert_1.default)(buffer instanceof Buffer, "Expecting a buffer");
|
|
111
109
|
return (0, crypto_1.publicEncrypt)({
|
|
112
110
|
key: publicKey,
|
|
113
111
|
padding: algorithm,
|
|
@@ -118,11 +116,9 @@ function privateDecrypt_native(buffer, privateKey, algorithm) {
|
|
|
118
116
|
if (algorithm === undefined) {
|
|
119
117
|
algorithm = PaddingAlgorithm.RSA_PKCS1_PADDING;
|
|
120
118
|
}
|
|
121
|
-
(0, assert_1.default)(algorithm === exports.RSA_PKCS1_PADDING || algorithm === exports.RSA_PKCS1_OAEP_PADDING);
|
|
122
|
-
(0, assert_1.default)(buffer instanceof Buffer, "Expecting a buffer");
|
|
123
119
|
try {
|
|
124
120
|
return (0, crypto_1.privateDecrypt)({
|
|
125
|
-
key: privateKey,
|
|
121
|
+
key: privateKey.hidden,
|
|
126
122
|
padding: algorithm,
|
|
127
123
|
}, buffer);
|
|
128
124
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto_utils.js","sourceRoot":"","sources":["../../source/crypto_utils.ts"],"names":[],"mappings":";;;;;;AA2BA,wDAAkC;AAClC,kDAA4B;AAC5B,iCAOgB;AAER,IAAA,IAAI,GAAK,OAAO,CAAC,MAAM,CAAC,KAApB,CAAqB;AAEjC,qDAAkE;AAElE,iFAA8D;AAE9D,IAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEvC,IAAM,SAAS,GAAG,gFAAgF,CAAC;AAEnG,IAAM,cAAc,GAAG,0BAA0B,CAAC;AASlD,SAAgB,eAAe,CAAC,MAAuB;IACnD,IAAI,MAAM,YAAY,MAAM,EAAE;QAC1B,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACpC;IACD,IAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAND,0CAMC;
|
|
1
|
+
{"version":3,"file":"crypto_utils.js","sourceRoot":"","sources":["../../source/crypto_utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,64 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
4
|
};
|
|
28
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.rsaLengthRsaPublicKey = exports.rsaLengthPublicKey = exports.coerceRsaPublicKeyPem = exports.coercePublicKeyPem = exports.
|
|
6
|
+
exports.rsaLengthRsaPublicKey = exports.rsaLengthPublicKey = exports.coerceRsaPublicKeyPem = exports.coercePublicKeyPem = exports.coercePrivateKeyPem = exports.toPem2 = exports.rsaLengthPrivateKey = void 0;
|
|
30
7
|
var assert_1 = __importDefault(require("assert"));
|
|
31
|
-
var
|
|
32
|
-
var createPrivateKey = crypto.createPrivateKey;
|
|
8
|
+
var crypto_1 = require("crypto");
|
|
33
9
|
var crypto_utils_js_1 = require("./crypto_utils.js");
|
|
34
|
-
var coerce_private_key_js_1 = require("./x509/coerce_private_key.js");
|
|
35
10
|
var jsrsasign = require("jsrsasign");
|
|
36
|
-
function coercePrivateKeyPem(privateKey) {
|
|
37
|
-
if (privateKey instanceof Buffer) {
|
|
38
|
-
var o = createPrivateKey({ key: privateKey, format: "der", type: "pkcs1" });
|
|
39
|
-
var e = o.export({ format: "der", type: "pkcs1" });
|
|
40
|
-
privateKey = (0, crypto_utils_js_1.toPem)(e, "RSA PRIVATE KEY");
|
|
41
|
-
}
|
|
42
|
-
(0, assert_1.default)(typeof privateKey === "string");
|
|
43
|
-
return privateKey;
|
|
44
|
-
}
|
|
45
|
-
exports.coercePrivateKeyPem = coercePrivateKeyPem;
|
|
46
11
|
function rsaLengthPrivateKey(key) {
|
|
47
|
-
|
|
48
|
-
var
|
|
49
|
-
var a = jsrsasign.KEYUTIL.getKey(key2);
|
|
12
|
+
var keyPem = typeof key.hidden === "string" ? key.hidden : key.hidden.export({ type: "pkcs1", format: "pem" }).toString();
|
|
13
|
+
var a = jsrsasign.KEYUTIL.getKey(keyPem);
|
|
50
14
|
return a.n.toString(16).length / 2;
|
|
51
15
|
}
|
|
52
16
|
exports.rsaLengthPrivateKey = rsaLengthPrivateKey;
|
|
53
17
|
function toPem2(raw_key, pem) {
|
|
18
|
+
if (raw_key.hidden) {
|
|
19
|
+
return toPem2(raw_key.hidden, pem);
|
|
20
|
+
}
|
|
54
21
|
(0, assert_1.default)(raw_key, "expecting a key");
|
|
55
22
|
(0, assert_1.default)(typeof pem === "string");
|
|
56
|
-
if (raw_key instanceof
|
|
23
|
+
if (raw_key instanceof crypto_1.KeyObject) {
|
|
57
24
|
if (pem === "RSA PRIVATE KEY") {
|
|
58
|
-
return raw_key.export({ format: "pem", type: "pkcs1" }).toString();
|
|
25
|
+
return (0, crypto_utils_js_1.removeTrailingLF)(raw_key.export({ format: "pem", type: "pkcs1" }).toString());
|
|
59
26
|
}
|
|
60
27
|
else if (pem === "PRIVATE KEY") {
|
|
61
|
-
return raw_key.export({ format: "pem", type: "pkcs8" }).toString();
|
|
28
|
+
return (0, crypto_utils_js_1.removeTrailingLF)(raw_key.export({ format: "pem", type: "pkcs8" }).toString());
|
|
62
29
|
}
|
|
63
30
|
else {
|
|
64
31
|
throw new Error("Unsupported case!");
|
|
@@ -67,8 +34,12 @@ function toPem2(raw_key, pem) {
|
|
|
67
34
|
return (0, crypto_utils_js_1.toPem)(raw_key, pem);
|
|
68
35
|
}
|
|
69
36
|
exports.toPem2 = toPem2;
|
|
37
|
+
function coercePrivateKeyPem(privateKey) {
|
|
38
|
+
return toPem2(privateKey, "PRIVATE KEY");
|
|
39
|
+
}
|
|
40
|
+
exports.coercePrivateKeyPem = coercePrivateKeyPem;
|
|
70
41
|
function coercePublicKeyPem(publicKey) {
|
|
71
|
-
if (publicKey instanceof
|
|
42
|
+
if (publicKey instanceof crypto_1.KeyObject) {
|
|
72
43
|
return publicKey.export({ format: "pem", type: "spki" }).toString();
|
|
73
44
|
}
|
|
74
45
|
(0, assert_1.default)(typeof publicKey === "string");
|
|
@@ -76,7 +47,7 @@ function coercePublicKeyPem(publicKey) {
|
|
|
76
47
|
}
|
|
77
48
|
exports.coercePublicKeyPem = coercePublicKeyPem;
|
|
78
49
|
function coerceRsaPublicKeyPem(publicKey) {
|
|
79
|
-
if (publicKey instanceof
|
|
50
|
+
if (publicKey instanceof crypto_1.KeyObject) {
|
|
80
51
|
return publicKey.export({ format: "pem", type: "spki" }).toString();
|
|
81
52
|
}
|
|
82
53
|
(0, assert_1.default)(typeof publicKey === "string");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto_utils2.js","sourceRoot":"","sources":["../../source/crypto_utils2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"crypto_utils2.js","sourceRoot":"","sources":["../../source/crypto_utils2.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.explorePrivateKey = void 0;
|
|
4
4
|
var asn1_js_1 = require("./asn1.js");
|
|
5
|
+
var crypto_utils_js_1 = require("./crypto_utils.js");
|
|
5
6
|
function f(buffer, b) {
|
|
6
7
|
return buffer.subarray(b.position + 1, b.position + b.length);
|
|
7
8
|
}
|
|
8
9
|
var doDebug = !!process.env.DEBUG;
|
|
9
|
-
function explorePrivateKey(
|
|
10
|
-
var
|
|
10
|
+
function explorePrivateKey(privateKey2) {
|
|
11
|
+
var privateKey1 = privateKey2.hidden;
|
|
12
|
+
var privateKey = typeof privateKey1 === "string" ? (0, crypto_utils_js_1.convertPEMtoDER)(privateKey1) : privateKey1.export({ format: "der", type: "pkcs1" });
|
|
11
13
|
var block_info = (0, asn1_js_1.readTag)(privateKey, 0);
|
|
12
14
|
var blocks = (0, asn1_js_1._readStruct)(privateKey, block_info);
|
|
13
15
|
if (blocks.length === 9) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explore_private_key.js","sourceRoot":"","sources":["../../source/explore_private_key.ts"],"names":[],"mappings":";;;AAuBA,qCAA+F;
|
|
1
|
+
{"version":3,"file":"explore_private_key.js","sourceRoot":"","sources":["../../source/explore_private_key.ts"],"names":[],"mappings":"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"}
|
package/dist-cjs/source/index.js
CHANGED
|
@@ -34,4 +34,5 @@ __exportStar(require("./x509/create_self_signed_certificate.js"), exports);
|
|
|
34
34
|
__exportStar(require("./x509/coerce_private_key.js"), exports);
|
|
35
35
|
__exportStar(require("./subject.js"), exports);
|
|
36
36
|
__exportStar(require("./asn1.js"), exports);
|
|
37
|
+
__exportStar(require("./make_private_key_from_pem.js"), exports);
|
|
37
38
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AA0BA,8CAA4B;AAC5B,oDAAkC;AAClC,2DAAyC;AACzC,oDAAkC;AAClC,qDAAmC;AACnC,kEAAgD;AAChD,oEAAkD;AAClD,2EAAyD;AACzD,2EAAyD;AACzD,2DAAyC;AACzC,qEAAwG;AAA/F,wIAAA,6BAA6B,OAAA;AAAE,uIAAA,4BAA4B,OAAA;AACpE,4DAA0C;AAC1C,+EAA6D;AAC7D,2EAAyD;AACzD,+DAA6C;AAC7C,+CAA6B;AAC7B,4CAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AA0BA,8CAA4B;AAC5B,oDAAkC;AAClC,2DAAyC;AACzC,oDAAkC;AAClC,qDAAmC;AACnC,kEAAgD;AAChD,oEAAkD;AAClD,2EAAyD;AACzD,2EAAyD;AACzD,2DAAyC;AACzC,qEAAwG;AAA/F,wIAAA,6BAA6B,OAAA;AAAE,uIAAA,4BAA4B,OAAA;AACpE,4DAA0C;AAC1C,+EAA6D;AAC7D,2EAAyD;AACzD,+DAA6C;AAC7C,+CAA6B;AAC7B,4CAA0B;AAC1B,iEAA+C"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makePrivateKeyFromPem = void 0;
|
|
4
|
+
function makePrivateKeyFromPem(privateKeyInPem) {
|
|
5
|
+
return { hidden: privateKeyInPem };
|
|
6
|
+
}
|
|
7
|
+
exports.makePrivateKeyFromPem = makePrivateKeyFromPem;
|
|
8
|
+
//# sourceMappingURL=make_private_key_from_pem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make_private_key_from_pem.js","sourceRoot":"","sources":["../../source/make_private_key_from_pem.ts"],"names":[],"mappings":";;;AAGA,SAAgB,qBAAqB,CAAC,eAAuB;IACzD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AACvC,CAAC;AAFD,sDAEC"}
|
|
@@ -31,8 +31,10 @@ if (typeof window === "undefined") {
|
|
|
31
31
|
_crypto = require("crypto");
|
|
32
32
|
if (!(_crypto === null || _crypto === void 0 ? void 0 : _crypto.subtle)) {
|
|
33
33
|
_crypto = new webcrypto_1.Crypto();
|
|
34
|
+
console.warn("using @peculiar/webcrypto");
|
|
34
35
|
}
|
|
35
36
|
else {
|
|
37
|
+
console.warn("using nodejs crypto (native)");
|
|
36
38
|
}
|
|
37
39
|
x509.cryptoProvider.set(_crypto);
|
|
38
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_crypto.js","sourceRoot":"","sources":["../../../source/x509/_crypto.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACvC,iDAA6C;AAE7C,IAAI,OAA2B,CAAC;AAKhC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAC/B,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,EAAE;QAClB,OAAO,GAAG,IAAI,kBAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"_crypto.js","sourceRoot":"","sources":["../../../source/x509/_crypto.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACvC,iDAA6C;AAE7C,IAAI,OAA2B,CAAC;AAKhC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAC/B,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,EAAE;QAClB,OAAO,GAAG,IAAI,kBAAM,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;KAC7C;SAAM;QACH,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;KAChD;IACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;CACpC;KAAM;IAEH,OAAO,GAAG,MAAM,CAAC;IACjB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC;AAGD,SAAgB,SAAS;IACrB,OAAO,OAAO,IAAI,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC;AAFD,8BAEC;AACD,uDAAuC"}
|
|
@@ -36,19 +36,20 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports._coercePrivateKey = exports.
|
|
39
|
+
exports._coercePrivateKey = exports.coercePEMorDerToPrivateKey = void 0;
|
|
40
|
+
var crypto_1 = require("crypto");
|
|
40
41
|
var _crypto_1 = require("./_crypto");
|
|
41
42
|
var create_key_pair_1 = require("./create_key_pair");
|
|
42
|
-
var crypto_1 = require("crypto");
|
|
43
43
|
var crypto = (0, _crypto_1.getCrypto)();
|
|
44
44
|
var doDebug = false;
|
|
45
|
-
function
|
|
46
|
-
if (typeof
|
|
47
|
-
|
|
45
|
+
function coercePEMorDerToPrivateKey(privateKeyInDerOrPem) {
|
|
46
|
+
if (typeof privateKeyInDerOrPem === "string") {
|
|
47
|
+
var hidden = (0, crypto_1.createPrivateKey)(privateKeyInDerOrPem);
|
|
48
|
+
return { hidden: hidden };
|
|
48
49
|
}
|
|
49
|
-
|
|
50
|
+
throw new Error("not implemented");
|
|
50
51
|
}
|
|
51
|
-
exports.
|
|
52
|
+
exports.coercePEMorDerToPrivateKey = coercePEMorDerToPrivateKey;
|
|
52
53
|
function _coercePrivateKey(privateKey) {
|
|
53
54
|
return __awaiter(this, void 0, void 0, function () {
|
|
54
55
|
var KeyObject, privateKey1, privateKey1, err_1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coerce_private_key.js","sourceRoot":"","sources":["../../../source/x509/coerce_private_key.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"coerce_private_key.js","sourceRoot":"","sources":["../../../source/x509/coerce_private_key.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,iCAAyF;AACzF,qCAAsC;AAEtC,qDAAqE;AAGrE,IAAM,MAAM,GAAG,IAAA,mBAAS,GAAE,CAAC;AAE3B,IAAM,OAAO,GAAG,KAAK,CAAC;AAGtB,SAAgB,0BAA0B,CAAC,oBAAoC;IAC3E,IAAI,OAAO,oBAAoB,KAAK,QAAQ,EAAE;QAC1C,IAAM,MAAM,GAAG,IAAA,yBAAgC,EAAC,oBAAoB,CAAC,CAAC;QACtE,OAAO,EAAE,MAAM,QAAA,EAAC,CAAC;KACpB;IAED,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAEvC,CAAC;AARD,gEAQC;AAED,SAAsB,iBAAiB,CAAC,UAAe;;;;;;oBAC7C,SAAS,GAAI,MAAc,CAAC,SAAS,CAAC;yBACxC,CAAA,UAAU,YAAY,MAAM,CAAA,EAA5B,cAA4B;oBACR,WAAM,IAAA,iCAAe,EAAC,UAAU,CAAC,EAAA;;oBAA/C,WAAW,GAAG,SAAiC;oBACrD,WAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAC;;yBAC5B,CAAA,OAAO,UAAU,KAAK,QAAQ,CAAA,EAA9B,cAA8B;;;;oBAGb,WAAM,IAAA,iCAAe,EAAC,UAAU,CAAC,EAAA;;oBAA/C,WAAW,GAAG,SAAiC;oBACrD,WAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAC;;;oBAEnC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACnC,MAAM,KAAG,CAAC;;;oBAEX,IAAI,UAAU,YAAY,SAAS,EAAE;wBACxC,WAAO,UAAU,EAAC;qBACrB;;wBACD,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;;;;CACzC;AAlBD,8CAkBC"}
|
|
@@ -53,7 +53,7 @@ function generatePrivateKeyFile(privateKeyFilename, modulusLength) {
|
|
|
53
53
|
return [4, (0, index_js_1.privateKeyToPEM)(keys.privateKey)];
|
|
54
54
|
case 2:
|
|
55
55
|
privateKeyPem = _a.sent();
|
|
56
|
-
return [4, fs_1.default.promises.writeFile(privateKeyFilename, privateKeyPem.privPem)];
|
|
56
|
+
return [4, fs_1.default.promises.writeFile(privateKeyFilename, privateKeyPem.privPem, "utf-8")];
|
|
57
57
|
case 3:
|
|
58
58
|
_a.sent();
|
|
59
59
|
privateKeyPem.privPem = "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate_private_key_filename.js","sourceRoot":"","sources":["../../source_nodejs/generate_private_key_filename.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,0CAAoB;AACpB,+CAAsE;AAEtE,SAAsB,sBAAsB,CAAC,kBAA0B,EAAE,aAAwC;;;;;wBAChG,WAAM,IAAA,0BAAe,EAAC,aAAa,CAAC,EAAA;;oBAA3C,IAAI,GAAG,SAAoC;oBAC3B,WAAM,IAAA,0BAAe,EAAC,IAAI,CAAC,UAAU,CAAC,EAAA;;oBAAtD,aAAa,GAAG,SAAsC;oBAC5D,WAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE,aAAa,CAAC,OAAO,CAAC,EAAA;;
|
|
1
|
+
{"version":3,"file":"generate_private_key_filename.js","sourceRoot":"","sources":["../../source_nodejs/generate_private_key_filename.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,0CAAoB;AACpB,+CAAsE;AAEtE,SAAsB,sBAAsB,CAAC,kBAA0B,EAAE,aAAwC;;;;;wBAChG,WAAM,IAAA,0BAAe,EAAC,aAAa,CAAC,EAAA;;oBAA3C,IAAI,GAAG,SAAoC;oBAC3B,WAAM,IAAA,0BAAe,EAAC,IAAI,CAAC,UAAU,CAAC,EAAA;;oBAAtD,aAAa,GAAG,SAAsC;oBAC5D,WAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,EAAA;;oBAA/E,SAA+E,CAAC;oBAChF,aAAa,CAAC,OAAO,GAAG,EAAE,CAAC;oBAC3B,aAAa,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;;;;;CAC7C;AAND,wDAMC"}
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.readPublicRsaKey = exports.readPrivateRsaKey = exports.setCertificateStore = exports.readPrivateKeyPEM = exports.readPublicKeyPEM = exports.readCertificatePEM = exports.readPrivateKey = exports.readPublicKey = exports.readCertificate = void 0;
|
|
6
|
+
exports.readPublicRsaKey = exports.readPrivateRsaKey = exports.setCertificateStore = exports.readPrivateKeyPEM = exports.readPublicKeyPEM = exports.readCertificatePEM = exports.readPrivateKey = exports.makePrivateKeyThumbPrint = exports.readPublicKey = exports.readCertificate = void 0;
|
|
7
7
|
var assert_1 = __importDefault(require("assert"));
|
|
8
8
|
var fs_1 = __importDefault(require("fs"));
|
|
9
9
|
var path_1 = __importDefault(require("path"));
|
|
@@ -12,7 +12,7 @@ var crypto_utils_js_1 = require("../source/crypto_utils.js");
|
|
|
12
12
|
var sshpk = require("sshpk");
|
|
13
13
|
function _readPemFile(filename) {
|
|
14
14
|
(0, assert_1.default)(typeof filename === "string");
|
|
15
|
-
return fs_1.default.readFileSync(filename, "
|
|
15
|
+
return (0, crypto_utils_js_1.removeTrailingLF)(fs_1.default.readFileSync(filename, "utf-8"));
|
|
16
16
|
}
|
|
17
17
|
function _readPemOrDerFileAsDER(filename) {
|
|
18
18
|
if (filename.match(/.*\.der/)) {
|
|
@@ -37,11 +37,26 @@ function readPublicKey(filename) {
|
|
|
37
37
|
}
|
|
38
38
|
exports.readPublicKey = readPublicKey;
|
|
39
39
|
function myCreatePrivateKey(rawKey) {
|
|
40
|
+
if (!crypto_1.createPrivateKey || process.env.NO_CREATE_PRIVATEKEY) {
|
|
41
|
+
if (rawKey instanceof Buffer) {
|
|
42
|
+
var pemKey = (0, crypto_utils_js_1.toPem)(rawKey, "PRIVATE KEY");
|
|
43
|
+
(0, assert_1.default)(["RSA PRIVATE KEY", "PRIVATE KEY"].indexOf((0, crypto_utils_js_1.identifyPemType)(pemKey)) >= 0);
|
|
44
|
+
return { hidden: pemKey };
|
|
45
|
+
}
|
|
46
|
+
return { hidden: ensureTrailingLF(rawKey) };
|
|
47
|
+
}
|
|
40
48
|
var backup = process.env.OPENSSL_CONF;
|
|
41
49
|
process.env.OPENSSL_CONF = "/dev/null";
|
|
42
50
|
var retValue = (0, crypto_1.createPrivateKey)(rawKey);
|
|
43
51
|
process.env.OPENSSL_CONF = backup;
|
|
44
|
-
return retValue;
|
|
52
|
+
return { hidden: retValue };
|
|
53
|
+
}
|
|
54
|
+
function makePrivateKeyThumbPrint(privateKey) {
|
|
55
|
+
return Buffer.alloc(0);
|
|
56
|
+
}
|
|
57
|
+
exports.makePrivateKeyThumbPrint = makePrivateKeyThumbPrint;
|
|
58
|
+
function ensureTrailingLF(str) {
|
|
59
|
+
return str.match(/\n$/) ? str : str + "\n";
|
|
45
60
|
}
|
|
46
61
|
function readPrivateKey(filename) {
|
|
47
62
|
if (filename.match(/.*\.der/)) {
|
|
@@ -74,20 +89,24 @@ function setCertificateStore(store) {
|
|
|
74
89
|
}
|
|
75
90
|
exports.setCertificateStore = setCertificateStore;
|
|
76
91
|
function readPrivateRsaKey(filename) {
|
|
92
|
+
if (!crypto_1.createPrivateKey) {
|
|
93
|
+
throw new Error("createPrivateKey is not supported in this environment");
|
|
94
|
+
}
|
|
77
95
|
if (filename.substring(0, 1) !== "." && !fs_1.default.existsSync(filename)) {
|
|
78
96
|
filename = __certificate_store + filename;
|
|
79
97
|
}
|
|
80
|
-
var content = fs_1.default.readFileSync(filename, "
|
|
98
|
+
var content = fs_1.default.readFileSync(filename, "utf8");
|
|
81
99
|
var sshKey = sshpk.parsePrivateKey(content, "auto");
|
|
82
100
|
var key = sshKey.toString("pkcs1");
|
|
83
|
-
|
|
101
|
+
var hidden = (0, crypto_1.createPrivateKey)({ format: "pem", type: "pkcs1", key: key });
|
|
102
|
+
return { hidden: hidden };
|
|
84
103
|
}
|
|
85
104
|
exports.readPrivateRsaKey = readPrivateRsaKey;
|
|
86
105
|
function readPublicRsaKey(filename) {
|
|
87
106
|
if (filename.substring(0, 1) !== "." && !fs_1.default.existsSync(filename)) {
|
|
88
107
|
filename = __certificate_store + filename;
|
|
89
108
|
}
|
|
90
|
-
var content = fs_1.default.readFileSync(filename, "
|
|
109
|
+
var content = fs_1.default.readFileSync(filename, "utf-8");
|
|
91
110
|
var sshKey = sshpk.parseKey(content, "ssh");
|
|
92
111
|
var key = sshKey.toString("pkcs1");
|
|
93
112
|
return (0, crypto_1.createPublicKey)({ format: "pem", type: "pkcs1", key: key });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../source_nodejs/read.ts"],"names":[],"mappings":";;;;;;AAuBA,kDAA4B;AAC5B,0CAAoB;AACpB,8CAAwB;AACxB,iCAA2D;AAE3D,
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../source_nodejs/read.ts"],"names":[],"mappings":";;;;;;AAuBA,kDAA4B;AAC5B,0CAAoB;AACpB,8CAAwB;AACxB,iCAA2D;AAE3D,6DAAsG;AAEtG,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/B,SAAS,YAAY,CAAC,QAAgB;IAClC,IAAA,gBAAM,EAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC;IACrC,OAAO,IAAA,kCAAgB,EAAC,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB;IAC5C,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QAC3B,OAAO,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAW,CAAC;KAC9C;IACD,IAAM,OAAO,GAAW,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/C,OAAO,IAAA,iCAAe,EAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAKD,SAAgB,eAAe,CAAC,QAAgB;IAC5C,OAAO,sBAAsB,CAAC,QAAQ,CAAgB,CAAC;AAC3D,CAAC;AAFD,0CAEC;AAKD,SAAgB,aAAa,CAAC,QAAgB;IAC1C,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QAC3B,IAAM,GAAG,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAW,CAAC;QAChD,OAAO,IAAA,wBAAe,EAAC,GAAG,CAAC,CAAC;KAC/B;SAAM;QACH,IAAM,OAAO,GAAW,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,IAAA,wBAAe,EAAC,OAAO,CAAC,CAAC;KACnC;AACL,CAAC;AARD,sCAQC;AAID,SAAS,kBAAkB,CAAC,MAAuB;IAC/C,IAAI,CAAC,yBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE;QAEvD,IAAI,MAAM,YAAY,MAAM,EAAE;YAC1B,IAAM,MAAM,GAAG,IAAA,uBAAK,EAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YAC5C,IAAA,gBAAM,EAAC,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,IAAA,iCAAe,EAAC,MAAM,CAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;SAC7B;QACD,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;KAC/C;IAED,IAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC;IACvC,IAAM,QAAQ,GAAG,IAAA,yBAAgB,EAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC;IAClC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED,SAAgB,wBAAwB,CAAC,UAAsB;IAQ3D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AATD,4DASC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACjC,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;AAC/C,CAAC;AAID,SAAgB,cAAc,CAAC,QAAgB;IAC3C,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QAC3B,IAAM,GAAG,GAAW,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;KAClC;SAAM;QACH,IAAM,OAAO,GAAW,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;KACtC;AACL,CAAC;AARD,wCAQC;AAED,SAAgB,kBAAkB,CAAC,QAAgB;IAC/C,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAFD,gDAEC;AAED,SAAgB,gBAAgB,CAAC,QAAgB;IAC7C,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAFD,4CAEC;AAKD,SAAgB,iBAAiB,CAAC,QAAgB;IAC9C,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAFD,8CAEC;AAED,IAAI,mBAAmB,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;AAEtE,SAAgB,mBAAmB,CAAC,KAAa;IAC7C,IAAM,SAAS,GAAG,mBAAmB,CAAC;IACtC,mBAAmB,GAAG,KAAK,CAAC;IAC5B,OAAO,SAAS,CAAC;AACrB,CAAC;AAJD,kDAIC;AAMD,SAAgB,iBAAiB,CAAC,QAAgB;IAC9C,IAAI,CAAC,yBAAgB,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;KAC5E;IACD,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC9D,QAAQ,GAAG,mBAAmB,GAAG,QAAQ,CAAC;KAC7C;IACD,IAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,IAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,IAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAQ,CAAC;IAC5C,IAAM,MAAM,GAAG,IAAA,yBAAgB,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;IACvE,OAAO,EAAE,MAAM,QAAA,EAAE,CAAC;AACtB,CAAC;AAZD,8CAYC;AAED,SAAgB,gBAAgB,CAAC,QAAgB;IAC7C,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC9D,QAAQ,GAAG,mBAAmB,GAAG,QAAQ,CAAC;KAC7C;IACD,IAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,IAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAQ,CAAC;IAC5C,OAAO,IAAA,wBAAe,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;AAClE,CAAC;AARD,4CAQC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../source/common.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../source/common.ts"],"names":[],"mappings":"AAsCA,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC1B,2EAAgB,CAAA;IAChB,iGAA2B,CAAA;IAC3B,+EAAkB,CAAA;IAClB,6FAAyB,CAAA;AAC7B,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B"}
|
|
@@ -14,12 +14,16 @@ export function identifyPemType(rawKey) {
|
|
|
14
14
|
var match = PEM_TYPE_REGEX.exec(rawKey);
|
|
15
15
|
return !match ? undefined : match[2];
|
|
16
16
|
}
|
|
17
|
+
export function removeTrailingLF(str) {
|
|
18
|
+
var tmp = str.replace(/(\r|\n)+$/m, "").replace(/\r\n/gm, "\n");
|
|
19
|
+
return tmp;
|
|
20
|
+
}
|
|
17
21
|
export function toPem(raw_key, pem) {
|
|
18
22
|
assert(raw_key, "expecting a key");
|
|
19
23
|
assert(typeof pem === "string");
|
|
20
24
|
var pemType = identifyPemType(raw_key);
|
|
21
25
|
if (pemType) {
|
|
22
|
-
return raw_key instanceof Buffer ? raw_key.toString("utf8") : raw_key;
|
|
26
|
+
return raw_key instanceof Buffer ? removeTrailingLF(raw_key.toString("utf8")) : removeTrailingLF(raw_key);
|
|
23
27
|
}
|
|
24
28
|
else {
|
|
25
29
|
pemType = pem;
|
|
@@ -31,7 +35,6 @@ export function toPem(raw_key, pem) {
|
|
|
31
35
|
b = b.substring(64);
|
|
32
36
|
}
|
|
33
37
|
str += "-----END " + pemType + "-----";
|
|
34
|
-
str += "\n";
|
|
35
38
|
return str;
|
|
36
39
|
}
|
|
37
40
|
}
|
|
@@ -64,15 +67,11 @@ export function hexDump(buffer, width) {
|
|
|
64
67
|
export function makeMessageChunkSignature(chunk, options) {
|
|
65
68
|
var signer = createSign(options.algorithm);
|
|
66
69
|
signer.update(chunk);
|
|
67
|
-
var signature = signer.sign(options.privateKey);
|
|
70
|
+
var signature = signer.sign(options.privateKey.hidden);
|
|
68
71
|
assert(!options.signatureLength || signature.length === options.signatureLength);
|
|
69
72
|
return signature;
|
|
70
73
|
}
|
|
71
74
|
export function verifyMessageChunkSignature(blockToVerify, signature, options) {
|
|
72
|
-
assert(blockToVerify instanceof Buffer);
|
|
73
|
-
assert(signature instanceof Buffer);
|
|
74
|
-
assert(typeof options.publicKey === "string");
|
|
75
|
-
assert(identifyPemType(options.publicKey));
|
|
76
75
|
var verify = createVerify(options.algorithm);
|
|
77
76
|
verify.update(blockToVerify);
|
|
78
77
|
return verify.verify(options.publicKey, signature);
|
|
@@ -93,8 +92,6 @@ export function publicEncrypt_native(buffer, publicKey, algorithm) {
|
|
|
93
92
|
if (algorithm === undefined) {
|
|
94
93
|
algorithm = PaddingAlgorithm.RSA_PKCS1_PADDING;
|
|
95
94
|
}
|
|
96
|
-
assert(algorithm === RSA_PKCS1_PADDING || algorithm === RSA_PKCS1_OAEP_PADDING);
|
|
97
|
-
assert(buffer instanceof Buffer, "Expecting a buffer");
|
|
98
95
|
return publicEncrypt1({
|
|
99
96
|
key: publicKey,
|
|
100
97
|
padding: algorithm,
|
|
@@ -104,11 +101,9 @@ export function privateDecrypt_native(buffer, privateKey, algorithm) {
|
|
|
104
101
|
if (algorithm === undefined) {
|
|
105
102
|
algorithm = PaddingAlgorithm.RSA_PKCS1_PADDING;
|
|
106
103
|
}
|
|
107
|
-
assert(algorithm === RSA_PKCS1_PADDING || algorithm === RSA_PKCS1_OAEP_PADDING);
|
|
108
|
-
assert(buffer instanceof Buffer, "Expecting a buffer");
|
|
109
104
|
try {
|
|
110
105
|
return privateDecrypt1({
|
|
111
|
-
key: privateKey,
|
|
106
|
+
key: privateKey.hidden,
|
|
112
107
|
padding: algorithm,
|
|
113
108
|
}, buffer);
|
|
114
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto_utils.js","sourceRoot":"","sources":["../../source/crypto_utils.ts"],"names":[],"mappings":"AA2BA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EACH,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,IAAI,cAAc,EAC/B,cAAc,IAAI,eAAe,GAEpC,MAAM,QAAQ,CAAC;AAER,IAAA,IAAI,GAAK,OAAO,CAAC,MAAM,CAAC,KAApB,CAAqB;AAEjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,IAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEvC,IAAM,SAAS,GAAG,gFAAgF,CAAC;AAEnG,IAAM,cAAc,GAAG,0BAA0B,CAAC;AASlD,MAAM,UAAU,eAAe,CAAC,MAAuB;IACnD,IAAI,MAAM,YAAY,MAAM,EAAE;QAC1B,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACpC;IACD,IAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;
|
|
1
|
+
{"version":3,"file":"crypto_utils.js","sourceRoot":"","sources":["../../source/crypto_utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,24 @@
|
|
|
1
1
|
import assert from "assert";
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import { toPem } from "./crypto_utils.js";
|
|
5
|
-
import { coercePrivateKey } from "./x509/coerce_private_key.js";
|
|
2
|
+
import { KeyObject } from "crypto";
|
|
3
|
+
import { removeTrailingLF, toPem } from "./crypto_utils.js";
|
|
6
4
|
var jsrsasign = require("jsrsasign");
|
|
7
|
-
export function coercePrivateKeyPem(privateKey) {
|
|
8
|
-
if (privateKey instanceof Buffer) {
|
|
9
|
-
var o = createPrivateKey({ key: privateKey, format: "der", type: "pkcs1" });
|
|
10
|
-
var e = o.export({ format: "der", type: "pkcs1" });
|
|
11
|
-
privateKey = toPem(e, "RSA PRIVATE KEY");
|
|
12
|
-
}
|
|
13
|
-
assert(typeof privateKey === "string");
|
|
14
|
-
return privateKey;
|
|
15
|
-
}
|
|
16
5
|
export function rsaLengthPrivateKey(key) {
|
|
17
|
-
|
|
18
|
-
var
|
|
19
|
-
var a = jsrsasign.KEYUTIL.getKey(key2);
|
|
6
|
+
var keyPem = typeof key.hidden === "string" ? key.hidden : key.hidden.export({ type: "pkcs1", format: "pem" }).toString();
|
|
7
|
+
var a = jsrsasign.KEYUTIL.getKey(keyPem);
|
|
20
8
|
return a.n.toString(16).length / 2;
|
|
21
9
|
}
|
|
22
10
|
export function toPem2(raw_key, pem) {
|
|
11
|
+
if (raw_key.hidden) {
|
|
12
|
+
return toPem2(raw_key.hidden, pem);
|
|
13
|
+
}
|
|
23
14
|
assert(raw_key, "expecting a key");
|
|
24
15
|
assert(typeof pem === "string");
|
|
25
|
-
if (raw_key instanceof
|
|
16
|
+
if (raw_key instanceof KeyObject) {
|
|
26
17
|
if (pem === "RSA PRIVATE KEY") {
|
|
27
|
-
return raw_key.export({ format: "pem", type: "pkcs1" }).toString();
|
|
18
|
+
return removeTrailingLF(raw_key.export({ format: "pem", type: "pkcs1" }).toString());
|
|
28
19
|
}
|
|
29
20
|
else if (pem === "PRIVATE KEY") {
|
|
30
|
-
return raw_key.export({ format: "pem", type: "pkcs8" }).toString();
|
|
21
|
+
return removeTrailingLF(raw_key.export({ format: "pem", type: "pkcs8" }).toString());
|
|
31
22
|
}
|
|
32
23
|
else {
|
|
33
24
|
throw new Error("Unsupported case!");
|
|
@@ -35,15 +26,18 @@ export function toPem2(raw_key, pem) {
|
|
|
35
26
|
}
|
|
36
27
|
return toPem(raw_key, pem);
|
|
37
28
|
}
|
|
29
|
+
export function coercePrivateKeyPem(privateKey) {
|
|
30
|
+
return toPem2(privateKey, "PRIVATE KEY");
|
|
31
|
+
}
|
|
38
32
|
export function coercePublicKeyPem(publicKey) {
|
|
39
|
-
if (publicKey instanceof
|
|
33
|
+
if (publicKey instanceof KeyObject) {
|
|
40
34
|
return publicKey.export({ format: "pem", type: "spki" }).toString();
|
|
41
35
|
}
|
|
42
36
|
assert(typeof publicKey === "string");
|
|
43
37
|
return publicKey;
|
|
44
38
|
}
|
|
45
39
|
export function coerceRsaPublicKeyPem(publicKey) {
|
|
46
|
-
if (publicKey instanceof
|
|
40
|
+
if (publicKey instanceof KeyObject) {
|
|
47
41
|
return publicKey.export({ format: "pem", type: "spki" }).toString();
|
|
48
42
|
}
|
|
49
43
|
assert(typeof publicKey === "string");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto_utils2.js","sourceRoot":"","sources":["../../source/crypto_utils2.ts"],"names":[],"mappings":"AA2BA,OAAO,MAAM,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"crypto_utils2.js","sourceRoot":"","sources":["../../source/crypto_utils2.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { readTag, TagType, _readStruct } from "./asn1.js";
|
|
2
|
+
import { convertPEMtoDER } from "./crypto_utils.js";
|
|
2
3
|
function f(buffer, b) {
|
|
3
4
|
return buffer.subarray(b.position + 1, b.position + b.length);
|
|
4
5
|
}
|
|
5
6
|
var doDebug = !!process.env.DEBUG;
|
|
6
|
-
export function explorePrivateKey(
|
|
7
|
-
var
|
|
7
|
+
export function explorePrivateKey(privateKey2) {
|
|
8
|
+
var privateKey1 = privateKey2.hidden;
|
|
9
|
+
var privateKey = typeof privateKey1 === "string" ? convertPEMtoDER(privateKey1) : privateKey1.export({ format: "der", type: "pkcs1" });
|
|
8
10
|
var block_info = readTag(privateKey, 0);
|
|
9
11
|
var blocks = _readStruct(privateKey, block_info);
|
|
10
12
|
if (blocks.length === 9) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explore_private_key.js","sourceRoot":"","sources":["../../source/explore_private_key.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAa,OAAO,EAAE,OAAO,EAA4B,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"explore_private_key.js","sourceRoot":"","sources":["../../source/explore_private_key.ts"],"names":[],"mappings":"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"}
|
package/dist-esm/source/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/index.ts"],"names":[],"mappings":"AA0BA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACxG,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/index.ts"],"names":[],"mappings":"AA0BA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACxG,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make_private_key_from_pem.js","sourceRoot":"","sources":["../../source/make_private_key_from_pem.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,qBAAqB,CAAC,eAAuB;IACzD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -5,8 +5,10 @@ if (typeof window === "undefined") {
|
|
|
5
5
|
_crypto = require("crypto");
|
|
6
6
|
if (!(_crypto === null || _crypto === void 0 ? void 0 : _crypto.subtle)) {
|
|
7
7
|
_crypto = new Crypto();
|
|
8
|
+
console.warn("using @peculiar/webcrypto");
|
|
8
9
|
}
|
|
9
10
|
else {
|
|
11
|
+
console.warn("using nodejs crypto (native)");
|
|
10
12
|
}
|
|
11
13
|
x509.cryptoProvider.set(_crypto);
|
|
12
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_crypto.js","sourceRoot":"","sources":["../../../source/x509/_crypto.ts"],"names":[],"mappings":"AAAA,IAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,IAAI,OAA2B,CAAC;AAKhC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAC/B,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,EAAE;QAClB,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"_crypto.js","sourceRoot":"","sources":["../../../source/x509/_crypto.ts"],"names":[],"mappings":"AAAA,IAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,IAAI,OAA2B,CAAC;AAKhC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAC/B,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,EAAE;QAClB,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;KAC7C;SAAM;QACH,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;KAChD;IACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;CACpC;KAAM;IAEH,OAAO,GAAG,MAAM,CAAC;IACjB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC;AAGD,MAAM,UAAU,SAAS;IACrB,OAAO,OAAO,IAAI,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC;AACD,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC"}
|
|
@@ -34,16 +34,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
34
34
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
+
import { createPrivateKey as createPrivateKeyFromNodeJSCrypto } from "crypto";
|
|
37
38
|
import { getCrypto } from "./_crypto";
|
|
38
39
|
import { derToPrivateKey, pemToPrivateKey } from "./create_key_pair";
|
|
39
|
-
import { createPrivateKey as createPrivateKeyFromNode } from "crypto";
|
|
40
40
|
var crypto = getCrypto();
|
|
41
41
|
var doDebug = false;
|
|
42
|
-
export function
|
|
43
|
-
if (typeof
|
|
44
|
-
|
|
42
|
+
export function coercePEMorDerToPrivateKey(privateKeyInDerOrPem) {
|
|
43
|
+
if (typeof privateKeyInDerOrPem === "string") {
|
|
44
|
+
var hidden = createPrivateKeyFromNodeJSCrypto(privateKeyInDerOrPem);
|
|
45
|
+
return { hidden: hidden };
|
|
45
46
|
}
|
|
46
|
-
|
|
47
|
+
throw new Error("not implemented");
|
|
47
48
|
}
|
|
48
49
|
export function _coercePrivateKey(privateKey) {
|
|
49
50
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coerce_private_key.js","sourceRoot":"","sources":["../../../source/x509/coerce_private_key.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"coerce_private_key.js","sourceRoot":"","sources":["../../../source/x509/coerce_private_key.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,EAAa,gBAAgB,IAAI,gCAAgC,EAAE,MAAM,QAAQ,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGrE,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAE3B,IAAM,OAAO,GAAG,KAAK,CAAC;AAGtB,MAAM,UAAU,0BAA0B,CAAC,oBAAoC;IAC3E,IAAI,OAAO,oBAAoB,KAAK,QAAQ,EAAE;QAC1C,IAAM,MAAM,GAAG,gCAAgC,CAAC,oBAAoB,CAAC,CAAC;QACtE,OAAO,EAAE,MAAM,QAAA,EAAC,CAAC;KACpB;IAED,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAEvC,CAAC;AAED,MAAM,UAAgB,iBAAiB,CAAC,UAAe;;;;;;oBAC7C,SAAS,GAAI,MAAc,CAAC,SAAS,CAAC;yBACxC,CAAA,UAAU,YAAY,MAAM,CAAA,EAA5B,cAA4B;oBACR,WAAM,eAAe,CAAC,UAAU,CAAC,EAAA;;oBAA/C,WAAW,GAAG,SAAiC;oBACrD,WAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAC;;yBAC5B,CAAA,OAAO,UAAU,KAAK,QAAQ,CAAA,EAA9B,cAA8B;;;;oBAGb,WAAM,eAAe,CAAC,UAAU,CAAC,EAAA;;oBAA/C,WAAW,GAAG,SAAiC;oBACrD,WAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAC;;;oBAEnC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACnC,MAAM,KAAG,CAAC;;;oBAEX,IAAI,UAAU,YAAY,SAAS,EAAE;wBACxC,WAAO,UAAU,EAAC;qBACrB;;wBACD,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;;;;CACzC"}
|
|
@@ -47,7 +47,7 @@ export function generatePrivateKeyFile(privateKeyFilename, modulusLength) {
|
|
|
47
47
|
return [4, privateKeyToPEM(keys.privateKey)];
|
|
48
48
|
case 2:
|
|
49
49
|
privateKeyPem = _a.sent();
|
|
50
|
-
return [4, fs.promises.writeFile(privateKeyFilename, privateKeyPem.privPem)];
|
|
50
|
+
return [4, fs.promises.writeFile(privateKeyFilename, privateKeyPem.privPem, "utf-8")];
|
|
51
51
|
case 3:
|
|
52
52
|
_a.sent();
|
|
53
53
|
privateKeyPem.privPem = "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate_private_key_filename.js","sourceRoot":"","sources":["../../source_nodejs/generate_private_key_filename.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEtE,MAAM,UAAgB,sBAAsB,CAAC,kBAA0B,EAAE,aAAwC;;;;;wBAChG,WAAM,eAAe,CAAC,aAAa,CAAC,EAAA;;oBAA3C,IAAI,GAAG,SAAoC;oBAC3B,WAAM,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAA;;oBAAtD,aAAa,GAAG,SAAsC;oBAC5D,WAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE,aAAa,CAAC,OAAO,CAAC,EAAA;;
|
|
1
|
+
{"version":3,"file":"generate_private_key_filename.js","sourceRoot":"","sources":["../../source_nodejs/generate_private_key_filename.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEtE,MAAM,UAAgB,sBAAsB,CAAC,kBAA0B,EAAE,aAAwC;;;;;wBAChG,WAAM,eAAe,CAAC,aAAa,CAAC,EAAA;;oBAA3C,IAAI,GAAG,SAAoC;oBAC3B,WAAM,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAA;;oBAAtD,aAAa,GAAG,SAAsC;oBAC5D,WAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,EAAA;;oBAA/E,SAA+E,CAAC;oBAChF,aAAa,CAAC,OAAO,GAAG,EAAE,CAAC;oBAC3B,aAAa,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;;;;;CAC7C"}
|
|
@@ -2,11 +2,11 @@ import assert from "assert";
|
|
|
2
2
|
import fs from "fs";
|
|
3
3
|
import path from "path";
|
|
4
4
|
import { createPrivateKey, createPublicKey } from "crypto";
|
|
5
|
-
import { convertPEMtoDER } from "../source/crypto_utils.js";
|
|
5
|
+
import { convertPEMtoDER, identifyPemType, removeTrailingLF, toPem } from "../source/crypto_utils.js";
|
|
6
6
|
var sshpk = require("sshpk");
|
|
7
7
|
function _readPemFile(filename) {
|
|
8
8
|
assert(typeof filename === "string");
|
|
9
|
-
return fs.readFileSync(filename, "
|
|
9
|
+
return removeTrailingLF(fs.readFileSync(filename, "utf-8"));
|
|
10
10
|
}
|
|
11
11
|
function _readPemOrDerFileAsDER(filename) {
|
|
12
12
|
if (filename.match(/.*\.der/)) {
|
|
@@ -29,11 +29,25 @@ export function readPublicKey(filename) {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
function myCreatePrivateKey(rawKey) {
|
|
32
|
+
if (!createPrivateKey || process.env.NO_CREATE_PRIVATEKEY) {
|
|
33
|
+
if (rawKey instanceof Buffer) {
|
|
34
|
+
var pemKey = toPem(rawKey, "PRIVATE KEY");
|
|
35
|
+
assert(["RSA PRIVATE KEY", "PRIVATE KEY"].indexOf(identifyPemType(pemKey)) >= 0);
|
|
36
|
+
return { hidden: pemKey };
|
|
37
|
+
}
|
|
38
|
+
return { hidden: ensureTrailingLF(rawKey) };
|
|
39
|
+
}
|
|
32
40
|
var backup = process.env.OPENSSL_CONF;
|
|
33
41
|
process.env.OPENSSL_CONF = "/dev/null";
|
|
34
42
|
var retValue = createPrivateKey(rawKey);
|
|
35
43
|
process.env.OPENSSL_CONF = backup;
|
|
36
|
-
return retValue;
|
|
44
|
+
return { hidden: retValue };
|
|
45
|
+
}
|
|
46
|
+
export function makePrivateKeyThumbPrint(privateKey) {
|
|
47
|
+
return Buffer.alloc(0);
|
|
48
|
+
}
|
|
49
|
+
function ensureTrailingLF(str) {
|
|
50
|
+
return str.match(/\n$/) ? str : str + "\n";
|
|
37
51
|
}
|
|
38
52
|
export function readPrivateKey(filename) {
|
|
39
53
|
if (filename.match(/.*\.der/)) {
|
|
@@ -61,19 +75,23 @@ export function setCertificateStore(store) {
|
|
|
61
75
|
return old_store;
|
|
62
76
|
}
|
|
63
77
|
export function readPrivateRsaKey(filename) {
|
|
78
|
+
if (!createPrivateKey) {
|
|
79
|
+
throw new Error("createPrivateKey is not supported in this environment");
|
|
80
|
+
}
|
|
64
81
|
if (filename.substring(0, 1) !== "." && !fs.existsSync(filename)) {
|
|
65
82
|
filename = __certificate_store + filename;
|
|
66
83
|
}
|
|
67
|
-
var content = fs.readFileSync(filename, "
|
|
84
|
+
var content = fs.readFileSync(filename, "utf8");
|
|
68
85
|
var sshKey = sshpk.parsePrivateKey(content, "auto");
|
|
69
86
|
var key = sshKey.toString("pkcs1");
|
|
70
|
-
|
|
87
|
+
var hidden = createPrivateKey({ format: "pem", type: "pkcs1", key: key });
|
|
88
|
+
return { hidden: hidden };
|
|
71
89
|
}
|
|
72
90
|
export function readPublicRsaKey(filename) {
|
|
73
91
|
if (filename.substring(0, 1) !== "." && !fs.existsSync(filename)) {
|
|
74
92
|
filename = __certificate_store + filename;
|
|
75
93
|
}
|
|
76
|
-
var content = fs.readFileSync(filename, "
|
|
94
|
+
var content = fs.readFileSync(filename, "utf-8");
|
|
77
95
|
var sshKey = sshpk.parseKey(content, "ssh");
|
|
78
96
|
var key = sshKey.toString("pkcs1");
|
|
79
97
|
return createPublicKey({ format: "pem", type: "pkcs1", key: key });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../source_nodejs/read.ts"],"names":[],"mappings":"AAuBA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../source_nodejs/read.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import { KeyObject } from "crypto";
|
|
4
|
-
export type PrivateKey =
|
|
4
|
+
export type PrivateKey = {
|
|
5
|
+
hidden: string;
|
|
6
|
+
} | {
|
|
7
|
+
hidden: KeyObject;
|
|
8
|
+
};
|
|
5
9
|
export type PublicKey = KeyObject;
|
|
6
10
|
export type Nonce = Buffer;
|
|
7
11
|
export type PEM = string;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import { KeyLike } from "crypto";
|
|
4
|
-
import { Certificate, CertificatePEM, DER, PEM,
|
|
4
|
+
import { Certificate, CertificatePEM, DER, PEM, PublicKeyPEM, Signature, PrivateKey } from "./common.js";
|
|
5
5
|
export declare function identifyPemType(rawKey: Buffer | string): undefined | string;
|
|
6
|
+
export declare function removeTrailingLF(str: string): string;
|
|
6
7
|
export declare function toPem(raw_key: Buffer | string, pem: string): string;
|
|
7
8
|
export declare function convertPEMtoDER(raw_key: PEM): DER;
|
|
8
9
|
export declare function hexDump(buffer: Buffer, width?: number): string;
|
|
@@ -42,11 +43,11 @@ export declare enum PaddingAlgorithm {
|
|
|
42
43
|
RSA_PKCS1_PADDING = 1
|
|
43
44
|
}
|
|
44
45
|
export declare function publicEncrypt_native(buffer: Buffer, publicKey: KeyLike, algorithm?: PaddingAlgorithm): Buffer;
|
|
45
|
-
export declare function privateDecrypt_native(buffer: Buffer, privateKey:
|
|
46
|
+
export declare function privateDecrypt_native(buffer: Buffer, privateKey: PrivateKey, algorithm?: PaddingAlgorithm): Buffer;
|
|
46
47
|
export declare const publicEncrypt: typeof publicEncrypt_native;
|
|
47
48
|
export declare const privateDecrypt: typeof privateDecrypt_native;
|
|
48
49
|
export declare function publicEncrypt_long(buffer: Buffer, publicKey: KeyLike, blockSize: number, padding: number, paddingAlgorithm?: PaddingAlgorithm): Buffer;
|
|
49
|
-
export declare function privateDecrypt_long(buffer: Buffer, privateKey:
|
|
50
|
+
export declare function privateDecrypt_long(buffer: Buffer, privateKey: PrivateKey, blockSize: number, paddingAlgorithm?: number): Buffer;
|
|
50
51
|
export declare function coerceCertificatePem(certificate: Certificate | CertificatePEM): CertificatePEM;
|
|
51
52
|
export declare function extractPublicKeyFromCertificateSync(certificate: Certificate | CertificatePEM): PublicKeyPEM;
|
|
52
53
|
/**
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
export declare function coercePrivateKeyPem(privateKey: PrivateKey | PrivateKeyPEM): PrivateKeyPEM;
|
|
3
|
+
import { KeyObject } from "crypto";
|
|
4
|
+
import { PublicKey, PublicKeyPEM, PrivateKeyPEM, PrivateKey } from "./common.js";
|
|
6
5
|
/***
|
|
7
6
|
* @method rsaLengthPrivateKey
|
|
8
7
|
* A very expensive way to determine the rsa key length ( i.e 2048bits or 1024bits)
|
|
9
8
|
* @param key a PEM public key or a PEM rsa private key
|
|
10
9
|
* @return the key length in bytes.
|
|
11
10
|
*/
|
|
12
|
-
export declare function rsaLengthPrivateKey(key:
|
|
11
|
+
export declare function rsaLengthPrivateKey(key: PrivateKey): number;
|
|
13
12
|
/**
|
|
14
13
|
* @method toPem2
|
|
15
14
|
* @param raw_key
|
|
@@ -18,10 +17,11 @@ export declare function rsaLengthPrivateKey(key: PrivateKeyPEM | PrivateKey): nu
|
|
|
18
17
|
*
|
|
19
18
|
* @return a PEM string containing the Private Key
|
|
20
19
|
*
|
|
21
|
-
* Note: a Pem key can be converted back to a
|
|
20
|
+
* Note: a Pem key can be converted back to a private key object using coercePrivateKey
|
|
22
21
|
*
|
|
23
22
|
*/
|
|
24
|
-
export declare function toPem2(raw_key: Buffer | string |
|
|
23
|
+
export declare function toPem2(raw_key: Buffer | string | KeyObject | PrivateKey, pem: string): string;
|
|
24
|
+
export declare function coercePrivateKeyPem(privateKey: PrivateKey): PrivateKeyPEM;
|
|
25
25
|
export declare function coercePublicKeyPem(publicKey: PublicKey | PublicKeyPEM): PublicKeyPEM;
|
|
26
26
|
export declare function coerceRsaPublicKeyPem(publicKey: PublicKey | PublicKeyPEM): PublicKeyPEM;
|
|
27
27
|
export declare function rsaLengthPublicKey(key: PublicKeyPEM | PublicKey): number;
|
|
@@ -26,4 +26,4 @@ export interface PrivateKeyInternals {
|
|
|
26
26
|
* otherPrimeInfos OtherPrimeInfos OPTIONAL
|
|
27
27
|
}
|
|
28
28
|
*/
|
|
29
|
-
export declare function explorePrivateKey(
|
|
29
|
+
export declare function explorePrivateKey(privateKey2: PrivateKey): PrivateKeyInternals;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
import { PrivateKey } from "../common";
|
|
3
|
-
|
|
4
|
-
export declare function
|
|
4
|
+
import { KeyObject } from "crypto";
|
|
5
|
+
export declare function coercePEMorDerToPrivateKey(privateKeyInDerOrPem: string | Buffer): PrivateKey;
|
|
6
|
+
export declare function _coercePrivateKey(privateKey: any): Promise<KeyObject>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Certificate, CertificatePEM, PublicKey, PublicKeyPEM, PrivateKeyPEM, PrivateKey } from "../source/common.js";
|
|
2
3
|
/**
|
|
3
4
|
* read a DER or PEM certificate from file
|
|
4
5
|
*/
|
|
@@ -7,12 +8,17 @@ export declare function readCertificate(filename: string): Certificate;
|
|
|
7
8
|
* read a DER or PEM certificate from file
|
|
8
9
|
*/
|
|
9
10
|
export declare function readPublicKey(filename: string): PublicKey;
|
|
11
|
+
export declare function makePrivateKeyThumbPrint(privateKey: PrivateKey): Buffer;
|
|
10
12
|
/**
|
|
11
13
|
* read a DER or PEM certificate from file
|
|
12
14
|
*/
|
|
13
15
|
export declare function readPrivateKey(filename: string): PrivateKey;
|
|
14
16
|
export declare function readCertificatePEM(filename: string): CertificatePEM;
|
|
15
17
|
export declare function readPublicKeyPEM(filename: string): PublicKeyPEM;
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @deprecated
|
|
21
|
+
*/
|
|
16
22
|
export declare function readPrivateKeyPEM(filename: string): PrivateKeyPEM;
|
|
17
23
|
export declare function setCertificateStore(store: string): string;
|
|
18
24
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-opcua-crypto",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Crypto tools for Node-OPCUA",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -28,7 +28,9 @@
|
|
|
28
28
|
"lint": "eslint . --ext .ts",
|
|
29
29
|
"test:esm": "mocha test -r ts-node/register -r source-map-support/register -R spec --recursive --timeout 200000 --bail",
|
|
30
30
|
"test:cjs": "mocha dist-test -r source-map-support/register -R spec --recursive --timeout 200000 --bail",
|
|
31
|
-
"test": "
|
|
31
|
+
"test:esm:no": "cross-env NO_CREATE_PRIVATEKEY=1 npm run test:esm",
|
|
32
|
+
"test:cjs:no": "cross-env NO_CREATE_PRIVATEKEY=1 npm run test:cjs",
|
|
33
|
+
"test": "npm run build:test && npm run test:esm && npm run test:cjs && npm run test:esm:no && npm run test:cjs:no",
|
|
32
34
|
"makedoc": "npx typedoc -out doc",
|
|
33
35
|
"cost-of-modules": "npx cost-of-modules --no-install",
|
|
34
36
|
"release-it": "npx release-it",
|
|
@@ -53,6 +55,7 @@
|
|
|
53
55
|
"@types/node": "^20.3.3",
|
|
54
56
|
"@typescript-eslint/eslint-plugin": "^5.60.1",
|
|
55
57
|
"@typescript-eslint/parser": "^5.60.1",
|
|
58
|
+
"cross-env": "^7.0.3",
|
|
56
59
|
"crypto": "^1.0.1",
|
|
57
60
|
"esbuild-plugin-polyfill-node": "^0.3.0",
|
|
58
61
|
"eslint": "^8.44.0",
|
|
@@ -73,6 +76,7 @@
|
|
|
73
76
|
"assert": "^2.0.0",
|
|
74
77
|
"better-assert": "^1.0.2",
|
|
75
78
|
"chalk": "^4.1.2",
|
|
79
|
+
"coveralls": "^3.1.1",
|
|
76
80
|
"hexy": "0.3.4",
|
|
77
81
|
"jsrsasign": "^10.8.6",
|
|
78
82
|
"sshpk": "^1.17.0"
|