2014-10-27 18:15:23 -07:00
|
|
|
'use strict';
|
|
|
|
|
2014-10-29 14:34:59 -07:00
|
|
|
var cryptoUtils = copay.crypto;
|
2014-10-27 18:15:23 -07:00
|
|
|
var assert = require('assert');
|
|
|
|
describe('crypto utils', function() {
|
|
|
|
|
|
|
|
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);
|
|
|
|
});
|
|
|
|
|
2014-10-29 04:43:00 -07:00
|
|
|
var tests = [
|
|
|
|
{
|
|
|
|
salt: 'mjuBtGybi/4=',
|
|
|
|
iterations: 10,
|
|
|
|
word: '123456',
|
|
|
|
phrase: 'UUNLzkU5b2aT2/bIoyYwL3teyiFuRYEJtGCGQ0y0aEDciEtNCX0Wb73j4gmoCWl++epj6StBQg4SorTROZ2wFA==',
|
|
|
|
},{
|
|
|
|
salt: 'mjuBtGybi/4=',
|
|
|
|
iterations: 5,
|
|
|
|
word: '123456',
|
|
|
|
phrase: '+3uClcHrIU52WGHPHBwbIDFirhbiIORYTDPs9xFLiXAkR2dEVN9gNoGtqhBPdi9U47tPkPoRqZtqXDaeetXflQ==',
|
|
|
|
},{
|
|
|
|
salt: 'asklhehuhug24',
|
|
|
|
iterations: 5,
|
|
|
|
word: '123456',
|
|
|
|
phrase: 'lI82NmwibnUCHSQVQunv3aL0XCimZyFj/TZlHNIXV5Rzbf6TEj5L/335N/t7k2zUVub6XmMaWvufqmvSqA4znA==',
|
|
|
|
}
|
|
|
|
];
|
|
|
|
|
|
|
|
var test=0;
|
|
|
|
_.each(tests,function(t){
|
|
|
|
it('should generate a passphrase. Test case:' + test++,function(){
|
|
|
|
var phrase = cryptoUtils.kdf(t.word, t.salt, t.iterations);
|
|
|
|
phrase.should.equal(t.phrase);
|
|
|
|
});
|
2014-11-03 18:29:09 -08:00
|
|
|
it('should generate a passphrase from weird chars', function() {
|
2014-11-10 17:58:46 -08:00
|
|
|
var phrase = cryptoUtils.kdf('Pwd123!@#$%^&*(){}[]\|/?.>,<=+-_`~åéþ䲤þçæ¶', tests[0].salt, 100);
|
2014-11-04 06:47:38 -08:00
|
|
|
var expected = 'CZwb5KdikvZHVsEoZUdJckAy+yyzGnd++XhyqxJXbc30'
|
|
|
|
+ 'pEoO+WqHgqBbdf0gn2wiyWZv3zymB+7L75Xnz3uSlg==';
|
|
|
|
phrase.should.equal(expected);
|
2014-11-03 18:29:09 -08:00
|
|
|
});
|
2014-10-29 04:43:00 -07:00
|
|
|
});
|
|
|
|
|
|
|
|
|
2014-10-27 18:15:23 -07:00
|
|
|
});
|