fixes hex encoding issue

This commit is contained in:
Mo Bitar
2017-03-09 20:07:28 -06:00
parent 23611c31ae
commit bc0e76c7da
4 changed files with 9 additions and 10 deletions

View File

@@ -1,6 +1,6 @@
'use strict'; 'use strict';
var Neeto = Neeto || {}; var Neeto = window.Neeto = Neeto || {};
var SN = SN || {}; var SN = SN || {};
// detect IE8 and above, and edge. // detect IE8 and above, and edge.

View File

@@ -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}; 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) { if(this.keys) {
let encryptionVersion = "001"; let encryptionVersion = "002";
EncryptionHelper.encryptItem(itemCopy, this.keys, encryptionVersion); EncryptionHelper.encryptItem(itemCopy, this.keys, encryptionVersion);
params.content = itemCopy.content; params.content = itemCopy.content;
params.enc_item_key = itemCopy.enc_item_key; params.enc_item_key = itemCopy.enc_item_key;

View File

@@ -35,11 +35,11 @@ angular.module('app.frontend')
this.keys = function() { this.keys = function() {
var keys = {mk: localStorage.getItem("mk")}; var keys = {mk: localStorage.getItem("mk")};
if(!localStorage.getItem("encryptionKey")) { 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("encryptionKey", keys.encryptionKey);
localStorage.setItem("authKey", keys.authKey); localStorage.setItem("authKey", keys.authKey);
} else { } else {
keys = _.merge(keys, {encryptionKey: localStorage.getItem("encryptionKey"), authKey: localStorage.getItem("authKey")}); _.merge(keys, {encryptionKey: localStorage.getItem("encryptionKey"), authKey: localStorage.getItem("authKey")});
} }
return keys; return keys;
} }

View File

@@ -91,12 +91,14 @@ class SNCrypto {
hmac256(message, key) { hmac256(message, key) {
var keyData = CryptoJS.enc.Hex.parse(key); var keyData = CryptoJS.enc.Hex.parse(key);
var messageData = CryptoJS.enc.Utf8.parse(message); 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) { generateKeysFromMasterKey(mk) {
var encryptionKey = Neeto.crypto.hmac256(mk, "e"); var encryptionKey = Neeto.crypto.hmac256(mk, CryptoJS.enc.Utf8.parse("e").toString(CryptoJS.enc.Hex));
var authKey = Neeto.crypto.hmac256(mk, "a"); var authKey = Neeto.crypto.hmac256(mk, CryptoJS.enc.Utf8.parse("a").toString(CryptoJS.enc.Hex));
return {encryptionKey: encryptionKey, authKey: authKey}; return {encryptionKey: encryptionKey, authKey: authKey};
} }
@@ -120,9 +122,6 @@ class SNCrypto {
var pw = keys[0]; var pw = keys[0];
var mk = keys[1]; 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); callback(_.merge({pw: pw, mk: mk}, this.generateKeysFromMasterKey(mk)), defaults);
}.bind(this)); }.bind(this));
} }