summaryrefslogtreecommitdiff
path: root/proper-random/javascript/SHA256.js
diff options
context:
space:
mode:
authorausiv4 <ausiv4@eb105b4a-77de-11de-a249-6bf219df57d5>2009-07-24 13:58:33 +0000
committerausiv4 <ausiv4@eb105b4a-77de-11de-a249-6bf219df57d5>2009-07-24 13:58:33 +0000
commit8d359f4d8e27bf5992508bc11486a482d270d6f8 (patch)
tree497a31578ce8443125347504787e9b5889d7117b /proper-random/javascript/SHA256.js
parent40fd75696b548d18057a289e849be98dd2af12dd (diff)
Fixing previous mistake
Diffstat (limited to 'proper-random/javascript/SHA256.js')
-rw-r--r--proper-random/javascript/SHA256.js127
1 files changed, 0 insertions, 127 deletions
diff --git a/proper-random/javascript/SHA256.js b/proper-random/javascript/SHA256.js
deleted file mode 100644
index 1a852c0..0000000
--- a/proper-random/javascript/SHA256.js
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
-*
-* Secure Hash Algorithm (SHA256)
-* http://www.webtoolkit.info/
-*
-* Original code by Angel Marin, Paul Johnston.
-*
-**/
-
-function SHA256(s){
-
- var chrsz = 8;
- var hexcase = 0;
-
- function safe_add (x, y) {
- var lsw = (x & 0xFFFF) + (y & 0xFFFF);
- var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
- return (msw << 16) | (lsw & 0xFFFF);
- }
-
- function S (X, n) { return ( X >>> n ) | (X << (32 - n)); }
- function R (X, n) { return ( X >>> n ); }
- function Ch(x, y, z) { return ((x & y) ^ ((~x) & z)); }
- function Maj(x, y, z) { return ((x & y) ^ (x & z) ^ (y & z)); }
- function Sigma0256(x) { return (S(x, 2) ^ S(x, 13) ^ S(x, 22)); }
- function Sigma1256(x) { return (S(x, 6) ^ S(x, 11) ^ S(x, 25)); }
- function Gamma0256(x) { return (S(x, 7) ^ S(x, 18) ^ R(x, 3)); }
- function Gamma1256(x) { return (S(x, 17) ^ S(x, 19) ^ R(x, 10)); }
-
- function core_sha256 (m, l) {
- var K = new Array(0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0xFC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x6CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2);
- var HASH = new Array(0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19);
- var W = new Array(64);
- var a, b, c, d, e, f, g, h, i, j;
- var T1, T2;
-
- m[l >> 5] |= 0x80 << (24 - l % 32);
- m[((l + 64 >> 9) << 4) + 15] = l;
-
- for ( var i = 0; i<m.length; i+=16 ) {
- a = HASH[0];
- b = HASH[1];
- c = HASH[2];
- d = HASH[3];
- e = HASH[4];
- f = HASH[5];
- g = HASH[6];
- h = HASH[7];
-
- for ( var j = 0; j<64; j++) {
- if (j < 16) W[j] = m[j + i];
- else W[j] = safe_add(safe_add(safe_add(Gamma1256(W[j - 2]), W[j - 7]), Gamma0256(W[j - 15])), W[j - 16]);
-
- T1 = safe_add(safe_add(safe_add(safe_add(h, Sigma1256(e)), Ch(e, f, g)), K[j]), W[j]);
- T2 = safe_add(Sigma0256(a), Maj(a, b, c));
-
- h = g;
- g = f;
- f = e;
- e = safe_add(d, T1);
- d = c;
- c = b;
- b = a;
- a = safe_add(T1, T2);
- }
-
- HASH[0] = safe_add(a, HASH[0]);
- HASH[1] = safe_add(b, HASH[1]);
- HASH[2] = safe_add(c, HASH[2]);
- HASH[3] = safe_add(d, HASH[3]);
- HASH[4] = safe_add(e, HASH[4]);
- HASH[5] = safe_add(f, HASH[5]);
- HASH[6] = safe_add(g, HASH[6]);
- HASH[7] = safe_add(h, HASH[7]);
- }
- return HASH;
- }
-
- function str2binb (str) {
- var bin = Array();
- var mask = (1 << chrsz) - 1;
- for(var i = 0; i < str.length * chrsz; i += chrsz) {
- bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i%32);
- }
- 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 = "";
- for(var i = 0; i < binarray.length * 4; i++) {
- str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) +
- hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8 )) & 0xF);
- }
- return str;
- }
-
- s = Utf8Encode(s);
- return binb2hex(core_sha256(str2binb(s), s.length * chrsz));
-
-}