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.
52 lines
1.6 KiB
52 lines
1.6 KiB
var ECIES = require('../lib/expmt/ecies');
|
|
var should = require('chai').should();
|
|
var Keypair = require('../lib/keypair');
|
|
var Hash = require('../lib/hash');
|
|
|
|
describe('#ECIES', function() {
|
|
|
|
it('should make a new ECIES object', function() {
|
|
var ecies = new ECIES();
|
|
should.exist(ecies);
|
|
});
|
|
|
|
it('should make a new ECIES object when called without "new"', function() {
|
|
var ecies = ECIES();
|
|
should.exist(ecies);
|
|
});
|
|
|
|
var fromkey = Keypair().fromRandom();
|
|
var tokey = Keypair().fromRandom();
|
|
var messagebuf = Hash.sha256(new Buffer('my message is the hash of this string'));
|
|
|
|
describe('@encrypt', function() {
|
|
|
|
it('should return a buffer', function() {
|
|
var encbuf = ECIES.encrypt(messagebuf, tokey.pubkey, fromkey);
|
|
Buffer.isBuffer(encbuf).should.equal(true);
|
|
});
|
|
|
|
it('should return a buffer if fromkey is not present', function() {
|
|
var encbuf = ECIES.encrypt(messagebuf, tokey.pubkey);
|
|
Buffer.isBuffer(encbuf).should.equal(true);
|
|
});
|
|
|
|
});
|
|
|
|
describe('@decrypt', function() {
|
|
|
|
it('should decrypt that which was encrypted', function() {
|
|
var encbuf = ECIES.encrypt(messagebuf, tokey.pubkey, fromkey);
|
|
var messagebuf2 = ECIES.decrypt(encbuf, tokey.privkey);
|
|
messagebuf2.toString('hex').should.equal(messagebuf.toString('hex'));
|
|
});
|
|
|
|
it('should decrypt that which was encrypted if fromkeypair was randomly generated', function() {
|
|
var encbuf = ECIES.encrypt(messagebuf, tokey.pubkey);
|
|
var messagebuf2 = ECIES.decrypt(encbuf, tokey.privkey);
|
|
messagebuf2.toString('hex').should.equal(messagebuf.toString('hex'));
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|