mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
36dc63bc04
eth-lightwallet was previously not salting vault passwords, potentially making it easier to crack them once obtained. This branch incorporates the API changes to allow us to take advantage of the new salting logic. This is still throwing deprecation warnings, but that's actually a bug in eth-lightwallet I wrote, [I've submitted a PR for that here](https://github.com/ConsenSys/eth-lightwallet/pull/116). Fixes #555
92 lines
2.4 KiB
JavaScript
92 lines
2.4 KiB
JavaScript
var assert = require('assert')
|
|
var IdentityStore = require('../../app/scripts/lib/idStore')
|
|
var configManagerGen = require('../lib/mock-config-manager')
|
|
|
|
describe('IdentityStore', function() {
|
|
|
|
describe('#createNewVault', function () {
|
|
let idStore
|
|
let password = 'password123'
|
|
let entropy = 'entripppppyy duuude'
|
|
let seedWords
|
|
let accounts = []
|
|
let originalKeystore
|
|
|
|
before(function(done) {
|
|
window.localStorage = {} // Hacking localStorage support into JSDom
|
|
|
|
idStore = new IdentityStore({
|
|
configManager: configManagerGen(),
|
|
ethStore: {
|
|
addAccount(acct) { accounts.push(acct) },
|
|
},
|
|
})
|
|
|
|
idStore.createNewVault(password, entropy, (err, seeds) => {
|
|
assert.ifError(err, 'createNewVault threw error')
|
|
seedWords = seeds
|
|
originalKeystore = idStore._idmgmt.keyStore
|
|
done()
|
|
})
|
|
})
|
|
|
|
describe('#recoverFromSeed', function() {
|
|
let newAccounts = []
|
|
|
|
before(function() {
|
|
window.localStorage = {} // Hacking localStorage support into JSDom
|
|
|
|
idStore = new IdentityStore({
|
|
configManager: configManagerGen(),
|
|
ethStore: {
|
|
addAccount(acct) { newAccounts.push(acct) },
|
|
},
|
|
})
|
|
})
|
|
|
|
it('should return the expected keystore', function (done) {
|
|
|
|
idStore.recoverFromSeed(password, seedWords, (err) => {
|
|
assert.ifError(err)
|
|
|
|
let newKeystore = idStore._idmgmt.keyStore
|
|
assert.equal(newAccounts[0], accounts[0])
|
|
done()
|
|
})
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('#recoverFromSeed BIP44 compliance', function() {
|
|
let seedWords = 'picnic injury awful upper eagle junk alert toss flower renew silly vague'
|
|
let firstAccount = '0x5d8de92c205279c10e5669f797b853ccef4f739a'
|
|
const salt = 'lightwalletSalt'
|
|
|
|
let password = 'secret!'
|
|
let accounts = []
|
|
let idStore
|
|
|
|
before(function() {
|
|
window.localStorage = {} // Hacking localStorage support into JSDom
|
|
|
|
idStore = new IdentityStore({
|
|
configManager: configManagerGen(),
|
|
ethStore: {
|
|
addAccount(acct) { accounts.push('0x' + acct) },
|
|
},
|
|
})
|
|
})
|
|
|
|
it('should return the expected first account', function (done) {
|
|
|
|
idStore.recoverFromSeed(password, seedWords, (err) => {
|
|
assert.ifError(err)
|
|
|
|
let newKeystore = idStore._idmgmt.keyStore
|
|
assert.equal(accounts[0], firstAccount)
|
|
done()
|
|
})
|
|
})
|
|
})
|
|
})
|