Fix javascript require problem
This commit is contained in:
@@ -73,8 +73,6 @@ function a2hex(str) {
|
||||
return hex;
|
||||
}
|
||||
|
||||
var pkdbf2 = require("pkdbf2").pkdbf2;
|
||||
|
||||
function derive_mkey(user, mkey_target)
|
||||
{
|
||||
mkey_target = document.getElementById(mkey_target) ;
|
||||
@@ -88,7 +86,7 @@ function derive_mkey(user, mkey_target)
|
||||
|
||||
url = url_domain(document.URL) + "/" + user;
|
||||
|
||||
mkey = a2hex(pkdbf2.pkdbf2(mkey, url, 1000, 256/8));
|
||||
mkey = a2hex(pkdbf2(mkey, url, 1000, 256/8));
|
||||
mkey_target.value = mkey;
|
||||
|
||||
return true;
|
||||
|
@@ -17,26 +17,22 @@
|
||||
along with gPass. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
var sha256 = require("jssha256").sha256;
|
||||
function hmac256(key, message) {
|
||||
var ipad = "";
|
||||
var opad = "";
|
||||
|
||||
exports.hmac = {
|
||||
hmac : function(key, message) {
|
||||
var ipad = "";
|
||||
var opad = "";
|
||||
|
||||
for(i=0; i<key.length; i++)
|
||||
{
|
||||
ipad += String.fromCharCode(key.charCodeAt(i) ^ 0x36);
|
||||
opad += String.fromCharCode(key.charCodeAt(i) ^ 0x5c);
|
||||
}
|
||||
while (ipad.length < 512/8)
|
||||
{
|
||||
ipad += String.fromCharCode(0x36);
|
||||
opad += String.fromCharCode(0x5c);
|
||||
}
|
||||
|
||||
result = sha256.digest(opad + sha256.digest(ipad + message));
|
||||
|
||||
return result;
|
||||
for(i=0; i<key.length; i++)
|
||||
{
|
||||
ipad += String.fromCharCode(key.charCodeAt(i) ^ 0x36);
|
||||
opad += String.fromCharCode(key.charCodeAt(i) ^ 0x5c);
|
||||
}
|
||||
};
|
||||
while (ipad.length < 512/8)
|
||||
{
|
||||
ipad += String.fromCharCode(0x36);
|
||||
opad += String.fromCharCode(0x5c);
|
||||
}
|
||||
|
||||
result = digest256(opad + digest256(ipad + message));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@@ -232,15 +232,13 @@ function sha256_encode_hex() {
|
||||
}
|
||||
|
||||
/* Main function: returns a hex string representing the SHA256 value of the
|
||||
given data */
|
||||
exports.sha256 = {
|
||||
digest : function (data) {
|
||||
sha256_init();
|
||||
sha256_update(data, data.length);
|
||||
sha256_final();
|
||||
return sha256_encode_hex();
|
||||
}
|
||||
};
|
||||
given data */
|
||||
function digest256 (data) {
|
||||
sha256_init();
|
||||
sha256_update(data, data.length);
|
||||
sha256_final();
|
||||
return sha256_encode_hex();
|
||||
}
|
||||
|
||||
/* test if the JS-interpreter is working properly */
|
||||
function sha256_self_test()
|
||||
|
@@ -17,8 +17,6 @@
|
||||
along with gPass. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
var hmac256 = require("hmac").hmac;
|
||||
|
||||
// http://stackoverflow.com/questions/3745666/how-to-convert-from-hex-to-ascii-in-javascript
|
||||
function hex2a(hex) {
|
||||
var str = '';
|
||||
@@ -27,37 +25,35 @@ function hex2a(hex) {
|
||||
return str;
|
||||
}
|
||||
|
||||
exports.pkdbf2 = {
|
||||
pkdbf2 : function(password, salt, iterations, outlen) {
|
||||
var result = "";
|
||||
var temp = "";
|
||||
var temp2 = "";
|
||||
var temp_res = "";
|
||||
var temp_res2 = "";
|
||||
function pkdbf2 (password, salt, iterations, outlen) {
|
||||
var result = "";
|
||||
var temp = "";
|
||||
var temp2 = "";
|
||||
var temp_res = "";
|
||||
var temp_res2 = "";
|
||||
|
||||
for (i=1; result.length < outlen; i++)
|
||||
for (i=1; result.length < outlen; i++)
|
||||
{
|
||||
temp = hex2a(hmac256(salt +
|
||||
String.fromCharCode((i & 0xff000000) >> 24) +
|
||||
String.fromCharCode((i & 0x00ff0000) >> 16) +
|
||||
String.fromCharCode((i & 0x0000ff00) >> 8) +
|
||||
String.fromCharCode((i & 0x000000ff) >> 0),
|
||||
password));
|
||||
temp_res = temp;
|
||||
|
||||
for(a=1; a<iterations; a++)
|
||||
{
|
||||
temp = hex2a(hmac256.hmac(salt +
|
||||
String.fromCharCode((i & 0xff000000) >> 24) +
|
||||
String.fromCharCode((i & 0x00ff0000) >> 16) +
|
||||
String.fromCharCode((i & 0x0000ff00) >> 8) +
|
||||
String.fromCharCode((i & 0x000000ff) >> 0),
|
||||
password));
|
||||
temp_res = temp;
|
||||
|
||||
for(a=1; a<iterations; a++)
|
||||
{
|
||||
temp2 = hex2a(hmac256.hmac(temp, password));
|
||||
temp_res2 = "";
|
||||
for(b = 0; b<temp_res.length; b++)
|
||||
temp_res2 += String.fromCharCode(temp_res.charCodeAt(b) ^ temp2.charCodeAt(b));
|
||||
temp_res = temp_res2;
|
||||
temp = temp2;
|
||||
}
|
||||
|
||||
result += temp_res;
|
||||
temp2 = hex2a(hmac256(temp, password));
|
||||
temp_res2 = "";
|
||||
for(b = 0; b<temp_res.length; b++)
|
||||
temp_res2 += String.fromCharCode(temp_res.charCodeAt(b) ^ temp2.charCodeAt(b));
|
||||
temp_res = temp_res2;
|
||||
temp = temp2;
|
||||
}
|
||||
|
||||
return result.substr(0, outlen);
|
||||
result += temp_res;
|
||||
}
|
||||
};
|
||||
|
||||
return result.substr(0, outlen);
|
||||
}
|
||||
|
Reference in New Issue
Block a user