mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Fix new encryptor migration logic
This commit is contained in:
parent
1e46d858e9
commit
05c8658ff3
@ -118,6 +118,7 @@ module.exports = class KeyringController extends EventEmitter {
|
|||||||
return this.idStoreMigrator.migratedVaultForPassword(password)
|
return this.idStoreMigrator.migratedVaultForPassword(password)
|
||||||
.then((serialized) => {
|
.then((serialized) => {
|
||||||
if (serialized && shouldMigrate) {
|
if (serialized && shouldMigrate) {
|
||||||
|
this.password = password
|
||||||
const keyring = this.restoreKeyring(serialized)
|
const keyring = this.restoreKeyring(serialized)
|
||||||
this.keyrings.push(keyring)
|
this.keyrings.push(keyring)
|
||||||
this.configManager.setSelectedAccount(keyring.getAccounts()[0])
|
this.configManager.setSelectedAccount(keyring.getAccounts()[0])
|
||||||
@ -185,7 +186,6 @@ module.exports = class KeyringController extends EventEmitter {
|
|||||||
cb(null, this.getState())
|
cb(null, this.getState())
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.error(err)
|
|
||||||
cb(err)
|
cb(err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -558,7 +558,7 @@ module.exports = class KeyringController extends EventEmitter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setLocked (cb) {
|
setLocked (cb) {
|
||||||
this.key = null
|
this.password = null
|
||||||
this.keyrings = []
|
this.keyrings = []
|
||||||
this.emit('update')
|
this.emit('update')
|
||||||
cb()
|
cb()
|
||||||
|
@ -42,7 +42,6 @@ function encryptWithKey (key, dataObj) {
|
|||||||
var data = JSON.stringify(dataObj)
|
var data = JSON.stringify(dataObj)
|
||||||
var dataBuffer = convertStringToArrayBufferView(data)
|
var dataBuffer = convertStringToArrayBufferView(data)
|
||||||
var vector = global.crypto.getRandomValues(new Uint8Array(16))
|
var vector = global.crypto.getRandomValues(new Uint8Array(16))
|
||||||
|
|
||||||
return global.crypto.subtle.encrypt({
|
return global.crypto.subtle.encrypt({
|
||||||
name: 'AES-GCM',
|
name: 'AES-GCM',
|
||||||
iv: vector,
|
iv: vector,
|
||||||
|
@ -44,3 +44,14 @@ QUnit.test('keyringController:submitPassword', function (assert) {
|
|||||||
done()
|
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()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user