make Prettier
This commit is contained in:
parent
76f98f7c7e
commit
8e2763ecd6
|
@ -5,25 +5,27 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
module.exports = function(bitlen, exp) {
|
module.exports = function(bitlen, exp) {
|
||||||
var k = require('node-forge').pki.rsa
|
var k = require('node-forge').pki.rsa.generateKeyPair({
|
||||||
.generateKeyPair({ bits: bitlen || 2048, e: exp || 0x10001 }).privateKey;
|
bits: bitlen || 2048,
|
||||||
|
e: exp || 0x10001
|
||||||
|
}).privateKey;
|
||||||
var jwk = {
|
var jwk = {
|
||||||
kty: "RSA"
|
kty: 'RSA',
|
||||||
, n: _toUrlBase64(k.n)
|
n: _toUrlBase64(k.n),
|
||||||
, e: _toUrlBase64(k.e)
|
e: _toUrlBase64(k.e),
|
||||||
, d: _toUrlBase64(k.d)
|
d: _toUrlBase64(k.d),
|
||||||
, p: _toUrlBase64(k.p)
|
p: _toUrlBase64(k.p),
|
||||||
, q: _toUrlBase64(k.q)
|
q: _toUrlBase64(k.q),
|
||||||
, dp: _toUrlBase64(k.dP)
|
dp: _toUrlBase64(k.dP),
|
||||||
, dq: _toUrlBase64(k.dQ)
|
dq: _toUrlBase64(k.dQ),
|
||||||
, qi: _toUrlBase64(k.qInv)
|
qi: _toUrlBase64(k.qInv)
|
||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
private: jwk
|
private: jwk,
|
||||||
, public: {
|
public: {
|
||||||
kty: jwk.kty
|
kty: jwk.kty,
|
||||||
, n: jwk.n
|
n: jwk.n,
|
||||||
, e: jwk.e
|
e: jwk.e
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -37,11 +39,11 @@ function _toUrlBase64(fbn) {
|
||||||
while ('00' === hex.slice(0, 2)) {
|
while ('00' === hex.slice(0, 2)) {
|
||||||
hex = hex.slice(2);
|
hex = hex.slice(2);
|
||||||
}
|
}
|
||||||
return Buffer.from(hex, 'hex').toString('base64')
|
return Buffer.from(hex, 'hex')
|
||||||
.replace(/\+/g, "-")
|
.toString('base64')
|
||||||
.replace(/\//g, "_")
|
.replace(/\+/g, '-')
|
||||||
.replace(/=/g,"")
|
.replace(/\//g, '_')
|
||||||
;
|
.replace(/=/g, '');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
|
|
|
@ -5,14 +5,12 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
module.exports = function(bitlen, exp) {
|
module.exports = function(bitlen, exp) {
|
||||||
var keypair = require('crypto').generateKeyPairSync(
|
var keypair = require('crypto').generateKeyPairSync('rsa', {
|
||||||
'rsa'
|
modulusLength: bitlen,
|
||||||
, { modulusLength: bitlen
|
publicExponent: exp,
|
||||||
, publicExponent: exp
|
privateKeyEncoding: { type: 'pkcs1', format: 'pem' },
|
||||||
, privateKeyEncoding: { type: 'pkcs1', format: 'pem' }
|
publicKeyEncoding: { type: 'pkcs1', format: 'pem' }
|
||||||
, publicKeyEncoding: { type: 'pkcs1', format: 'pem' }
|
});
|
||||||
}
|
|
||||||
);
|
|
||||||
var result = { privateKeyPem: keypair.privateKey.trim() };
|
var result = { privateKeyPem: keypair.privateKey.trim() };
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,7 +12,12 @@ module.exports = function (bitlen, exp) {
|
||||||
ursa = require('ursa-optional');
|
ursa = require('ursa-optional');
|
||||||
}
|
}
|
||||||
var keypair = ursa.generatePrivateKey(bitlen, exp);
|
var keypair = ursa.generatePrivateKey(bitlen, exp);
|
||||||
var result = { privateKeyPem: keypair.toPrivatePem().toString('ascii').trim() };
|
var result = {
|
||||||
|
privateKeyPem: keypair
|
||||||
|
.toPrivatePem()
|
||||||
|
.toString('ascii')
|
||||||
|
.trim()
|
||||||
|
};
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -20,29 +20,51 @@ module.exports = function (bitlen, exp) {
|
||||||
return require('./generate-privkey-ursa.js')(bitlen, exp);
|
return require('./generate-privkey-ursa.js')(bitlen, exp);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (e.code !== 'MODULE_NOT_FOUND') {
|
if (e.code !== 'MODULE_NOT_FOUND') {
|
||||||
console.error("[rsa-compat] Unexpected error when using 'ursa':");
|
console.error(
|
||||||
|
"[rsa-compat] Unexpected error when using 'ursa':"
|
||||||
|
);
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
if (!oldver) {
|
if (!oldver) {
|
||||||
oldver = true;
|
oldver = true;
|
||||||
console.warn("[WARN] rsa-compat: Your version of node does not have crypto.generateKeyPair()");
|
console.warn(
|
||||||
console.warn("[WARN] rsa-compat: Please update to node >= v10.12 or 'npm install --save ursa node-forge'");
|
'[WARN] rsa-compat: Your version of node does not have crypto.generateKeyPair()'
|
||||||
console.warn("[WARN] rsa-compat: Using node-forge as a fallback may be unacceptably slow.");
|
);
|
||||||
|
console.warn(
|
||||||
|
"[WARN] rsa-compat: Please update to node >= v10.12 or 'npm install --save ursa node-forge'"
|
||||||
|
);
|
||||||
|
console.warn(
|
||||||
|
'[WARN] rsa-compat: Using node-forge as a fallback may be unacceptably slow.'
|
||||||
|
);
|
||||||
if (/arm|mips/i.test(require('os').arch)) {
|
if (/arm|mips/i.test(require('os').arch)) {
|
||||||
console.warn("================================================================");
|
console.warn(
|
||||||
console.warn(" WARNING");
|
'================================================================'
|
||||||
console.warn("================================================================");
|
);
|
||||||
console.warn("");
|
console.warn(' WARNING');
|
||||||
console.warn("WARNING: You are generating an RSA key using pure JavaScript on");
|
console.warn(
|
||||||
console.warn(" a VERY SLOW cpu. This could take DOZENS of minutes!");
|
'================================================================'
|
||||||
console.warn("");
|
);
|
||||||
console.warn(" We recommend installing node >= v10.12, or 'gcc' and 'ursa'");
|
console.warn('');
|
||||||
console.warn("");
|
console.warn(
|
||||||
console.warn("EXAMPLE:");
|
'WARNING: You are generating an RSA key using pure JavaScript on'
|
||||||
console.warn("");
|
);
|
||||||
console.warn(" sudo apt-get install build-essential && npm install ursa");
|
console.warn(
|
||||||
console.warn("");
|
' a VERY SLOW cpu. This could take DOZENS of minutes!'
|
||||||
console.warn("================================================================");
|
);
|
||||||
|
console.warn('');
|
||||||
|
console.warn(
|
||||||
|
" We recommend installing node >= v10.12, or 'gcc' and 'ursa'"
|
||||||
|
);
|
||||||
|
console.warn('');
|
||||||
|
console.warn('EXAMPLE:');
|
||||||
|
console.warn('');
|
||||||
|
console.warn(
|
||||||
|
' sudo apt-get install build-essential && npm install ursa'
|
||||||
|
);
|
||||||
|
console.warn('');
|
||||||
|
console.warn(
|
||||||
|
'================================================================'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
@ -51,8 +73,12 @@ module.exports = function (bitlen, exp) {
|
||||||
if (e.code !== 'MODULE_NOT_FOUND') {
|
if (e.code !== 'MODULE_NOT_FOUND') {
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
console.error("[ERROR] rsa-compat: could not generate a private key.");
|
console.error(
|
||||||
console.error("None of crypto.generateKeyPair, ursa, nor node-forge are present");
|
'[ERROR] rsa-compat: could not generate a private key.'
|
||||||
|
);
|
||||||
|
console.error(
|
||||||
|
'None of crypto.generateKeyPair, ursa, nor node-forge are present'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue