node package manager

Introducing npm Enterprise add-ons. Integrate third-party dev tools into npm…


A wrapper for OpenSSL's rsautl

A thin wrapper for OpenSSL's rsautl(1) for those precious few cases where native bindings won't work.

$ npm install rsautl
var rsautl = require('rsautl');
var privateKey = '...'; 
var publicKey = '...';
rsautl.encrypt('Encrypt me please!', publicKey, function (err, encrypted) {
    // encrypted contains a base64 encoded encrypted string 
    if (err) return console.log(err);
    rsautl.decrypt(encrypted, privateKey, function (err, decrypted) {
        if (err) return console.log(err);
        console.log(decrypted); // Encrypt me please!     
rsautl.sign('Sign me please!', privateKey, function (err, signed) {
    // signed contains a base64 encoded signed string 
    if (err) return console.log(err);
    rsautl.verify(signed, publicKey, function (err, verified) {
        if (err) return console.log(err);
        console.log(verified); // Sign me please!     

This code writes private keys to temporary files in order for openssl(1) to read them. Make sure your tempfs is based in memory. If you can, use native binding implementations.

This is free software released under the Simplified BSD License. See the LICENSE file for further information.