Index for new crypto scheme was badly computed in webextension
This commit is contained in:
parent
0caa8a66e1
commit
65821a4e47
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (C) 2013-2016 Grégory Soutadé
|
||||
Copyright (C) 2013-2017 Grégory Soutadé
|
||||
|
||||
This file is part of gPass.
|
||||
|
||||
|
@ -19,6 +19,8 @@
|
|||
|
||||
var DEBUG = true;
|
||||
var protocol_version = 4;
|
||||
var account_url = null;
|
||||
var crypto_v2_logins_size=0;
|
||||
|
||||
SERVER = {OK : 0, FAILED : 1, RESTART_REQUEST : 2};
|
||||
|
||||
|
@ -71,6 +73,7 @@ async function generate_request(domain, login, mkey, iv, old)
|
|||
async function ask_server(form, field, logins, domain, wdomain, mkey, submit)
|
||||
{
|
||||
account_url = await getPref("account_url");
|
||||
|
||||
var salt = parseURI.parseUri(account_url);
|
||||
salt = salt["host"] + salt["path"];
|
||||
|
||||
|
@ -101,6 +104,7 @@ async function ask_server(form, field, logins, domain, wdomain, mkey, submit)
|
|||
|
||||
if (await getPref("crypto_v1_compatible"))
|
||||
{
|
||||
crypto_v2_logins_size = key_index;
|
||||
for(a=0; a<logins.length; a++, key_index++)
|
||||
{
|
||||
enc = await generate_request(domain, logins[a], mkey, global_iv, 1);
|
||||
|
@ -211,12 +215,14 @@ async function ask_server(form, field, logins, domain, wdomain, mkey, submit)
|
|||
}
|
||||
|
||||
if (ret != SERVER.OK)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (ciphered_password != "")
|
||||
{
|
||||
debug("Ciphered password : " + ciphered_password);
|
||||
if (matched_key >= logins.logins || server_protocol_version < 4)
|
||||
if (matched_key >= crypto_v2_logins_size || server_protocol_version < 4)
|
||||
// Crypto v1
|
||||
{
|
||||
clear_password = await decrypt_ecb(mkey, hex2a(ciphered_password));
|
||||
|
@ -260,8 +266,8 @@ async function ask_server(form, field, logins, domain, wdomain, mkey, submit)
|
|||
notify("Error",
|
||||
"Error");
|
||||
}, false);
|
||||
debug("connect to " + await getPref("account_url"));
|
||||
gPassRequest.open("POST", await getPref("account_url"), true);
|
||||
debug("connect to " + account_url);
|
||||
gPassRequest.open("POST", account_url, true);
|
||||
gPassRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
|
||||
gPassRequest.send(keys);
|
||||
|
||||
|
@ -434,4 +440,4 @@ async function self_test()
|
|||
console.log("Self test OK !");
|
||||
}
|
||||
|
||||
self_test();
|
||||
//self_test();
|
||||
|
|
Loading…
Reference in New Issue
Block a user