Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

openssl-nodejs-promise

peteroreil72MIT0.0.4

Promisified openssl library

openssl, ssl, certificate, rsa, encrypt, decrypt, verify, public key, private key, sign, openssl nodejs, node openssl, nodejs openssl, key generation, config, crs, x509, pkcs12, pkcs10, ssl, tls, aws, lambda

readme

openssl-nodejs-promise

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).

Installation & Usage

npm install openssl-nodejs-promise

Import openssl module:

const openssl = require('openssl-nodejs-promise')
openssl(cmd, options).then((res) => ...)

Supported Options

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.