Wallet/test/util.crypto.js
2014-10-28 15:00:57 -03:00

36 lines
1.1 KiB
JavaScript

'use strict';
var cryptoUtils = require('../js/util/crypto');
var assert = require('assert');
describe('crypto utils', function() {
it('should use pbkdf2 to generate a passphrase from password', function() {
var salt = 'mjuBtGybi/4=';
var iterations = 10;
var pass = '123456';
var passphrase = cryptoUtils.kdf(pass, salt, iterations);
passphrase.toString().should.equal('IoP+EbmhibgvHAkgCAaSDL3Y73UvU96pEPkKtSb0Qazb1RKFVWR6fjkKGp/qBCImljzND3hRAws9bigszrqhfg==');
});
it('should decrypt what it encrypts', function() {
var key = 'My secret key';
var message = 'My secret message';
var encrypted = cryptoUtils.encrypt(key, message);
var decrypted = cryptoUtils.decrypt(key, encrypted);
decrypted.should.equal(message);
});
it('should return null if the provided key cant decrypt', function() {
var key = 'My secret key';
var message = 'My secret message';
var encrypted = cryptoUtils.encrypt(key, message);
var decrypted = cryptoUtils.decrypt('Invalid key', encrypted);
assert(decrypted === null);
});
});