From fbf021cd096fba3ce17bbfd239260c2f0654c0c2 Mon Sep 17 00:00:00 2001 From: Ivan Socolsky Date: Tue, 26 Aug 2014 13:02:02 -0300 Subject: [PATCH] Add tests for passphrase --- js/models/core/Passphrase.js | 2 ++ package.json | 3 ++- test/test.Passphrase.js | 20 ++++++++++++++++++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/js/models/core/Passphrase.js b/js/models/core/Passphrase.js index 358b21682..04485596c 100644 --- a/js/models/core/Passphrase.js +++ b/js/models/core/Passphrase.js @@ -1,5 +1,7 @@ 'use strict'; +var CryptoJS = CryptoJS || require('crypto-js'); + function Passphrase(config) { config = config || {}; this.salt = config.salt || 'mjuBtGybi/4='; diff --git a/package.json b/package.json index 61b315609..7e3c57632 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,8 @@ "mock-fs": "^2.3.1", "node-cryptojs-aes": "0.4.0", "travis-cov": "0.2.5", - "uglifyify": "1.2.3" + "uglifyify": "1.2.3", + "crypto-js": "3.1.2" }, "main": "app.js", "homepage": "https://github.com/bitpay/copay", diff --git a/test/test.Passphrase.js b/test/test.Passphrase.js index bad60109f..54e61726b 100644 --- a/test/test.Passphrase.js +++ b/test/test.Passphrase.js @@ -11,8 +11,6 @@ try { } var Passphrase = copay.Passphrase; - - describe('Passphrase model', function() { it('should create an instance', function() { @@ -20,4 +18,22 @@ describe('Passphrase model', function() { should.exist(p); }); + it('should generate key from password', function () { + var p = new Passphrase({ + salt: 'mjuBtGybi/4=', + iterations: 10, + }); + var pass = '123456'; + var k = p.get(pass); + var k64 = p.getBase64(pass); + + // Note: hashes were generated using CryptoJS + k.toString().should.equal('2283fe11b9a189b82f1c09200806920cbdd8ef752f53dea910f90ab526f441acdbd5128555647a7e390a1a9fea042226963ccd0f7851030b3d6e282ccebaa17e'); + k64.toString().should.equal('IoP+EbmhibgvHAkgCAaSDL3Y73UvU96pEPkKtSb0Qazb1RKFVWR6fjkKGp/qBCImljzND3hRAws9bigszrqhfg=='); + + p.getBase64Async(pass, function (ret) { + ret.toString().should.equal('IoP+EbmhibgvHAkgCAaSDL3Y73UvU96pEPkKtSb0Qazb1RKFVWR6fjkKGp/qBCImljzND3hRAws9bigszrqhfg=='); + }); + }); + });