https://github.com/nowsecure/node-nscrypto
Node.js bindings for nscrypto-cpp
https://github.com/nowsecure/node-nscrypto
Last synced: 6 months ago
JSON representation
Node.js bindings for nscrypto-cpp
- Host: GitHub
- URL: https://github.com/nowsecure/node-nscrypto
- Owner: nowsecure
- License: mit
- Created: 2015-03-30T13:18:59.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2015-04-01T08:17:32.000Z (almost 11 years ago)
- Last Synced: 2025-03-24T01:25:33.461Z (10 months ago)
- Language: C++
- Homepage:
- Size: 150 KB
- Stars: 11
- Watchers: 5
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# node-nscrypto
Wrapper around [nscrypto-cpp](https://github.com/nowsecure/nscrypto-cpp).
[](https://travis-ci.org/nowsecure/node-nscrypto)
## PREREQUISITES
* A relatively recent Node or io.js version (tested with Node@0.1[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](http://brew.sh/) to install a recent OpenSSL version.
## INSTALLATION
From the NPM repository:
```
$ npm install nscrypto
```
From Github (don't rely on this for stability):
```
$ npm install nowsecure/node-nscrypto
```
Or clone the repository and build it directly:
```
$ git clone https://github.com/nowsecure/node-nscrypto.git
$ cd node-nscrypto
$ npm install
```
For 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 nscrypto
```
## API
All API calls require the `nscrypto` module to be loaded:
```
var nscrypto = require('nscrypto');
```
### Key generation ([ref](https://github.com/nowsecure/nscrypto-cpp#key-generation))
```
nscrypto.generateKeyPair() : Object
```
The returned object has two properties of type `Buffer`:
* `public`: the generated public key
* `private`: the generated private key
### Encryption ([ref](https://github.com/nowsecure/nscrypto-cpp#encryption-and-decryption))
```
nscrypto.{client,server}.encrypt(
sPriv : Buffer,
rPub : Buffer,
sId : String,
rId : String,
plaintext : Buffer
) : Object
```
Returned object has two properties:
* `enc`: the encrypted data
* `eph`: the ephemeral key
### Decryption ([ref](https://github.com/nowsecure/nscrypto-cpp#encryption-and-decryption))
```
nscrypto.{client,server}.decrypt(
rPriv : Buffer,
sPub : Buffer,
sId : String,
rId : String,
encrypted : Object
) : Buffer
```
`message` 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
[nscrypto-cpp](https://github.com/nowsecure/nscrypto-cpp#nscrypto-cpp)
## AUTHOR
Robert Klep <>
## LICENCE
See [LICENSE.md](LICENSE.md).