From 416a4d9581a90adbedb68bd924193921cb0cde80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soutad=C3=A9?= Date: Mon, 17 Apr 2017 20:39:53 +0200 Subject: [PATCH] Use old passwords decryption for protocols < 4 --- chrome_addon/lib/main.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/chrome_addon/lib/main.js b/chrome_addon/lib/main.js index 17253ec..bf3d122 100644 --- a/chrome_addon/lib/main.js +++ b/chrome_addon/lib/main.js @@ -175,7 +175,7 @@ async function ask_server(form, field, logins, domain, wdomain, mkey, submit) case 3: // Version 3 : nothing special to do case 4: - // Version 3 : nothing special to do + // Version 4 : nothing special to do break; } } @@ -216,13 +216,7 @@ async function ask_server(form, field, logins, domain, wdomain, mkey, submit) if (ciphered_password != "") { debug("Ciphered password : " + ciphered_password); - if (matched_key < logins.length) - { - clear_password = await decrypt_cbc(mkey, global_iv, hex2a(ciphered_password)); - clear_password = clear_password.replace(/\0*$/, ""); - clear_password = clear_password.substr(3, clear_password.length); - } - else + if (matched_key >= logins.logins || server_protocol_version < 4) // Crypto v1 { clear_password = await decrypt_ecb(mkey, hex2a(ciphered_password)); @@ -230,6 +224,12 @@ async function ask_server(form, field, logins, domain, wdomain, mkey, submit) clear_password = clear_password.replace(/\0*$/, ""); clear_password = clear_password.substr(0, clear_password.length-3); } + else + { + clear_password = await decrypt_cbc(mkey, global_iv, hex2a(ciphered_password)); + clear_password = clear_password.replace(/\0*$/, ""); + clear_password = clear_password.substr(3, clear_password.length); + } debug("Clear password " + clear_password); field.value = clear_password; // Remove gPass event listener and submit again with clear password