nscrypto
v1.1.0
Published
Node.js bindings for nscrypto-cpp
Readme
node-nscrypto
Wrapper around nscrypto-cpp.
PREREQUISITES
- A relatively recent Node or io.js version (tested with [email protected][02] and io.js@latest).
- A C++11 compiler.
- A recent OpenSSL library. If you're on Mac OS X: Apple has deprecated OpenSSL in favor of its own TLS and crypto libraries, and you should look at Homebrew to install a recent OpenSSL version.
INSTALLATION
From the NPM repository:
$ npm install nscryptoFrom Github (don't rely on this for stability):
$ npm install nowsecure/node-nscryptoOr clone the repository and build it directly:
$ git clone https://github.com/nowsecure/node-nscrypto.git
$ cd node-nscrypto
$ npm installFor installations on Mac OS X, the default assumption is that you use a Homebrew-installed OpenSSL library that is installed in /usr/local/opt/openssl/. If you have OpenSSL installed somewhere else, you can override the library and include paths:
$ env OPENSSL_INCLUDE_DIR=/path/to/include/dir OPENSSL_LIB_DIR=/path/to/lib/dir npm install nscryptoAPI
All API calls require the nscrypto module to be loaded:
var nscrypto = require('nscrypto');Key generation (ref)
nscrypto.generateKeyPair() : ObjectThe returned object has two properties of type Buffer:
public: the generated public keyprivate: the generated private key
Encryption (ref)
nscrypto.{client,server}.encrypt(
sPriv : Buffer,
rPub : Buffer,
sId : String,
rId : String,
plaintext : Buffer
) : ObjectReturned object has two properties:
enc: the encrypted dataeph: the ephemeral key
Decryption (ref)
nscrypto.{client,server}.decrypt(
rPriv : Buffer,
sPub : Buffer,
sId : String,
rId : String,
encrypted : Object
) : Buffermessage is an object as the one returned by the encryption functions, having enc and eph properties.
The returned Buffer is the decrypted plaintext.
CHANGELOG
- 1.1.0 : Make OpenSSL library/include paths overridable on Mac OS X
- 1.0.0 : Initial release
SEE ALSO
AUTHOR
Robert Klep <[email protected]>
LICENCE
See LICENSE.md.
