Socket
Book a DemoInstallSign in
Socket

forsake

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

forsake

For RSA sake! Native bindings for rsautl functions

latest
Source
npmnpm
Version
0.1.5
Version published
Weekly downloads
2
Maintainers
1
Weekly downloads
 
Created
Source

Forsake

For RSA sake! Exposes openssl rsautl funtions via a C addon rather than shelling out.

Linux Build Status Windows Build status NPM version

Installation

$ npm install forsake

:warning: on Windows, either a 32-bit or 64-bit separately-compiled OpenSSL library is required. One can be obtained from slproweb.

API

n.b. all keys are Buffer instances

var forsake = require('forsake');

// sign
var a = forsake.sign('this string', private_key);

// with passphrase
var protected_pkey = { key: private_key, passphrase: 'hello' };
var b = forsake.sign('this string', protected_pkey);

// with padding
var c = forsake.sign('this string', pkey, forsake.RSA_X931_PADDING);

// errors
try {
    forsake.sign('this string', public_key);
} catch (e) {
    e.toString(); //=> "RsaError: Unable to load private key"
    e.failures;   //=> [ 'error:0906D06C:PEM routines:PEM_read_bio:no start line' ]
}

Notes

  • The API for encrypt, decrypt, sign and verify is identical
  • All errors are of type RsaError which is exposed by forsake
  • RsaError.failures contains SSL error strings, which can help identify problems

Keys

The examples below show all possible types of supported key arguments:

var buffer_from_file = fs.readFileSync('id_rsa');
var utf8_string = "-----BEGIN PUBLIC KEY-----\nblah\n-----END PUBLIC KEY-----";
var protected_buffer = { key: buf_from_file, passphrase: 'opensesame' };
var protected_utf8 = { key: utf8_string, passphrase: 'Alohomora' };

Padding

Forsake exposes the following padding constants:

  • RSA_NO_PADDING
  • RSA_PKCS1_OAEP_PADDING
  • RSA_PKCS1_PADDING
  • RSA_SSLV23_PADDING
  • RSA_X931_PADDING

Support

Forsake is able to read PKCS#8, PKCS#1 and X.509 public keys, and PKCS#8 private keys. Passphrases can be used with private keys and the standard padding options are also available.

License

ISC

Keywords

decrypt

FAQs

Package last updated on 29 May 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts