From 4c8e593b7b03abb19b451b6be999f10e0fed5ff4 Mon Sep 17 00:00:00 2001 From: Azul Date: Mon, 14 Oct 2013 11:43:34 +0200 Subject: properly treat utf8 chars in password utf-8 encoding used to be bundled with the SHA256 library. However we only want to utf8 encode strings that are actual user input. We do not want to encode the bytearrays that are used when hashing the hex values calculated during for SRP. So I separated the utf-8 encoding and the sha256 hashing. --- lib/SHA256.js | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) (limited to 'lib/SHA256.js') diff --git a/lib/SHA256.js b/lib/SHA256.js index f79b07d..f47077b 100644 --- a/lib/SHA256.js +++ b/lib/SHA256.js @@ -85,32 +85,6 @@ function SHA256(s){ return bin; } - function Utf8Encode(string) { - string = string.replace(/\r\n/g,"\n"); - var utftext = ""; - - for (var n = 0; n < string.length; n++) { - - var c = string.charCodeAt(n); - - if (c < 128) { - utftext += String.fromCharCode(c); - } - else if((c > 127) && (c < 2048)) { - utftext += String.fromCharCode((c >> 6) | 192); - utftext += String.fromCharCode((c & 63) | 128); - } - else { - utftext += String.fromCharCode((c >> 12) | 224); - utftext += String.fromCharCode(((c >> 6) & 63) | 128); - utftext += String.fromCharCode((c & 63) | 128); - } - - } - - return utftext; - } - function binb2hex (binarray) { var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; var str = ""; @@ -120,7 +94,7 @@ function SHA256(s){ } return str; } - + return binb2hex(core_sha256(str2binb(s), s.length * chrsz)); } -- cgit v1.2.3