Fork of openssl-nodejs by codevibess
openssl-node-js-promise
is a package which gives you a possibility to run every OpenSSL command in Node.js in a handy way. Moreover, parameters like -in, -keyin, -config and etc can be replaced by a raw data (Buffer).
npm install openssl-nodejs-promise
Import openssl module:
const openssl = require('openssl-nodejs-promise')
openssl(cmd, options).then((res) => ...)
The only supported option is the directory openssl-nodejs-promise
will write to.
the default is openssl
in the current directory.
const options = { dir: '/tmp/openssl' }
Next, invoke openssl function and put command with parameters inside a function like presented in the example below.
openssl('openssl req -config csr.cnf -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout key.key -out certificate.crt')
.then((buffer) => buffer.toString())
.catch(e => console.error(e.stack))
To get access to the result of execution specify callback function as the last parameter of openssl function (with arguments err and buffer).
openssl function can be invoked with a single parameter like OpenSSL command (see example above) or within an array with command name and parameters itself.
openssl(['req', '-config', 'csr.conf', '-out', 'CSR.csr', '-new', '-newkey', 'rsa:2048', '-nodes', '-keyout', 'privateKey.key');
If you want to specify Buffer text instead of the file as an input/output or whatever you need, use the version with an array as a function parameter. And put an object with keys: name: (specify a name of file which will be created to handle this command), and buffer: (your buffer variable) Example of object:
{ name:'csr.conf', buffer: BufferVariable }
Command example:
openssl(['req', '-config', { name:'csr.conf', buffer: BufferVariable }, '-out', 'CSR.csr', '-new', '-newkey', 'rsa:2048', '-nodes', '-keyout', 'privateKey.key']);
When you used a command which generates additional output in file format this package will create a folder openssl/ in the directory where the command was invoked. All output files will appear in this folder (openssl). Te output directory location can be overridden via the options
.