aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2016-10-22 03:11:54 +0800
committerDan Finlay <dan@danfinlay.com>2016-10-22 03:11:54 +0800
commit44aa1be2778a1647c9a607fd02c61bf93704d92d (patch)
treea99d27dbcac5209950ffde79c53519fde2eaa621 /app
parentc3e1c5c57f2062155626647e239c2a760f3e4b8a (diff)
downloadtangerine-wallet-browser-44aa1be2778a1647c9a607fd02c61bf93704d92d.tar
tangerine-wallet-browser-44aa1be2778a1647c9a607fd02c61bf93704d92d.tar.gz
tangerine-wallet-browser-44aa1be2778a1647c9a607fd02c61bf93704d92d.tar.bz2
tangerine-wallet-browser-44aa1be2778a1647c9a607fd02c61bf93704d92d.tar.lz
tangerine-wallet-browser-44aa1be2778a1647c9a607fd02c61bf93704d92d.tar.xz
tangerine-wallet-browser-44aa1be2778a1647c9a607fd02c61bf93704d92d.tar.zst
tangerine-wallet-browser-44aa1be2778a1647c9a607fd02c61bf93704d92d.zip
Create basic keyring-controller unit test file
Diffstat (limited to 'app')
-rw-r--r--app/scripts/keyring-controller.js19
-rw-r--r--app/scripts/lib/encryptor.js9
2 files changed, 16 insertions, 12 deletions
diff --git a/app/scripts/keyring-controller.js b/app/scripts/keyring-controller.js
index 8192ed790..5cf2542cc 100644
--- a/app/scripts/keyring-controller.js
+++ b/app/scripts/keyring-controller.js
@@ -17,6 +17,7 @@ module.exports = class KeyringController extends EventEmitter {
super()
this.configManager = opts.configManager
this.ethStore = opts.ethStore
+ this.encryptor = encryptor
this.keyrings = []
this.identities = {} // Essentially a name hash
}
@@ -46,11 +47,11 @@ module.exports = class KeyringController extends EventEmitter {
}
createNewVault(password, entropy, cb) {
- const salt = generateSalt()
+ const salt = this.encryptor.generateSalt()
this.configManager.setSalt(salt)
this.loadKey(password)
.then((key) => {
- return encryptor.encryptWithKey(key, [])
+ return this.encryptor.encryptWithKey(key, [])
})
.then((encryptedString) => {
this.configManager.setVault(encryptedString)
@@ -75,8 +76,8 @@ module.exports = class KeyringController extends EventEmitter {
}
loadKey(password) {
- const salt = this.configManager.getSalt() || generateSalt()
- return encryptor.keyFromPassword(password + salt)
+ const salt = this.configManager.getSalt() || this.encryptor.generateSalt()
+ return this.encryptor.keyFromPassword(password + salt)
.then((key) => {
this.key = key
return key
@@ -134,7 +135,7 @@ module.exports = class KeyringController extends EventEmitter {
data: k.serialize(),
}
})
- return encryptor.encryptWithKey(this.key, serialized)
+ return this.encryptor.encryptWithKey(this.key, serialized)
.then((encryptedString) => {
this.configManager.setVault(encryptedString)
return true
@@ -146,7 +147,7 @@ module.exports = class KeyringController extends EventEmitter {
unlockKeyrings(key) {
const encryptedVault = this.configManager.getVault()
- return encryptor.decryptWithKey(key, encryptedVault)
+ return this.encryptor.decryptWithKey(key, encryptedVault)
.then((vault) => {
this.keyrings = vault.map(this.restoreKeyring.bind(this, 0))
return this.keyrings
@@ -278,9 +279,3 @@ module.exports = class KeyringController extends EventEmitter {
}
-function generateSalt (byteCount = 32) {
- var view = new Uint8Array(byteCount)
- global.crypto.getRandomValues(view)
- var b64encoded = btoa(String.fromCharCode.apply(null, view))
- return b64encoded
-}
diff --git a/app/scripts/lib/encryptor.js b/app/scripts/lib/encryptor.js
index 3d069ab33..832e6d528 100644
--- a/app/scripts/lib/encryptor.js
+++ b/app/scripts/lib/encryptor.js
@@ -22,6 +22,8 @@ module.exports = {
// Buffer <-> base64 string methods
encodeBufferToBase64,
decodeBase64ToBuffer,
+
+ generateSalt,
}
// Takes a Pojo, returns encrypted text.
@@ -135,3 +137,10 @@ function decodeBase64ToBuffer (base64) {
}))
return buf
}
+
+function generateSalt (byteCount = 32) {
+ var view = new Uint8Array(byteCount)
+ global.crypto.getRandomValues(view)
+ var b64encoded = btoa(String.fromCharCode.apply(null, view))
+ return b64encoded
+}