From 06b25db3646d1dd4eba8468b24eadb78b33d096a Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Wed, 30 Apr 2014 16:30:25 -0300 Subject: [PATCH] added Passphrase model and service --- js/models/core/Passphrase.js | 24 ++++++++++++++++++++++++ js/services/passphrase.js | 7 +++++++ 2 files changed, 31 insertions(+) create mode 100644 js/models/core/Passphrase.js create mode 100644 js/services/passphrase.js diff --git a/js/models/core/Passphrase.js b/js/models/core/Passphrase.js new file mode 100644 index 000000000..5a0569df3 --- /dev/null +++ b/js/models/core/Passphrase.js @@ -0,0 +1,24 @@ +'use strict'; + +function Passphrase(config) { + config = config || {}; + this.salt = config.storageSalt; + this.iterations = config.iterations || 1000; +}; + +Passphrase.prototype.get = function(password) { + var hash = CryptoJS.SHA256(CryptoJS.SHA256(password)); + var salt = CryptoJS.enc.Hex.parse(this.salt); + var key512 = CryptoJS.PBKDF2(hash, salt, { keySize: 512/32, iterations: this.iterations }); + + return key512; +}; + +Passphrase.prototype.getBase64 = function(password) { + var key512 = this.get(password); + var keyBase64 = key512.toString(CryptoJS.enc.Base64); + + return keyBase64; +}; + +module.exports = Passphrase; diff --git a/js/services/passphrase.js b/js/services/passphrase.js new file mode 100644 index 000000000..2ea188869 --- /dev/null +++ b/js/services/passphrase.js @@ -0,0 +1,7 @@ +'use strict'; + +var passphrase; +angular.module('copay.passphrase').factory('Passphrase', function($rootScope) { + passphrase = passphrase || new copay.Passphrase(config); + return passphrase; +});