diff --git a/app/assets/javascripts/app/app.frontend.js b/app/assets/javascripts/app/app.frontend.js index b4d657e94..4511bf882 100644 --- a/app/assets/javascripts/app/app.frontend.js +++ b/app/assets/javascripts/app/app.frontend.js @@ -1,6 +1,6 @@ 'use strict'; -var Neeto = Neeto || {}; +var Neeto = window.Neeto = Neeto || {}; var SN = SN || {}; // detect IE8 and above, and edge. diff --git a/app/assets/javascripts/app/frontend/models/local/itemParams.js b/app/assets/javascripts/app/frontend/models/local/itemParams.js index 07582fc42..63a3fcb68 100644 --- a/app/assets/javascripts/app/frontend/models/local/itemParams.js +++ b/app/assets/javascripts/app/frontend/models/local/itemParams.js @@ -33,7 +33,7 @@ class ItemParams { var params = {uuid: this.item.uuid, content_type: this.item.content_type, deleted: this.item.deleted, created_at: this.item.created_at}; if(this.keys) { - let encryptionVersion = "001"; + let encryptionVersion = "002"; EncryptionHelper.encryptItem(itemCopy, this.keys, encryptionVersion); params.content = itemCopy.content; params.enc_item_key = itemCopy.enc_item_key; diff --git a/app/assets/javascripts/app/services/authManager.js b/app/assets/javascripts/app/services/authManager.js index 120e8ef6a..c2615d1b3 100644 --- a/app/assets/javascripts/app/services/authManager.js +++ b/app/assets/javascripts/app/services/authManager.js @@ -35,11 +35,11 @@ angular.module('app.frontend') this.keys = function() { var keys = {mk: localStorage.getItem("mk")}; if(!localStorage.getItem("encryptionKey")) { - keys = _.merge(keys, Neeto.crypto.generateKeysFromMasterKey(keys.mk)); + _.merge(keys, Neeto.crypto.generateKeysFromMasterKey(keys.mk)); localStorage.setItem("encryptionKey", keys.encryptionKey); localStorage.setItem("authKey", keys.authKey); } else { - keys = _.merge(keys, {encryptionKey: localStorage.getItem("encryptionKey"), authKey: localStorage.getItem("authKey")}); + _.merge(keys, {encryptionKey: localStorage.getItem("encryptionKey"), authKey: localStorage.getItem("authKey")}); } return keys; } diff --git a/app/assets/javascripts/app/services/helpers/crypto.js b/app/assets/javascripts/app/services/helpers/crypto.js index 3607d9054..6991851bd 100644 --- a/app/assets/javascripts/app/services/helpers/crypto.js +++ b/app/assets/javascripts/app/services/helpers/crypto.js @@ -91,12 +91,14 @@ class SNCrypto { hmac256(message, key) { var keyData = CryptoJS.enc.Hex.parse(key); var messageData = CryptoJS.enc.Utf8.parse(message); - return CryptoJS.HmacSHA256(messageData, keyData).toString(); + var result = CryptoJS.HmacSHA256(messageData, keyData).toString(); + console.log("HMAC of:", message, "with key:", key, "keyData", keyData, "is:", result); + return result; } generateKeysFromMasterKey(mk) { - var encryptionKey = Neeto.crypto.hmac256(mk, "e"); - var authKey = Neeto.crypto.hmac256(mk, "a"); + var encryptionKey = Neeto.crypto.hmac256(mk, CryptoJS.enc.Utf8.parse("e").toString(CryptoJS.enc.Hex)); + var authKey = Neeto.crypto.hmac256(mk, CryptoJS.enc.Utf8.parse("a").toString(CryptoJS.enc.Hex)); return {encryptionKey: encryptionKey, authKey: authKey}; } @@ -120,9 +122,6 @@ class SNCrypto { var pw = keys[0]; var mk = keys[1]; - var encryptionKey = Neeto.crypto.hmac256(mk, "e"); - var authKey = Neeto.crypto.hmac256(mk, "a"); - callback(_.merge({pw: pw, mk: mk}, this.generateKeysFromMasterKey(mk)), defaults); }.bind(this)); }