Compare commits

..

No commits in common. "master" and "v2.0.5" have entirely different histories.

6 changed files with 56 additions and 29 deletions

View File

@ -48,10 +48,11 @@ module.exports = function (bitlen, exp) {
try { try {
return require('./generate-privkey-forge.js')(bitlen, exp); return require('./generate-privkey-forge.js')(bitlen, exp);
} catch(e) { } catch(e) {
if (e.code !== 'MODULE_NOT_FOUND') {
throw e;
}
console.error("[ERROR] rsa-compat: could not generate a private key."); console.error("[ERROR] rsa-compat: could not generate a private key.");
console.error("None of crypto.generateKeyPair, ursa, nor node-forge are present"); console.error("None of crypto.generateKeyPair, ursa, nor node-forge are present");
console.error("");
throw e;
} }
} }
} }

View File

@ -171,7 +171,7 @@ Rather than trying to make a generic implementation that works with everything u
this library is intentionally focused on around the use case of generating certificates for this library is intentionally focused on around the use case of generating certificates for
ACME services (such as Let's Encrypt). ACME services (such as Let's Encrypt).
That said, [please tell me](https://git.coolaj86.com/coolaj86/rsa-csr.js/issues/new) if it doesn't That said, [please tell me](https://git.coolaj86.com/coolaj86/rsa-csr.js/issues) if it doesn't
do what you need, it may make sense to add it (or otherwise, perhaps to help you create a fork). do what you need, it may make sense to add it (or otherwise, perhaps to help you create a fork).
The primary goal of this project is for this code to do exactly (and all of) The primary goal of this project is for this code to do exactly (and all of)

View File

@ -15,13 +15,9 @@ try {
// ignore // ignore
} }
var csr = rsacsr.sync({ key: key, domains: domains }); rsacsr({ key: key, domains: domains }).then(function (csr) {
console.log(csr);
/*
.then(function (csr) {
// Using error so that we can redirect stdout to file // Using error so that we can redirect stdout to file
//console.error("CN=" + domains[0]); //console.error("CN=" + domains[0]);
//console.error("subjectAltName=" + domains.join(',')); //console.error("subjectAltName=" + domains.join(','));
console.log(csr); console.log(csr);
}); });
*/

View File

@ -136,14 +136,14 @@ CSR.toDer = function encode(opts) {
RSA.signSync = function signRsaSync(keypem, ab) { RSA.signSync = function signRsaSync(keypem, ab) {
// Signer is a stream // Signer is a stream
var sign = crypto.createSign('SHA256'); var sign = crypto.createSign('SHA256');
sign.write(ab); sign.write(new Uint8Array(ab));
sign.end(); sign.end();
// The signature is ASN1 encoded, as it turns out // The signature is ASN1 encoded, as it turns out
var sig = sign.sign(keypem); var sig = sign.sign(keypem);
// Convert to a JavaScript ArrayBuffer just because // Convert to a JavaScript ArrayBuffer just because
return sig.buffer.slice(sig.byteOffset, sig.byteOffset + sig.byteLength); return new Uint8Array(sig.buffer.slice(sig.byteOffset, sig.byteOffset + sig.byteLength));
}; };
RSA.sign = function signRsa(keypem, ab) { RSA.sign = function signRsa(keypem, ab) {
return Promise.resolve().then(function () { return Promise.resolve().then(function () {

View File

@ -1,34 +1,64 @@
{ {
"name": "rsa-csr", "_from": "rsa-csr",
"version": "1.0.7", "_id": "rsa-csr@1.0.5",
"description": "💯 A focused, zero-dependency library to generate a Certificate Signing Request (CSR) and sign it!", "_inBundle": false,
"homepage": "https://git.coolaj86.com/coolaj86/rsa-csr.js", "_integrity": "sha512-rmQY0RmcpLdsXEJgE1S2xBam09YVggDIqBGCJNFkhD6ONkmpSGjZ+28J6gWy+ygKHHgC7Z+OpzDLVQYowOte3A==",
"main": "index.js", "_location": "/rsa-csr",
"_phantomChildren": {},
"_requested": {
"type": "tag",
"registry": true,
"raw": "rsa-csr",
"name": "rsa-csr",
"escapedName": "rsa-csr",
"rawSpec": "",
"saveSpec": null,
"fetchSpec": "latest"
},
"_requiredBy": [
"#USER",
"/"
],
"_resolved": "https://registry.npmjs.org/rsa-csr/-/rsa-csr-1.0.5.tgz",
"_shasum": "ac427ae3aa16089f5f26fc93047a7d2d844b0bf4",
"_spec": "rsa-csr",
"_where": "/Volumes/Data/git.coolaj86.com/coolaj86/rsa-compat.js",
"author": {
"name": "AJ ONeal",
"email": "coolaj86@gmail.com",
"url": "https://coolaj86.com/"
},
"bin": { "bin": {
"rsa-csr": "bin/rsa-csr.js" "rsa-csr": "bin/rsa-csr.js"
}, },
"bundleDependencies": false,
"deprecated": false,
"description": "💯 A focused, zero-dependency library to generate a Certificate Signing Request (CSR) and sign it!",
"directories": {
"lib": "lib"
},
"files": [ "files": [
"bin", "bin",
"fixtures", "fixtures",
"lib" "lib"
], ],
"directories": { "homepage": "https://git.coolaj86.com/coolaj86/rsa-csr.js",
"lib": "lib"
},
"scripts": {
"postinstall": "node lib/telemetry.js event:install",
"test": "bash test.sh"
},
"repository": {
"type": "git",
"url": "https://git.coolaj86.com/coolaj86/rsa-csr.js"
},
"keywords": [ "keywords": [
"zero-dependency", "zero-dependency",
"CSR", "CSR",
"RSA", "RSA",
"x509" "x509"
], ],
"author": "AJ ONeal <coolaj86@gmail.com> (https://coolaj86.com/)", "license": "MPL-2.0",
"license": "MPL-2.0" "main": "index.js",
"name": "rsa-csr",
"repository": {
"type": "git",
"url": "https://git.coolaj86.com/coolaj86/rsa-csr.js"
},
"scripts": {
"postinstall": "node lib/telemetry.js event:install",
"test": "bash test.sh"
},
"version": "1.0.5"
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "rsa-compat", "name": "rsa-compat",
"version": "2.0.8", "version": "2.0.5",
"engines": { "engines": {
"node": ">=10.12" "node": ">=10.12"
}, },