From 05c8658ff343af61b1a40a5624ecba77adb2ef00 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Tue, 22 Nov 2016 17:40:29 -0800 Subject: [PATCH] Fix new encryptor migration logic --- app/scripts/keyring-controller.js | 4 ++-- app/scripts/lib/encryptor.js | 1 - test/integration/lib/keyring-controller-test.js | 11 +++++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/scripts/keyring-controller.js b/app/scripts/keyring-controller.js index 141a1281a..68cf62f7a 100644 --- a/app/scripts/keyring-controller.js +++ b/app/scripts/keyring-controller.js @@ -118,6 +118,7 @@ module.exports = class KeyringController extends EventEmitter { return this.idStoreMigrator.migratedVaultForPassword(password) .then((serialized) => { if (serialized && shouldMigrate) { + this.password = password const keyring = this.restoreKeyring(serialized) this.keyrings.push(keyring) this.configManager.setSelectedAccount(keyring.getAccounts()[0]) @@ -185,7 +186,6 @@ module.exports = class KeyringController extends EventEmitter { cb(null, this.getState()) }) .catch((err) => { - console.error(err) cb(err) }) } @@ -558,7 +558,7 @@ module.exports = class KeyringController extends EventEmitter { } setLocked (cb) { - this.key = null + this.password = null this.keyrings = [] this.emit('update') cb() diff --git a/app/scripts/lib/encryptor.js b/app/scripts/lib/encryptor.js index 8bacab766..4770d2f54 100644 --- a/app/scripts/lib/encryptor.js +++ b/app/scripts/lib/encryptor.js @@ -42,7 +42,6 @@ function encryptWithKey (key, dataObj) { var data = JSON.stringify(dataObj) var dataBuffer = convertStringToArrayBufferView(data) var vector = global.crypto.getRandomValues(new Uint8Array(16)) - return global.crypto.subtle.encrypt({ name: 'AES-GCM', iv: vector, diff --git a/test/integration/lib/keyring-controller-test.js b/test/integration/lib/keyring-controller-test.js index bea485270..678744834 100644 --- a/test/integration/lib/keyring-controller-test.js +++ b/test/integration/lib/keyring-controller-test.js @@ -44,3 +44,14 @@ QUnit.test('keyringController:submitPassword', function (assert) { done() }) }) + +QUnit.test('keyringController:setLocked', function (assert) { + var done = assert.async() + var self = this + + this.keyringController.setLocked(function(err) { + assert.notOk(self.keyringController.password, 'password should be deallocated') + assert.deepEqual(self.keyringController.keyrings, [], 'keyrings should be deallocated') + done() + }) +})