You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.2 KiB
44 lines
1.2 KiB
10 years ago
|
# > `bitcore-ecies`
|
||
|
|
||
|
## Description
|
||
|
|
||
|
Bitcore implements [Elliptic Curve Integrated Encryption Scheme (ECIES)](http://en.wikipedia.org/wiki/Integrated_Encryption_Scheme), which is a public key encryption system that performs bulk encryption on data usinc a symmetric cipher and a random key.
|
||
|
|
||
|
For more information refer to the [bitcore-ecies](https://github.com/bitpay/bitcore-ecies) github repo.
|
||
|
|
||
|
## Instalation
|
||
|
|
||
|
ECIES is implemented as a separate module and you must add it to your dependencies:
|
||
|
|
||
|
For node projects:
|
||
|
```
|
||
|
npm install bitcore-ecies --save
|
||
|
```
|
||
|
|
||
|
For client-side projects:
|
||
|
```
|
||
|
bower install bitcore-ecies --save
|
||
|
```
|
||
|
|
||
|
## Example
|
||
|
|
||
|
```
|
||
|
var bitcore = require('bitcore');
|
||
|
var ECIES = require('bitcore-ecies');
|
||
|
|
||
|
var alicePrivateKey = new bitcore.PrivateKey();
|
||
|
var bobPrivateKey = new bitcore.PrivateKey();
|
||
|
|
||
|
var data = new Buffer('The is a raw data example');
|
||
|
|
||
|
// Encrypt data
|
||
|
var cypher1 = ECIES.privateKey(alicePrivateKey).publicKey(bobPrivateKey.publicKey);
|
||
|
var encrypted = cypher.encrypt(data);
|
||
|
|
||
|
// Decrypt data
|
||
|
var cypher2 = ECIES.privateKey(bobPrivateKey).publicKey(alicePrivateKey.publicKey);
|
||
|
var decrypted = cypher.decrypt(encrypted);
|
||
|
|
||
|
assert(data.toString(), decrypted.toString());
|
||
|
```
|