diff options
-rw-r--r-- | src/sha.js | 44 | ||||
-rw-r--r-- | src/sha1.js | 27 | ||||
-rw-r--r-- | src/sha256.js | 6 | ||||
-rw-r--r-- | src/sha512.js | 46 |
4 files changed, 62 insertions, 61 deletions
@@ -9,31 +9,31 @@ Several functions taken from Paul Johnston */ -'use strict';(function(W){function w(d,a,c){var b=0,f=[],g=0,h,e,n,k,m,q,v,p=!1,r=[],t=[],l,u=!1;c=c||{};h=c.encoding||"UTF8";l=c.numRounds||1;n=L(a,h);if(l!==parseInt(l,10)||1>l)throw Error("numRounds must a integer >= 1");if("SHA-1"===d)m=512,q=M,v=X,k=160;else if(q=function(a,c){return N(a,c,d)},v=function(a,c,b,f){var g,C;if("SHA-224"===d||"SHA-256"===d)g=(c+65>>>9<<4)+15,C=16;else if("SHA-384"===d||"SHA-512"===d)g=(c+129>>>10<<5)+31,C=32;else throw Error("Unexpected error in SHA-2 implementation"); -for(;a.length<=g;)a.push(0);a[c>>>5]|=128<<24-c%32;a[g]=c+b;b=a.length;for(c=0;c<b;c+=C)f=N(a.slice(c,c+C),f,d);if("SHA-224"===d)a=[f[0],f[1],f[2],f[3],f[4],f[5],f[6]];else if("SHA-256"===d)a=f;else if("SHA-384"===d)a=[f[0].a,f[0].b,f[1].a,f[1].b,f[2].a,f[2].b,f[3].a,f[3].b,f[4].a,f[4].b,f[5].a,f[5].b];else if("SHA-512"===d)a=[f[0].a,f[0].b,f[1].a,f[1].b,f[2].a,f[2].b,f[3].a,f[3].b,f[4].a,f[4].b,f[5].a,f[5].b,f[6].a,f[6].b,f[7].a,f[7].b];else throw Error("Unexpected error in SHA-2 implementation"); -return a},"SHA-224"===d)m=512,k=224;else if("SHA-256"===d)m=512,k=256;else if("SHA-384"===d)m=1024,k=384;else if("SHA-512"===d)m=1024,k=512;else throw Error("Chosen SHA variant is not supported");e=y(d);this.setHMACKey=function(a,c,f){var g;if(!0===p)throw Error("HMAC key already set");if(!0===u)throw Error("Cannot set HMAC key after calling update");h=(f||{}).encoding||"UTF8";c=L(c,h)(a);a=c.binLen;c=c.value;g=m>>>3;f=g/4-1;if(g<a/8){for(c=v(c,a,0,y(d));c.length<=f;)c.push(0);c[f]&=4294967040}else if(g> -a/8){for(;c.length<=f;)c.push(0);c[f]&=4294967040}for(a=0;a<=f;a+=1)r[a]=c[a]^909522486,t[a]=c[a]^1549556828;e=q(r,e);b=m;p=!0};this.update=function(a){var d,c,h,k=0,p=m>>>5;d=n(a,f,g);a=d.binLen;c=d.value;d=a>>>5;for(h=0;h<d;h+=p)k+m<=a&&(e=q(c.slice(h,h+p),e),k+=m);b+=k;f=c.slice(k>>>5);g=a%m;u=!0};this.getHash=function(a,c){var h,m,n,q;if(!0===p)throw Error("Cannot call getHash after setting HMAC key");n=O(c);switch(a){case "HEX":h=function(a){return P(a,n)};break;case "B64":h=function(a){return Q(a, -n)};break;case "BYTES":h=R;break;case "ARRAYBUFFER":try{m=new ArrayBuffer(0)}catch(t){throw Error("ARRAYBUFFER not supported by this environment");}h=S;break;default:throw Error("format must be HEX, B64, BYTES, or ARRAYBUFFER");}q=v(f.slice(),g,b,e.slice());for(m=1;m<l;m+=1)q=v(q,k,0,y(d));return h(q)};this.getHMAC=function(a,c){var h,n,l,r;if(!1===p)throw Error("Cannot call getHMAC without first setting HMAC key");l=O(c);switch(a){case "HEX":h=function(a){return P(a,l)};break;case "B64":h=function(a){return Q(a, -l)};break;case "BYTES":h=R;break;case "ARRAYBUFFER":try{h=new ArrayBuffer(0)}catch(u){throw Error("ARRAYBUFFER not supported by this environment");}h=S;break;default:throw Error("outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER");}n=v(f.slice(),g,b,e.slice());r=q(t,y(d));r=v(n,k,m,r);return h(r)}}function b(d,a){this.a=d;this.b=a}function Y(d,a,c){var b=d.length,f,g,h,e,n;a=a||[0];c=c||0;n=c>>>3;if(0!==b%2)throw Error("String of HEX type must be in byte increments");for(f=0;f<b;f+=2){g=parseInt(d.substr(f, -2),16);if(isNaN(g))throw Error("String of HEX type contains invalid characters");e=(f>>>1)+n;for(h=e>>>2;a.length<=h;)a.push(0);a[h]|=g<<8*(3-e%4)}return{value:a,binLen:4*b+c}}function Z(d,a,c){var b=[],f,g,h,e,b=a||[0];c=c||0;g=c>>>3;for(f=0;f<d.length;f+=1)a=d.charCodeAt(f),e=f+g,h=e>>>2,b.length<=h&&b.push(0),b[h]|=a<<8*(3-e%4);return{value:b,binLen:8*d.length+c}}function aa(d,a,c){var b=[],f=0,g,h,e,n,k,m,b=a||[0];c=c||0;a=c>>>3;if(-1===d.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string"); -h=d.indexOf("=");d=d.replace(/\=/g,"");if(-1!==h&&h<d.length)throw Error("Invalid '=' found in base-64 string");for(h=0;h<d.length;h+=4){k=d.substr(h,4);for(e=n=0;e<k.length;e+=1)g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(k[e]),n|=g<<18-6*e;for(e=0;e<k.length-1;e+=1){m=f+a;for(g=m>>>2;b.length<=g;)b.push(0);b[g]|=(n>>>16-8*e&255)<<8*(3-m%4);f+=1}}return{value:b,binLen:8*f+c}}function ba(d,a,c){var b=[],f,g,e,b=a||[0];c=c||0;f=c>>>3;for(a=0;a<d.byteLength;a+=1)e=a+ -f,g=e>>>2,b.length<=g&&b.push(0),b[g]|=d[a]<<8*(3-e%4);return{value:b,binLen:8*d.byteLength+c}}function P(d,a){var c="",b=4*d.length,f,g;for(f=0;f<b;f+=1)g=d[f>>>2]>>>8*(3-f%4),c+="0123456789abcdef".charAt(g>>>4&15)+"0123456789abcdef".charAt(g&15);return a.outputUpper?c.toUpperCase():c}function Q(d,a){var c="",b=4*d.length,f,g,e;for(f=0;f<b;f+=3)for(e=f+1>>>2,g=d.length<=e?0:d[e],e=f+2>>>2,e=d.length<=e?0:d[e],e=(d[f>>>2]>>>8*(3-f%4)&255)<<16|(g>>>8*(3-(f+1)%4)&255)<<8|e>>>8*(3-(f+2)%4)&255,g=0;4> -g;g+=1)8*f+6*g<=32*d.length?c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>>6*(3-g)&63):c+=a.b64Pad;return c}function R(d){var a="",c=4*d.length,b,f;for(b=0;b<c;b+=1)f=d[b>>>2]>>>8*(3-b%4)&255,a+=String.fromCharCode(f);return a}function S(d){var a=4*d.length,c,b=new ArrayBuffer(a);for(c=0;c<a;c+=1)b[c]=d[c>>>2]>>>8*(3-c%4)&255;return b}function O(d){var a={outputUpper:!1,b64Pad:"="};d=d||{};a.outputUpper=d.outputUpper||!1;!0===d.hasOwnProperty("b64Pad")&&(a.b64Pad= +'use strict';(function(W){function w(d,a,c){var b=0,f=[],h=0,g,e,n,k,m,q,v,p=!1,r=[],t=[],l,u=!1;c=c||{};g=c.encoding||"UTF8";l=c.numRounds||1;n=L(a,g);if(l!==parseInt(l,10)||1>l)throw Error("numRounds must a integer >= 1");if("SHA-1"===d)m=512,q=M,v=X,k=160;else if(q=function(a,c){return N(a,c,d)},v=function(a,c,b,f){var h,C;if("SHA-224"===d||"SHA-256"===d)h=(c+65>>>9<<4)+15,C=16;else if("SHA-384"===d||"SHA-512"===d)h=(c+129>>>10<<5)+31,C=32;else throw Error("Unexpected error in SHA-2 implementation"); +for(;a.length<=h;)a.push(0);a[c>>>5]|=128<<24-c%32;c=c+b;a[h]=c&4294967295;a[h-1]=c/4294967296|0;b=a.length;for(c=0;c<b;c+=C)f=N(a.slice(c,c+C),f,d);if("SHA-224"===d)a=[f[0],f[1],f[2],f[3],f[4],f[5],f[6]];else if("SHA-256"===d)a=f;else if("SHA-384"===d)a=[f[0].a,f[0].b,f[1].a,f[1].b,f[2].a,f[2].b,f[3].a,f[3].b,f[4].a,f[4].b,f[5].a,f[5].b];else if("SHA-512"===d)a=[f[0].a,f[0].b,f[1].a,f[1].b,f[2].a,f[2].b,f[3].a,f[3].b,f[4].a,f[4].b,f[5].a,f[5].b,f[6].a,f[6].b,f[7].a,f[7].b];else throw Error("Unexpected error in SHA-2 implementation"); +return a},"SHA-224"===d)m=512,k=224;else if("SHA-256"===d)m=512,k=256;else if("SHA-384"===d)m=1024,k=384;else if("SHA-512"===d)m=1024,k=512;else throw Error("Chosen SHA variant is not supported");e=y(d);this.setHMACKey=function(a,c,f){var h;if(!0===p)throw Error("HMAC key already set");if(!0===u)throw Error("Cannot set HMAC key after calling update");g=(f||{}).encoding||"UTF8";c=L(c,g)(a);a=c.binLen;c=c.value;h=m>>>3;f=h/4-1;if(h<a/8){for(c=v(c,a,0,y(d));c.length<=f;)c.push(0);c[f]&=4294967040}else if(h> +a/8){for(;c.length<=f;)c.push(0);c[f]&=4294967040}for(a=0;a<=f;a+=1)r[a]=c[a]^909522486,t[a]=c[a]^1549556828;e=q(r,e);b=m;p=!0};this.update=function(a){var d,c,g,k=0,p=m>>>5;d=n(a,f,h);a=d.binLen;c=d.value;d=a>>>5;for(g=0;g<d;g+=p)k+m<=a&&(e=q(c.slice(g,g+p),e),k+=m);b+=k;f=c.slice(k>>>5);h=a%m;u=!0};this.getHash=function(a,c){var g,m,n,q;if(!0===p)throw Error("Cannot call getHash after setting HMAC key");n=O(c);switch(a){case "HEX":g=function(a){return P(a,n)};break;case "B64":g=function(a){return Q(a, +n)};break;case "BYTES":g=R;break;case "ARRAYBUFFER":try{m=new ArrayBuffer(0)}catch(t){throw Error("ARRAYBUFFER not supported by this environment");}g=S;break;default:throw Error("format must be HEX, B64, BYTES, or ARRAYBUFFER");}q=v(f.slice(),h,b,e.slice());for(m=1;m<l;m+=1)q=v(q,k,0,y(d));return g(q)};this.getHMAC=function(a,c){var g,n,l,r;if(!1===p)throw Error("Cannot call getHMAC without first setting HMAC key");l=O(c);switch(a){case "HEX":g=function(a){return P(a,l)};break;case "B64":g=function(a){return Q(a, +l)};break;case "BYTES":g=R;break;case "ARRAYBUFFER":try{g=new ArrayBuffer(0)}catch(u){throw Error("ARRAYBUFFER not supported by this environment");}g=S;break;default:throw Error("outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER");}n=v(f.slice(),h,b,e.slice());r=q(t,y(d));r=v(n,k,m,r);return g(r)}}function b(d,a){this.a=d;this.b=a}function Y(d,a,c){var b=d.length,f,h,g,e,n;a=a||[0];c=c||0;n=c>>>3;if(0!==b%2)throw Error("String of HEX type must be in byte increments");for(f=0;f<b;f+=2){h=parseInt(d.substr(f, +2),16);if(isNaN(h))throw Error("String of HEX type contains invalid characters");e=(f>>>1)+n;for(g=e>>>2;a.length<=g;)a.push(0);a[g]|=h<<8*(3-e%4)}return{value:a,binLen:4*b+c}}function Z(d,a,c){var b=[],f,h,g,e,b=a||[0];c=c||0;h=c>>>3;for(f=0;f<d.length;f+=1)a=d.charCodeAt(f),e=f+h,g=e>>>2,b.length<=g&&b.push(0),b[g]|=a<<8*(3-e%4);return{value:b,binLen:8*d.length+c}}function aa(d,a,c){var b=[],f=0,h,g,e,n,k,m,b=a||[0];c=c||0;a=c>>>3;if(-1===d.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string"); +g=d.indexOf("=");d=d.replace(/\=/g,"");if(-1!==g&&g<d.length)throw Error("Invalid '=' found in base-64 string");for(g=0;g<d.length;g+=4){k=d.substr(g,4);for(e=n=0;e<k.length;e+=1)h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(k[e]),n|=h<<18-6*e;for(e=0;e<k.length-1;e+=1){m=f+a;for(h=m>>>2;b.length<=h;)b.push(0);b[h]|=(n>>>16-8*e&255)<<8*(3-m%4);f+=1}}return{value:b,binLen:8*f+c}}function ba(d,a,c){var b=[],f,h,e,b=a||[0];c=c||0;f=c>>>3;for(a=0;a<d.byteLength;a+=1)e=a+ +f,h=e>>>2,b.length<=h&&b.push(0),b[h]|=d[a]<<8*(3-e%4);return{value:b,binLen:8*d.byteLength+c}}function P(d,a){var c="",b=4*d.length,f,h;for(f=0;f<b;f+=1)h=d[f>>>2]>>>8*(3-f%4),c+="0123456789abcdef".charAt(h>>>4&15)+"0123456789abcdef".charAt(h&15);return a.outputUpper?c.toUpperCase():c}function Q(d,a){var c="",b=4*d.length,f,h,e;for(f=0;f<b;f+=3)for(e=f+1>>>2,h=d.length<=e?0:d[e],e=f+2>>>2,e=d.length<=e?0:d[e],e=(d[f>>>2]>>>8*(3-f%4)&255)<<16|(h>>>8*(3-(f+1)%4)&255)<<8|e>>>8*(3-(f+2)%4)&255,h=0;4> +h;h+=1)8*f+6*h<=32*d.length?c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>>6*(3-h)&63):c+=a.b64Pad;return c}function R(d){var a="",c=4*d.length,b,f;for(b=0;b<c;b+=1)f=d[b>>>2]>>>8*(3-b%4)&255,a+=String.fromCharCode(f);return a}function S(d){var a=4*d.length,c,b=new ArrayBuffer(a);for(c=0;c<a;c+=1)b[c]=d[c>>>2]>>>8*(3-c%4)&255;return b}function O(d){var a={outputUpper:!1,b64Pad:"="};d=d||{};a.outputUpper=d.outputUpper||!1;!0===d.hasOwnProperty("b64Pad")&&(a.b64Pad= d.b64Pad);if("boolean"!==typeof a.outputUpper)throw Error("Invalid outputUpper formatting option");if("string"!==typeof a.b64Pad)throw Error("Invalid b64Pad formatting option");return a}function L(d,a){var c;switch(a){case "UTF8":case "UTF16BE":case "UTF16LE":break;default:throw Error("encoding must be UTF8, UTF16BE, or UTF16LE");}switch(d){case "HEX":c=Y;break;case "TEXT":c=function(c,d,b){var e=[],x=[],n=0,k,m,q,l,p,e=d||[0];d=b||0;q=d>>>3;if("UTF8"===a)for(k=0;k<c.length;k+=1)for(b=c.charCodeAt(k), x=[],128>b?x.push(b):2048>b?(x.push(192|b>>>6),x.push(128|b&63)):55296>b||57344<=b?x.push(224|b>>>12,128|b>>>6&63,128|b&63):(k+=1,b=65536+((b&1023)<<10|c.charCodeAt(k)&1023),x.push(240|b>>>18,128|b>>>12&63,128|b>>>6&63,128|b&63)),m=0;m<x.length;m+=1){p=n+q;for(l=p>>>2;e.length<=l;)e.push(0);e[l]|=x[m]<<8*(3-p%4);n+=1}else if("UTF16BE"===a||"UTF16LE"===a)for(k=0;k<c.length;k+=1){b=c.charCodeAt(k);"UTF16LE"===a&&(m=b&255,b=m<<8|b>>>8);p=n+q;for(l=p>>>2;e.length<=l;)e.push(0);e[l]|=b<<8*(2-p%4);n+=2}return{value:e, binLen:8*n+d}};break;case "B64":c=aa;break;case "BYTES":c=Z;break;case "ARRAYBUFFER":try{c=new ArrayBuffer(0)}catch(b){throw Error("ARRAYBUFFER not supported by this environment");}c=ba;break;default:throw Error("format must be HEX, TEXT, B64, BYTES, or ARRAYBUFFER");}return c}function u(d,a){return d<<a|d>>>32-a}function r(d,a){return d>>>a|d<<32-a}function l(d,a){var c=null,c=new b(d.a,d.b);return c=32>=a?new b(c.a>>>a|c.b<<32-a&4294967295,c.b>>>a|c.a<<32-a&4294967295):new b(c.b>>>a-32|c.a<<64- a&4294967295,c.a>>>a-32|c.b<<64-a&4294967295)}function T(d,a){var c=null;return c=32>=a?new b(d.a>>>a,d.b>>>a|d.a<<32-a&4294967295):new b(0,d.a>>>a-32)}function ca(d,a,c){return d&a^~d&c}function da(d,a,c){return new b(d.a&a.a^~d.a&c.a,d.b&a.b^~d.b&c.b)}function U(d,a,c){return d&a^d&c^a&c}function ea(d,a,c){return new b(d.a&a.a^d.a&c.a^a.a&c.a,d.b&a.b^d.b&c.b^a.b&c.b)}function fa(d){return r(d,2)^r(d,13)^r(d,22)}function ga(d){var a=l(d,28),c=l(d,34);d=l(d,39);return new b(a.a^c.a^d.a,a.b^c.b^d.b)} function ha(d){return r(d,6)^r(d,11)^r(d,25)}function ia(d){var a=l(d,14),c=l(d,18);d=l(d,41);return new b(a.a^c.a^d.a,a.b^c.b^d.b)}function ja(d){return r(d,7)^r(d,18)^d>>>3}function ka(d){var a=l(d,1),c=l(d,8);d=T(d,7);return new b(a.a^c.a^d.a,a.b^c.b^d.b)}function la(d){return r(d,17)^r(d,19)^d>>>10}function ma(d){var a=l(d,19),c=l(d,61);d=T(d,6);return new b(a.a^c.a^d.a,a.b^c.b^d.b)}function A(d,a){var c=(d&65535)+(a&65535);return((d>>>16)+(a>>>16)+(c>>>16)&65535)<<16|c&65535}function na(d,a, c,b){var f=(d&65535)+(a&65535)+(c&65535)+(b&65535);return((d>>>16)+(a>>>16)+(c>>>16)+(b>>>16)+(f>>>16)&65535)<<16|f&65535}function B(d,a,c,b,f){var e=(d&65535)+(a&65535)+(c&65535)+(b&65535)+(f&65535);return((d>>>16)+(a>>>16)+(c>>>16)+(b>>>16)+(f>>>16)+(e>>>16)&65535)<<16|e&65535}function oa(d,a){var c,e,f;c=(d.b&65535)+(a.b&65535);e=(d.b>>>16)+(a.b>>>16)+(c>>>16);f=(e&65535)<<16|c&65535;c=(d.a&65535)+(a.a&65535)+(e>>>16);e=(d.a>>>16)+(a.a>>>16)+(c>>>16);return new b((e&65535)<<16|c&65535,f)}function pa(d, -a,c,e){var f,g,h;f=(d.b&65535)+(a.b&65535)+(c.b&65535)+(e.b&65535);g=(d.b>>>16)+(a.b>>>16)+(c.b>>>16)+(e.b>>>16)+(f>>>16);h=(g&65535)<<16|f&65535;f=(d.a&65535)+(a.a&65535)+(c.a&65535)+(e.a&65535)+(g>>>16);g=(d.a>>>16)+(a.a>>>16)+(c.a>>>16)+(e.a>>>16)+(f>>>16);return new b((g&65535)<<16|f&65535,h)}function qa(d,a,c,e,f){var g,h,l;g=(d.b&65535)+(a.b&65535)+(c.b&65535)+(e.b&65535)+(f.b&65535);h=(d.b>>>16)+(a.b>>>16)+(c.b>>>16)+(e.b>>>16)+(f.b>>>16)+(g>>>16);l=(h&65535)<<16|g&65535;g=(d.a&65535)+(a.a& -65535)+(c.a&65535)+(e.a&65535)+(f.a&65535)+(h>>>16);h=(d.a>>>16)+(a.a>>>16)+(c.a>>>16)+(e.a>>>16)+(f.a>>>16)+(g>>>16);return new b((h&65535)<<16|g&65535,l)}function y(d){var a,c;if("SHA-1"===d)d=[1732584193,4023233417,2562383102,271733878,3285377520];else switch(a=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],c=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],d){case "SHA-224":d=a;break;case "SHA-256":d=c;break;case "SHA-384":d= -[new b(3418070365,a[0]),new b(1654270250,a[1]),new b(2438529370,a[2]),new b(355462360,a[3]),new b(1731405415,a[4]),new b(41048885895,a[5]),new b(3675008525,a[6]),new b(1203062813,a[7])];break;case "SHA-512":d=[new b(c[0],4089235720),new b(c[1],2227873595),new b(c[2],4271175723),new b(c[3],1595750129),new b(c[4],2917565137),new b(c[5],725511199),new b(c[6],4215389547),new b(c[7],327033209)];break;default:throw Error("Unknown SHA variant");}return d}function M(d,a){var c=[],b,e,g,h,l,n,k;b=a[0];e=a[1]; -g=a[2];h=a[3];l=a[4];for(k=0;80>k;k+=1)c[k]=16>k?d[k]:u(c[k-3]^c[k-8]^c[k-14]^c[k-16],1),n=20>k?B(u(b,5),e&g^~e&h,l,1518500249,c[k]):40>k?B(u(b,5),e^g^h,l,1859775393,c[k]):60>k?B(u(b,5),U(e,g,h),l,2400959708,c[k]):B(u(b,5),e^g^h,l,3395469782,c[k]),l=h,h=g,g=u(e,30),e=b,b=n;a[0]=A(b,a[0]);a[1]=A(e,a[1]);a[2]=A(g,a[2]);a[3]=A(h,a[3]);a[4]=A(l,a[4]);return a}function X(b,a,c,e){var f;for(f=(a+65>>>9<<4)+15;b.length<=f;)b.push(0);b[a>>>5]|=128<<24-a%32;b[f]=a+c;c=b.length;for(a=0;a<c;a+=16)e=M(b.slice(a, -a+16),e);return e}function N(d,a,c){var l,f,g,h,r,n,k,m,q,v,p,u,t,w,y,D,E,F,G,H,I,J,z=[],K;if("SHA-224"===c||"SHA-256"===c)v=64,u=1,J=Number,t=A,w=na,y=B,D=ja,E=la,F=fa,G=ha,I=U,H=ca,K=e;else if("SHA-384"===c||"SHA-512"===c)v=80,u=2,J=b,t=oa,w=pa,y=qa,D=ka,E=ma,F=ga,G=ia,I=ea,H=da,K=V;else throw Error("Unexpected error in SHA-2 implementation");c=a[0];l=a[1];f=a[2];g=a[3];h=a[4];r=a[5];n=a[6];k=a[7];for(p=0;p<v;p+=1)16>p?(q=p*u,m=d.length<=q?0:d[q],q=d.length<=q+1?0:d[q+1],z[p]=new J(m,q)):z[p]=w(E(z[p- -2]),z[p-7],D(z[p-15]),z[p-16]),m=y(k,G(h),H(h,r,n),K[p],z[p]),q=t(F(c),I(c,l,f)),k=n,n=r,r=h,h=t(g,m),g=f,f=l,l=c,c=t(m,q);a[0]=t(c,a[0]);a[1]=t(l,a[1]);a[2]=t(f,a[2]);a[3]=t(g,a[3]);a[4]=t(h,a[4]);a[5]=t(r,a[5]);a[6]=t(n,a[6]);a[7]=t(k,a[7]);return a}var e,V;e=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692, -1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];V=[new b(e[0],3609767458),new b(e[1],602891725),new b(e[2], -3964484399),new b(e[3],2173295548),new b(e[4],4081628472),new b(e[5],3053834265),new b(e[6],2937671579),new b(e[7],3664609560),new b(e[8],2734883394),new b(e[9],1164996542),new b(e[10],1323610764),new b(e[11],3590304994),new b(e[12],4068182383),new b(e[13],991336113),new b(e[14],633803317),new b(e[15],3479774868),new b(e[16],2666613458),new b(e[17],944711139),new b(e[18],2341262773),new b(e[19],2007800933),new b(e[20],1495990901),new b(e[21],1856431235),new b(e[22],3175218132),new b(e[23],2198950837), -new b(e[24],3999719339),new b(e[25],766784016),new b(e[26],2566594879),new b(e[27],3203337956),new b(e[28],1034457026),new b(e[29],2466948901),new b(e[30],3758326383),new b(e[31],168717936),new b(e[32],1188179964),new b(e[33],1546045734),new b(e[34],1522805485),new b(e[35],2643833823),new b(e[36],2343527390),new b(e[37],1014477480),new b(e[38],1206759142),new b(e[39],344077627),new b(e[40],1290863460),new b(e[41],3158454273),new b(e[42],3505952657),new b(e[43],106217008),new b(e[44],3606008344),new b(e[45], -1432725776),new b(e[46],1467031594),new b(e[47],851169720),new b(e[48],3100823752),new b(e[49],1363258195),new b(e[50],3750685593),new b(e[51],3785050280),new b(e[52],3318307427),new b(e[53],3812723403),new b(e[54],2003034995),new b(e[55],3602036899),new b(e[56],1575990012),new b(e[57],1125592928),new b(e[58],2716904306),new b(e[59],442776044),new b(e[60],593698344),new b(e[61],3733110249),new b(e[62],2999351573),new b(e[63],3815920427),new b(3391569614,3928383900),new b(3515267271,566280711),new b(3940187606, -3454069534),new b(4118630271,4000239992),new b(116418474,1914138554),new b(174292421,2731055270),new b(289380356,3203993006),new b(460393269,320620315),new b(685471733,587496836),new b(852142971,1086792851),new b(1017036298,365543100),new b(1126000580,2618297676),new b(1288033470,3409855158),new b(1501505948,4234509866),new b(1607167915,987167468),new b(1816402316,1246189591)];"function"===typeof define&&define.amd?define(function(){return w}):"undefined"!==typeof exports?"undefined"!==typeof module&& -module.exports?module.exports=exports=w:exports=w:W.jsSHA=w})(this); +a,c,e){var f,h,g;f=(d.b&65535)+(a.b&65535)+(c.b&65535)+(e.b&65535);h=(d.b>>>16)+(a.b>>>16)+(c.b>>>16)+(e.b>>>16)+(f>>>16);g=(h&65535)<<16|f&65535;f=(d.a&65535)+(a.a&65535)+(c.a&65535)+(e.a&65535)+(h>>>16);h=(d.a>>>16)+(a.a>>>16)+(c.a>>>16)+(e.a>>>16)+(f>>>16);return new b((h&65535)<<16|f&65535,g)}function qa(d,a,c,e,f){var h,g,l;h=(d.b&65535)+(a.b&65535)+(c.b&65535)+(e.b&65535)+(f.b&65535);g=(d.b>>>16)+(a.b>>>16)+(c.b>>>16)+(e.b>>>16)+(f.b>>>16)+(h>>>16);l=(g&65535)<<16|h&65535;h=(d.a&65535)+(a.a& +65535)+(c.a&65535)+(e.a&65535)+(f.a&65535)+(g>>>16);g=(d.a>>>16)+(a.a>>>16)+(c.a>>>16)+(e.a>>>16)+(f.a>>>16)+(h>>>16);return new b((g&65535)<<16|h&65535,l)}function y(d){var a,c;if("SHA-1"===d)d=[1732584193,4023233417,2562383102,271733878,3285377520];else switch(a=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],c=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],d){case "SHA-224":d=a;break;case "SHA-256":d=c;break;case "SHA-384":d= +[new b(3418070365,a[0]),new b(1654270250,a[1]),new b(2438529370,a[2]),new b(355462360,a[3]),new b(1731405415,a[4]),new b(41048885895,a[5]),new b(3675008525,a[6]),new b(1203062813,a[7])];break;case "SHA-512":d=[new b(c[0],4089235720),new b(c[1],2227873595),new b(c[2],4271175723),new b(c[3],1595750129),new b(c[4],2917565137),new b(c[5],725511199),new b(c[6],4215389547),new b(c[7],327033209)];break;default:throw Error("Unknown SHA variant");}return d}function M(d,a){var c=[],b,f,e,g,l,n,k;b=a[0];f=a[1]; +e=a[2];g=a[3];l=a[4];for(k=0;80>k;k+=1)c[k]=16>k?d[k]:u(c[k-3]^c[k-8]^c[k-14]^c[k-16],1),n=20>k?B(u(b,5),f&e^~f&g,l,1518500249,c[k]):40>k?B(u(b,5),f^e^g,l,1859775393,c[k]):60>k?B(u(b,5),U(f,e,g),l,2400959708,c[k]):B(u(b,5),f^e^g,l,3395469782,c[k]),l=g,g=e,e=u(f,30),f=b,b=n;a[0]=A(b,a[0]);a[1]=A(f,a[1]);a[2]=A(e,a[2]);a[3]=A(g,a[3]);a[4]=A(l,a[4]);return a}function X(b,a,c,e){var f;for(f=(a+65>>>9<<4)+15;b.length<=f;)b.push(0);b[a>>>5]|=128<<24-a%32;a+=c;b[f]=a&4294967295;b[f-1]=a/4294967296|0;a=b.length; +for(f=0;f<a;f+=16)e=M(b.slice(f,f+16),e);return e}function N(d,a,c){var l,f,h,g,r,n,k,m,q,v,p,u,t,w,y,D,E,F,G,H,I,J,z=[],K;if("SHA-224"===c||"SHA-256"===c)v=64,u=1,J=Number,t=A,w=na,y=B,D=ja,E=la,F=fa,G=ha,I=U,H=ca,K=e;else if("SHA-384"===c||"SHA-512"===c)v=80,u=2,J=b,t=oa,w=pa,y=qa,D=ka,E=ma,F=ga,G=ia,I=ea,H=da,K=V;else throw Error("Unexpected error in SHA-2 implementation");c=a[0];l=a[1];f=a[2];h=a[3];g=a[4];r=a[5];n=a[6];k=a[7];for(p=0;p<v;p+=1)16>p?(q=p*u,m=d.length<=q?0:d[q],q=d.length<=q+1? +0:d[q+1],z[p]=new J(m,q)):z[p]=w(E(z[p-2]),z[p-7],D(z[p-15]),z[p-16]),m=y(k,G(g),H(g,r,n),K[p],z[p]),q=t(F(c),I(c,l,f)),k=n,n=r,r=g,g=t(h,m),h=f,f=l,l=c,c=t(m,q);a[0]=t(c,a[0]);a[1]=t(l,a[1]);a[2]=t(f,a[2]);a[3]=t(h,a[3]);a[4]=t(g,a[4]);a[5]=t(r,a[5]);a[6]=t(n,a[6]);a[7]=t(k,a[7]);return a}var e,V;e=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078, +604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];V=[new b(e[0],3609767458), +new b(e[1],602891725),new b(e[2],3964484399),new b(e[3],2173295548),new b(e[4],4081628472),new b(e[5],3053834265),new b(e[6],2937671579),new b(e[7],3664609560),new b(e[8],2734883394),new b(e[9],1164996542),new b(e[10],1323610764),new b(e[11],3590304994),new b(e[12],4068182383),new b(e[13],991336113),new b(e[14],633803317),new b(e[15],3479774868),new b(e[16],2666613458),new b(e[17],944711139),new b(e[18],2341262773),new b(e[19],2007800933),new b(e[20],1495990901),new b(e[21],1856431235),new b(e[22], +3175218132),new b(e[23],2198950837),new b(e[24],3999719339),new b(e[25],766784016),new b(e[26],2566594879),new b(e[27],3203337956),new b(e[28],1034457026),new b(e[29],2466948901),new b(e[30],3758326383),new b(e[31],168717936),new b(e[32],1188179964),new b(e[33],1546045734),new b(e[34],1522805485),new b(e[35],2643833823),new b(e[36],2343527390),new b(e[37],1014477480),new b(e[38],1206759142),new b(e[39],344077627),new b(e[40],1290863460),new b(e[41],3158454273),new b(e[42],3505952657),new b(e[43], +106217008),new b(e[44],3606008344),new b(e[45],1432725776),new b(e[46],1467031594),new b(e[47],851169720),new b(e[48],3100823752),new b(e[49],1363258195),new b(e[50],3750685593),new b(e[51],3785050280),new b(e[52],3318307427),new b(e[53],3812723403),new b(e[54],2003034995),new b(e[55],3602036899),new b(e[56],1575990012),new b(e[57],1125592928),new b(e[58],2716904306),new b(e[59],442776044),new b(e[60],593698344),new b(e[61],3733110249),new b(e[62],2999351573),new b(e[63],3815920427),new b(3391569614, +3928383900),new b(3515267271,566280711),new b(3940187606,3454069534),new b(4118630271,4000239992),new b(116418474,1914138554),new b(174292421,2731055270),new b(289380356,3203993006),new b(460393269,320620315),new b(685471733,587496836),new b(852142971,1086792851),new b(1017036298,365543100),new b(1126000580,2618297676),new b(1288033470,3409855158),new b(1501505948,4234509866),new b(1607167915,987167468),new b(1816402316,1246189591)];"function"===typeof define&&define.amd?define(function(){return w}): +"undefined"!==typeof exports?"undefined"!==typeof module&&module.exports?module.exports=exports=w:exports=w:W.jsSHA=w})(this); diff --git a/src/sha1.js b/src/sha1.js index 49b75b2..e4ce92c 100644 --- a/src/sha1.js +++ b/src/sha1.js @@ -9,16 +9,17 @@ Several functions taken from Paul Johnston */ -'use strict';(function(F){function p(d,a,b){var g=0,f=[],c=0,e,k,l,h,m,u,q,v=!1,n=[],r=[],t,p=!1;b=b||{};e=b.encoding||"UTF8";t=b.numRounds||1;l=y(a,e);if(t!==parseInt(t,10)||1>t)throw Error("numRounds must a integer >= 1");if("SHA-1"===d)m=512,u=z,q=G,h=160;else throw Error("Chosen SHA variant is not supported");k=w(d);this.setHMACKey=function(a,b,c){var f;if(!0===v)throw Error("HMAC key already set");if(!0===p)throw Error("Cannot set HMAC key after calling update");e=(c||{}).encoding||"UTF8";b= -y(b,e)(a);a=b.binLen;b=b.value;f=m>>>3;c=f/4-1;if(f<a/8){for(b=q(b,a,0,w(d));b.length<=c;)b.push(0);b[c]&=4294967040}else if(f>a/8){for(;b.length<=c;)b.push(0);b[c]&=4294967040}for(a=0;a<=c;a+=1)n[a]=b[a]^909522486,r[a]=b[a]^1549556828;k=u(n,k);g=m;v=!0};this.update=function(a){var b,d,e,h=0,q=m>>>5;b=l(a,f,c);a=b.binLen;d=b.value;b=a>>>5;for(e=0;e<b;e+=q)h+m<=a&&(k=u(d.slice(e,e+q),k),h+=m);g+=h;f=d.slice(h>>>5);c=a%m;p=!0};this.getHash=function(a,b){var e,l,m,n;if(!0===v)throw Error("Cannot call getHash after setting HMAC key"); -m=A(b);switch(a){case "HEX":e=function(a){return B(a,m)};break;case "B64":e=function(a){return C(a,m)};break;case "BYTES":e=D;break;case "ARRAYBUFFER":try{l=new ArrayBuffer(0)}catch(L){throw Error("ARRAYBUFFER not supported by this environment");}e=E;break;default:throw Error("format must be HEX, B64, BYTES, or ARRAYBUFFER");}n=q(f.slice(),c,g,k.slice());for(l=1;l<t;l+=1)n=q(n,h,0,w(d));return e(n)};this.getHMAC=function(a,b){var e,l,n,p;if(!1===v)throw Error("Cannot call getHMAC without first setting HMAC key"); -n=A(b);switch(a){case "HEX":e=function(a){return B(a,n)};break;case "B64":e=function(a){return C(a,n)};break;case "BYTES":e=D;break;case "ARRAYBUFFER":try{e=new ArrayBuffer(0)}catch(t){throw Error("ARRAYBUFFER not supported by this environment");}e=E;break;default:throw Error("outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER");}l=q(f.slice(),c,g,k.slice());p=u(r,w(d));p=q(l,h,m,p);return e(p)}}function H(d,a,b){var g=d.length,f,c,e,k,l;a=a||[0];b=b||0;l=b>>>3;if(0!==g%2)throw Error("String of HEX type must be in byte increments"); -for(f=0;f<g;f+=2){c=parseInt(d.substr(f,2),16);if(isNaN(c))throw Error("String of HEX type contains invalid characters");k=(f>>>1)+l;for(e=k>>>2;a.length<=e;)a.push(0);a[e]|=c<<8*(3-k%4)}return{value:a,binLen:4*g+b}}function I(d,a,b){var g=[],f,c,e,k,g=a||[0];b=b||0;c=b>>>3;for(f=0;f<d.length;f+=1)a=d.charCodeAt(f),k=f+c,e=k>>>2,g.length<=e&&g.push(0),g[e]|=a<<8*(3-k%4);return{value:g,binLen:8*d.length+b}}function J(d,a,b){var g=[],f=0,c,e,k,l,h,m,g=a||[0];b=b||0;a=b>>>3;if(-1===d.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string"); -e=d.indexOf("=");d=d.replace(/\=/g,"");if(-1!==e&&e<d.length)throw Error("Invalid '=' found in base-64 string");for(e=0;e<d.length;e+=4){h=d.substr(e,4);for(k=l=0;k<h.length;k+=1)c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(h[k]),l|=c<<18-6*k;for(k=0;k<h.length-1;k+=1){m=f+a;for(c=m>>>2;g.length<=c;)g.push(0);g[c]|=(l>>>16-8*k&255)<<8*(3-m%4);f+=1}}return{value:g,binLen:8*f+b}}function K(d,a,b){var g=[],f,c,e,g=a||[0];b=b||0;f=b>>>3;for(a=0;a<d.byteLength;a+=1)e=a+ -f,c=e>>>2,g.length<=c&&g.push(0),g[c]|=d[a]<<8*(3-e%4);return{value:g,binLen:8*d.byteLength+b}}function B(d,a){var b="",g=4*d.length,f,c;for(f=0;f<g;f+=1)c=d[f>>>2]>>>8*(3-f%4),b+="0123456789abcdef".charAt(c>>>4&15)+"0123456789abcdef".charAt(c&15);return a.outputUpper?b.toUpperCase():b}function C(d,a){var b="",g=4*d.length,f,c,e;for(f=0;f<g;f+=3)for(e=f+1>>>2,c=d.length<=e?0:d[e],e=f+2>>>2,e=d.length<=e?0:d[e],e=(d[f>>>2]>>>8*(3-f%4)&255)<<16|(c>>>8*(3-(f+1)%4)&255)<<8|e>>>8*(3-(f+2)%4)&255,c=0;4> -c;c+=1)8*f+6*c<=32*d.length?b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>>6*(3-c)&63):b+=a.b64Pad;return b}function D(d){var a="",b=4*d.length,g,f;for(g=0;g<b;g+=1)f=d[g>>>2]>>>8*(3-g%4)&255,a+=String.fromCharCode(f);return a}function E(d){var a=4*d.length,b,g=new ArrayBuffer(a);for(b=0;b<a;b+=1)g[b]=d[b>>>2]>>>8*(3-b%4)&255;return g}function A(d){var a={outputUpper:!1,b64Pad:"="};d=d||{};a.outputUpper=d.outputUpper||!1;!0===d.hasOwnProperty("b64Pad")&&(a.b64Pad= -d.b64Pad);if("boolean"!==typeof a.outputUpper)throw Error("Invalid outputUpper formatting option");if("string"!==typeof a.b64Pad)throw Error("Invalid b64Pad formatting option");return a}function y(d,a){var b;switch(a){case "UTF8":case "UTF16BE":case "UTF16LE":break;default:throw Error("encoding must be UTF8, UTF16BE, or UTF16LE");}switch(d){case "HEX":b=H;break;case "TEXT":b=function(b,d,c){var e=[],k=[],l=0,h,m,n,q,p,e=d||[0];d=c||0;n=d>>>3;if("UTF8"===a)for(h=0;h<b.length;h+=1)for(c=b.charCodeAt(h), -k=[],128>c?k.push(c):2048>c?(k.push(192|c>>>6),k.push(128|c&63)):55296>c||57344<=c?k.push(224|c>>>12,128|c>>>6&63,128|c&63):(h+=1,c=65536+((c&1023)<<10|b.charCodeAt(h)&1023),k.push(240|c>>>18,128|c>>>12&63,128|c>>>6&63,128|c&63)),m=0;m<k.length;m+=1){p=l+n;for(q=p>>>2;e.length<=q;)e.push(0);e[q]|=k[m]<<8*(3-p%4);l+=1}else if("UTF16BE"===a||"UTF16LE"===a)for(h=0;h<b.length;h+=1){c=b.charCodeAt(h);"UTF16LE"===a&&(m=c&255,c=m<<8|c>>>8);p=l+n;for(q=p>>>2;e.length<=q;)e.push(0);e[q]|=c<<8*(2-p%4);l+=2}return{value:e, -binLen:8*l+d}};break;case "B64":b=J;break;case "BYTES":b=I;break;case "ARRAYBUFFER":try{b=new ArrayBuffer(0)}catch(g){throw Error("ARRAYBUFFER not supported by this environment");}b=K;break;default:throw Error("format must be HEX, TEXT, B64, BYTES, or ARRAYBUFFER");}return b}function n(d,a){return d<<a|d>>>32-a}function r(d,a){var b=(d&65535)+(a&65535);return((d>>>16)+(a>>>16)+(b>>>16)&65535)<<16|b&65535}function x(d,a,b,g,f){var c=(d&65535)+(a&65535)+(b&65535)+(g&65535)+(f&65535);return((d>>>16)+ -(a>>>16)+(b>>>16)+(g>>>16)+(f>>>16)+(c>>>16)&65535)<<16|c&65535}function w(d){if("SHA-1"===d)d=[1732584193,4023233417,2562383102,271733878,3285377520];else throw Error("No SHA variants supported");return d}function z(d,a){var b=[],g,f,c,e,k,l,h;g=a[0];f=a[1];c=a[2];e=a[3];k=a[4];for(h=0;80>h;h+=1)b[h]=16>h?d[h]:n(b[h-3]^b[h-8]^b[h-14]^b[h-16],1),l=20>h?x(n(g,5),f&c^~f&e,k,1518500249,b[h]):40>h?x(n(g,5),f^c^e,k,1859775393,b[h]):60>h?x(n(g,5),f&c^f&e^c&e,k,2400959708,b[h]):x(n(g,5),f^c^e,k,3395469782, -b[h]),k=e,e=c,c=n(f,30),f=g,g=l;a[0]=r(g,a[0]);a[1]=r(f,a[1]);a[2]=r(c,a[2]);a[3]=r(e,a[3]);a[4]=r(k,a[4]);return a}function G(d,a,b,g){var f;for(f=(a+65>>>9<<4)+15;d.length<=f;)d.push(0);d[a>>>5]|=128<<24-a%32;d[f]=a+b;b=d.length;for(a=0;a<b;a+=16)g=z(d.slice(a,a+16),g);return g}"function"===typeof define&&define.amd?define(function(){return p}):"undefined"!==typeof exports?"undefined"!==typeof module&&module.exports?module.exports=exports=p:exports=p:F.jsSHA=p})(this); +'use strict';(function(F){function p(d,a,c){var g=0,b=[],e=0,f,k,l,h,m,u,q,v=!1,n=[],r=[],t,p=!1;c=c||{};f=c.encoding||"UTF8";t=c.numRounds||1;l=y(a,f);if(t!==parseInt(t,10)||1>t)throw Error("numRounds must a integer >= 1");if("SHA-1"===d)m=512,u=z,q=G,h=160;else throw Error("Chosen SHA variant is not supported");k=w(d);this.setHMACKey=function(a,b,e){var c;if(!0===v)throw Error("HMAC key already set");if(!0===p)throw Error("Cannot set HMAC key after calling update");f=(e||{}).encoding||"UTF8";b= +y(b,f)(a);a=b.binLen;b=b.value;c=m>>>3;e=c/4-1;if(c<a/8){for(b=q(b,a,0,w(d));b.length<=e;)b.push(0);b[e]&=4294967040}else if(c>a/8){for(;b.length<=e;)b.push(0);b[e]&=4294967040}for(a=0;a<=e;a+=1)n[a]=b[a]^909522486,r[a]=b[a]^1549556828;k=u(n,k);g=m;v=!0};this.update=function(a){var c,d,f,h=0,q=m>>>5;c=l(a,b,e);a=c.binLen;d=c.value;c=a>>>5;for(f=0;f<c;f+=q)h+m<=a&&(k=u(d.slice(f,f+q),k),h+=m);g+=h;b=d.slice(h>>>5);e=a%m;p=!0};this.getHash=function(a,c){var f,l,m,n;if(!0===v)throw Error("Cannot call getHash after setting HMAC key"); +m=A(c);switch(a){case "HEX":f=function(a){return B(a,m)};break;case "B64":f=function(a){return C(a,m)};break;case "BYTES":f=D;break;case "ARRAYBUFFER":try{l=new ArrayBuffer(0)}catch(L){throw Error("ARRAYBUFFER not supported by this environment");}f=E;break;default:throw Error("format must be HEX, B64, BYTES, or ARRAYBUFFER");}n=q(b.slice(),e,g,k.slice());for(l=1;l<t;l+=1)n=q(n,h,0,w(d));return f(n)};this.getHMAC=function(a,c){var f,l,n,p;if(!1===v)throw Error("Cannot call getHMAC without first setting HMAC key"); +n=A(c);switch(a){case "HEX":f=function(a){return B(a,n)};break;case "B64":f=function(a){return C(a,n)};break;case "BYTES":f=D;break;case "ARRAYBUFFER":try{f=new ArrayBuffer(0)}catch(t){throw Error("ARRAYBUFFER not supported by this environment");}f=E;break;default:throw Error("outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER");}l=q(b.slice(),e,g,k.slice());p=u(r,w(d));p=q(l,h,m,p);return f(p)}}function H(d,a,c){var g=d.length,b,e,f,k,l;a=a||[0];c=c||0;l=c>>>3;if(0!==g%2)throw Error("String of HEX type must be in byte increments"); +for(b=0;b<g;b+=2){e=parseInt(d.substr(b,2),16);if(isNaN(e))throw Error("String of HEX type contains invalid characters");k=(b>>>1)+l;for(f=k>>>2;a.length<=f;)a.push(0);a[f]|=e<<8*(3-k%4)}return{value:a,binLen:4*g+c}}function I(d,a,c){var g=[],b,e,f,k,g=a||[0];c=c||0;e=c>>>3;for(b=0;b<d.length;b+=1)a=d.charCodeAt(b),k=b+e,f=k>>>2,g.length<=f&&g.push(0),g[f]|=a<<8*(3-k%4);return{value:g,binLen:8*d.length+c}}function J(d,a,c){var g=[],b=0,e,f,k,l,h,m,g=a||[0];c=c||0;a=c>>>3;if(-1===d.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string"); +f=d.indexOf("=");d=d.replace(/\=/g,"");if(-1!==f&&f<d.length)throw Error("Invalid '=' found in base-64 string");for(f=0;f<d.length;f+=4){h=d.substr(f,4);for(k=l=0;k<h.length;k+=1)e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(h[k]),l|=e<<18-6*k;for(k=0;k<h.length-1;k+=1){m=b+a;for(e=m>>>2;g.length<=e;)g.push(0);g[e]|=(l>>>16-8*k&255)<<8*(3-m%4);b+=1}}return{value:g,binLen:8*b+c}}function K(d,a,c){var g=[],b,e,f,g=a||[0];c=c||0;b=c>>>3;for(a=0;a<d.byteLength;a+=1)f=a+ +b,e=f>>>2,g.length<=e&&g.push(0),g[e]|=d[a]<<8*(3-f%4);return{value:g,binLen:8*d.byteLength+c}}function B(d,a){var c="",g=4*d.length,b,e;for(b=0;b<g;b+=1)e=d[b>>>2]>>>8*(3-b%4),c+="0123456789abcdef".charAt(e>>>4&15)+"0123456789abcdef".charAt(e&15);return a.outputUpper?c.toUpperCase():c}function C(d,a){var c="",g=4*d.length,b,e,f;for(b=0;b<g;b+=3)for(f=b+1>>>2,e=d.length<=f?0:d[f],f=b+2>>>2,f=d.length<=f?0:d[f],f=(d[b>>>2]>>>8*(3-b%4)&255)<<16|(e>>>8*(3-(b+1)%4)&255)<<8|f>>>8*(3-(b+2)%4)&255,e=0;4> +e;e+=1)8*b+6*e<=32*d.length?c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>>6*(3-e)&63):c+=a.b64Pad;return c}function D(d){var a="",c=4*d.length,g,b;for(g=0;g<c;g+=1)b=d[g>>>2]>>>8*(3-g%4)&255,a+=String.fromCharCode(b);return a}function E(d){var a=4*d.length,c,g=new ArrayBuffer(a);for(c=0;c<a;c+=1)g[c]=d[c>>>2]>>>8*(3-c%4)&255;return g}function A(d){var a={outputUpper:!1,b64Pad:"="};d=d||{};a.outputUpper=d.outputUpper||!1;!0===d.hasOwnProperty("b64Pad")&&(a.b64Pad= +d.b64Pad);if("boolean"!==typeof a.outputUpper)throw Error("Invalid outputUpper formatting option");if("string"!==typeof a.b64Pad)throw Error("Invalid b64Pad formatting option");return a}function y(d,a){var c;switch(a){case "UTF8":case "UTF16BE":case "UTF16LE":break;default:throw Error("encoding must be UTF8, UTF16BE, or UTF16LE");}switch(d){case "HEX":c=H;break;case "TEXT":c=function(c,b,e){var f=[],d=[],l=0,h,m,n,q,p,f=b||[0];b=e||0;n=b>>>3;if("UTF8"===a)for(h=0;h<c.length;h+=1)for(e=c.charCodeAt(h), +d=[],128>e?d.push(e):2048>e?(d.push(192|e>>>6),d.push(128|e&63)):55296>e||57344<=e?d.push(224|e>>>12,128|e>>>6&63,128|e&63):(h+=1,e=65536+((e&1023)<<10|c.charCodeAt(h)&1023),d.push(240|e>>>18,128|e>>>12&63,128|e>>>6&63,128|e&63)),m=0;m<d.length;m+=1){p=l+n;for(q=p>>>2;f.length<=q;)f.push(0);f[q]|=d[m]<<8*(3-p%4);l+=1}else if("UTF16BE"===a||"UTF16LE"===a)for(h=0;h<c.length;h+=1){e=c.charCodeAt(h);"UTF16LE"===a&&(m=e&255,e=m<<8|e>>>8);p=l+n;for(q=p>>>2;f.length<=q;)f.push(0);f[q]|=e<<8*(2-p%4);l+=2}return{value:f, +binLen:8*l+b}};break;case "B64":c=J;break;case "BYTES":c=I;break;case "ARRAYBUFFER":try{c=new ArrayBuffer(0)}catch(g){throw Error("ARRAYBUFFER not supported by this environment");}c=K;break;default:throw Error("format must be HEX, TEXT, B64, BYTES, or ARRAYBUFFER");}return c}function n(d,a){return d<<a|d>>>32-a}function r(d,a){var c=(d&65535)+(a&65535);return((d>>>16)+(a>>>16)+(c>>>16)&65535)<<16|c&65535}function x(d,a,c,g,b){var e=(d&65535)+(a&65535)+(c&65535)+(g&65535)+(b&65535);return((d>>>16)+ +(a>>>16)+(c>>>16)+(g>>>16)+(b>>>16)+(e>>>16)&65535)<<16|e&65535}function w(d){if("SHA-1"===d)d=[1732584193,4023233417,2562383102,271733878,3285377520];else throw Error("No SHA variants supported");return d}function z(d,a){var c=[],g,b,e,f,k,l,h;g=a[0];b=a[1];e=a[2];f=a[3];k=a[4];for(h=0;80>h;h+=1)c[h]=16>h?d[h]:n(c[h-3]^c[h-8]^c[h-14]^c[h-16],1),l=20>h?x(n(g,5),b&e^~b&f,k,1518500249,c[h]):40>h?x(n(g,5),b^e^f,k,1859775393,c[h]):60>h?x(n(g,5),b&e^b&f^e&f,k,2400959708,c[h]):x(n(g,5),b^e^f,k,3395469782, +c[h]),k=f,f=e,e=n(b,30),b=g,g=l;a[0]=r(g,a[0]);a[1]=r(b,a[1]);a[2]=r(e,a[2]);a[3]=r(f,a[3]);a[4]=r(k,a[4]);return a}function G(d,a,c,g){var b;for(b=(a+65>>>9<<4)+15;d.length<=b;)d.push(0);d[a>>>5]|=128<<24-a%32;a+=c;d[b]=a&4294967295;d[b-1]=a/4294967296|0;a=d.length;for(b=0;b<a;b+=16)g=z(d.slice(b,b+16),g);return g}"function"===typeof define&&define.amd?define(function(){return p}):"undefined"!==typeof exports?"undefined"!==typeof module&&module.exports?module.exports=exports=p:exports=p:F.jsSHA= +p})(this); diff --git a/src/sha256.js b/src/sha256.js index 8a06c73..d80127a 100644 --- a/src/sha256.js +++ b/src/sha256.js @@ -9,9 +9,9 @@ Several functions taken from Paul Johnston */ -'use strict';(function(I){function u(c,a,b){var g=0,d=[],f=0,e,h,q,m,n,x,t,p=!1,l=[],r=[],k,y=!1;b=b||{};e=b.encoding||"UTF8";k=b.numRounds||1;q=z(a,e);if(k!==parseInt(k,10)||1>k)throw Error("numRounds must a integer >= 1");x=function(a,b){return A(a,b,c)};t=function(a,b,f,d){var g,e;if("SHA-224"===c||"SHA-256"===c)g=(b+65>>>9<<4)+15,e=16;else throw Error("Unexpected error in SHA-2 implementation");for(;a.length<=g;)a.push(0);a[b>>>5]|=128<<24-b%32;a[g]=b+f;f=a.length;for(b=0;b<f;b+=e)d=A(a.slice(b, -b+e),d,c);if("SHA-224"===c)a=[d[0],d[1],d[2],d[3],d[4],d[5],d[6]];else if("SHA-256"===c)a=d;else throw Error("Unexpected error in SHA-2 implementation");return a};if("SHA-224"===c)n=512,m=224;else if("SHA-256"===c)n=512,m=256;else throw Error("Chosen SHA variant is not supported");h=v(c);this.setHMACKey=function(a,b,d){var f;if(!0===p)throw Error("HMAC key already set");if(!0===y)throw Error("Cannot set HMAC key after calling update");e=(d||{}).encoding||"UTF8";b=z(b,e)(a);a=b.binLen;b=b.value;f= -n>>>3;d=f/4-1;if(f<a/8){for(b=t(b,a,0,v(c));b.length<=d;)b.push(0);b[d]&=4294967040}else if(f>a/8){for(;b.length<=d;)b.push(0);b[d]&=4294967040}for(a=0;a<=d;a+=1)l[a]=b[a]^909522486,r[a]=b[a]^1549556828;h=x(l,h);g=n;p=!0};this.update=function(a){var b,c,e,m=0,p=n>>>5;b=q(a,d,f);a=b.binLen;c=b.value;b=a>>>5;for(e=0;e<b;e+=p)m+n<=a&&(h=x(c.slice(e,e+p),h),m+=n);g+=m;d=c.slice(m>>>5);f=a%n;y=!0};this.getHash=function(a,b){var e,n,q,l;if(!0===p)throw Error("Cannot call getHash after setting HMAC key"); +'use strict';(function(I){function u(c,a,b){var g=0,d=[],f=0,e,h,q,m,n,x,t,p=!1,l=[],r=[],k,y=!1;b=b||{};e=b.encoding||"UTF8";k=b.numRounds||1;q=z(a,e);if(k!==parseInt(k,10)||1>k)throw Error("numRounds must a integer >= 1");x=function(a,b){return A(a,b,c)};t=function(a,b,f,d){var g,e;if("SHA-224"===c||"SHA-256"===c)g=(b+65>>>9<<4)+15,e=16;else throw Error("Unexpected error in SHA-2 implementation");for(;a.length<=g;)a.push(0);a[b>>>5]|=128<<24-b%32;b=b+f;a[g]=b&4294967295;a[g-1]=b/4294967296|0;f= +a.length;for(b=0;b<f;b+=e)d=A(a.slice(b,b+e),d,c);if("SHA-224"===c)a=[d[0],d[1],d[2],d[3],d[4],d[5],d[6]];else if("SHA-256"===c)a=d;else throw Error("Unexpected error in SHA-2 implementation");return a};if("SHA-224"===c)n=512,m=224;else if("SHA-256"===c)n=512,m=256;else throw Error("Chosen SHA variant is not supported");h=v(c);this.setHMACKey=function(a,b,d){var f;if(!0===p)throw Error("HMAC key already set");if(!0===y)throw Error("Cannot set HMAC key after calling update");e=(d||{}).encoding||"UTF8"; +b=z(b,e)(a);a=b.binLen;b=b.value;f=n>>>3;d=f/4-1;if(f<a/8){for(b=t(b,a,0,v(c));b.length<=d;)b.push(0);b[d]&=4294967040}else if(f>a/8){for(;b.length<=d;)b.push(0);b[d]&=4294967040}for(a=0;a<=d;a+=1)l[a]=b[a]^909522486,r[a]=b[a]^1549556828;h=x(l,h);g=n;p=!0};this.update=function(a){var b,c,e,m=0,p=n>>>5;b=q(a,d,f);a=b.binLen;c=b.value;b=a>>>5;for(e=0;e<b;e+=p)m+n<=a&&(h=x(c.slice(e,e+p),h),m+=n);g+=m;d=c.slice(m>>>5);f=a%n;y=!0};this.getHash=function(a,b){var e,n,q,l;if(!0===p)throw Error("Cannot call getHash after setting HMAC key"); q=B(b);switch(a){case "HEX":e=function(a){return C(a,q)};break;case "B64":e=function(a){return D(a,q)};break;case "BYTES":e=E;break;case "ARRAYBUFFER":try{n=new ArrayBuffer(0)}catch(x){throw Error("ARRAYBUFFER not supported by this environment");}e=F;break;default:throw Error("format must be HEX, B64, BYTES, or ARRAYBUFFER");}l=t(d.slice(),f,g,h.slice());for(n=1;n<k;n+=1)l=t(l,m,0,v(c));return e(l)};this.getHMAC=function(a,b){var e,q,l,k;if(!1===p)throw Error("Cannot call getHMAC without first setting HMAC key"); l=B(b);switch(a){case "HEX":e=function(a){return C(a,l)};break;case "B64":e=function(a){return D(a,l)};break;case "BYTES":e=E;break;case "ARRAYBUFFER":try{e=new ArrayBuffer(0)}catch(G){throw Error("ARRAYBUFFER not supported by this environment");}e=F;break;default:throw Error("outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER");}q=t(d.slice(),f,g,h.slice());k=x(r,v(c));k=t(q,m,n,k);return e(k)}}function l(){}function J(c,a,b){var g=c.length,d,f,e,h,q;a=a||[0];b=b||0;q=b>>>3;if(0!==g%2)throw Error("String of HEX type must be in byte increments"); for(d=0;d<g;d+=2){f=parseInt(c.substr(d,2),16);if(isNaN(f))throw Error("String of HEX type contains invalid characters");h=(d>>>1)+q;for(e=h>>>2;a.length<=e;)a.push(0);a[e]|=f<<8*(3-h%4)}return{value:a,binLen:4*g+b}}function K(c,a,b){var g=[],d,f,e,h,g=a||[0];b=b||0;f=b>>>3;for(d=0;d<c.length;d+=1)a=c.charCodeAt(d),h=d+f,e=h>>>2,g.length<=e&&g.push(0),g[e]|=a<<8*(3-h%4);return{value:g,binLen:8*c.length+b}}function L(c,a,b){var g=[],d=0,f,e,h,q,m,n,g=a||[0];b=b||0;a=b>>>3;if(-1===c.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string"); diff --git a/src/sha512.js b/src/sha512.js index 6689303..afebe73 100644 --- a/src/sha512.js +++ b/src/sha512.js @@ -9,27 +9,27 @@ Several functions taken from Paul Johnston */ -'use strict';(function(J){function w(l,b,d){var c=0,g=[],e=0,a,k,m,n,p,r,u,q=!1,h=[],t=[],v,z=!1;d=d||{};a=d.encoding||"UTF8";v=d.numRounds||1;m=A(b,a);if(v!==parseInt(v,10)||1>v)throw Error("numRounds must a integer >= 1");r=function(b,d){return B(b,d,l)};u=function(b,d,c,e){var g,a;if("SHA-384"===l||"SHA-512"===l)g=(d+129>>>10<<5)+31,a=32;else throw Error("Unexpected error in SHA-2 implementation");for(;b.length<=g;)b.push(0);b[d>>>5]|=128<<24-d%32;b[g]=d+c;c=b.length;for(d=0;d<c;d+=a)e=B(b.slice(d, -d+a),e,l);if("SHA-384"===l)b=[e[0].a,e[0].b,e[1].a,e[1].b,e[2].a,e[2].b,e[3].a,e[3].b,e[4].a,e[4].b,e[5].a,e[5].b];else if("SHA-512"===l)b=[e[0].a,e[0].b,e[1].a,e[1].b,e[2].a,e[2].b,e[3].a,e[3].b,e[4].a,e[4].b,e[5].a,e[5].b,e[6].a,e[6].b,e[7].a,e[7].b];else throw Error("Unexpected error in SHA-2 implementation");return b};if("SHA-384"===l)p=1024,n=384;else if("SHA-512"===l)p=1024,n=512;else throw Error("Chosen SHA variant is not supported");k=x(l);this.setHMACKey=function(b,d,e){var g;if(!0===q)throw Error("HMAC key already set"); -if(!0===z)throw Error("Cannot set HMAC key after calling update");a=(e||{}).encoding||"UTF8";d=A(d,a)(b);b=d.binLen;d=d.value;g=p>>>3;e=g/4-1;if(g<b/8){for(d=u(d,b,0,x(l));d.length<=e;)d.push(0);d[e]&=4294967040}else if(g>b/8){for(;d.length<=e;)d.push(0);d[e]&=4294967040}for(b=0;b<=e;b+=1)h[b]=d[b]^909522486,t[b]=d[b]^1549556828;k=r(h,k);c=p;q=!0};this.update=function(b){var d,l,a,f=0,n=p>>>5;d=m(b,g,e);b=d.binLen;l=d.value;d=b>>>5;for(a=0;a<d;a+=n)f+p<=b&&(k=r(l.slice(a,a+n),k),f+=p);c+=f;g=l.slice(f>>> -5);e=b%p;z=!0};this.getHash=function(b,d){var a,f,p,m;if(!0===q)throw Error("Cannot call getHash after setting HMAC key");p=C(d);switch(b){case "HEX":a=function(b){return D(b,p)};break;case "B64":a=function(b){return E(b,p)};break;case "BYTES":a=F;break;case "ARRAYBUFFER":try{f=new ArrayBuffer(0)}catch(r){throw Error("ARRAYBUFFER not supported by this environment");}a=G;break;default:throw Error("format must be HEX, B64, BYTES, or ARRAYBUFFER");}m=u(g.slice(),e,c,k.slice());for(f=1;f<v;f+=1)m=u(m, -n,0,x(l));return a(m)};this.getHMAC=function(b,d){var a,f,m,h;if(!1===q)throw Error("Cannot call getHMAC without first setting HMAC key");m=C(d);switch(b){case "HEX":a=function(b){return D(b,m)};break;case "B64":a=function(b){return E(b,m)};break;case "BYTES":a=F;break;case "ARRAYBUFFER":try{a=new ArrayBuffer(0)}catch(v){throw Error("ARRAYBUFFER not supported by this environment");}a=G;break;default:throw Error("outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER");}f=u(g.slice(),e,c,k.slice()); -h=r(t,x(l));h=u(f,n,p,h);return a(h)}}function c(l,b){this.a=l;this.b=b}function K(l,b,d){var c=l.length,a,e,f,k,m;b=b||[0];d=d||0;m=d>>>3;if(0!==c%2)throw Error("String of HEX type must be in byte increments");for(a=0;a<c;a+=2){e=parseInt(l.substr(a,2),16);if(isNaN(e))throw Error("String of HEX type contains invalid characters");k=(a>>>1)+m;for(f=k>>>2;b.length<=f;)b.push(0);b[f]|=e<<8*(3-k%4)}return{value:b,binLen:4*c+d}}function L(l,b,d){var c=[],a,e,f,k,c=b||[0];d=d||0;e=d>>>3;for(a=0;a<l.length;a+= -1)b=l.charCodeAt(a),k=a+e,f=k>>>2,c.length<=f&&c.push(0),c[f]|=b<<8*(3-k%4);return{value:c,binLen:8*l.length+d}}function M(l,b,d){var c=[],a=0,e,f,k,m,n,p,c=b||[0];d=d||0;b=d>>>3;if(-1===l.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string");f=l.indexOf("=");l=l.replace(/\=/g,"");if(-1!==f&&f<l.length)throw Error("Invalid '=' found in base-64 string");for(f=0;f<l.length;f+=4){n=l.substr(f,4);for(k=m=0;k<n.length;k+=1)e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(n[k]), -m|=e<<18-6*k;for(k=0;k<n.length-1;k+=1){p=a+b;for(e=p>>>2;c.length<=e;)c.push(0);c[e]|=(m>>>16-8*k&255)<<8*(3-p%4);a+=1}}return{value:c,binLen:8*a+d}}function N(c,b,d){var a=[],g,e,f,a=b||[0];d=d||0;g=d>>>3;for(b=0;b<c.byteLength;b+=1)f=b+g,e=f>>>2,a.length<=e&&a.push(0),a[e]|=c[b]<<8*(3-f%4);return{value:a,binLen:8*c.byteLength+d}}function D(c,b){var d="",a=4*c.length,g,e;for(g=0;g<a;g+=1)e=c[g>>>2]>>>8*(3-g%4),d+="0123456789abcdef".charAt(e>>>4&15)+"0123456789abcdef".charAt(e&15);return b.outputUpper? -d.toUpperCase():d}function E(c,b){var d="",a=4*c.length,g,e,f;for(g=0;g<a;g+=3)for(f=g+1>>>2,e=c.length<=f?0:c[f],f=g+2>>>2,f=c.length<=f?0:c[f],f=(c[g>>>2]>>>8*(3-g%4)&255)<<16|(e>>>8*(3-(g+1)%4)&255)<<8|f>>>8*(3-(g+2)%4)&255,e=0;4>e;e+=1)8*g+6*e<=32*c.length?d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>>6*(3-e)&63):d+=b.b64Pad;return d}function F(c){var b="",d=4*c.length,a,g;for(a=0;a<d;a+=1)g=c[a>>>2]>>>8*(3-a%4)&255,b+=String.fromCharCode(g);return b}function G(c){var b= -4*c.length,d,a=new ArrayBuffer(b);for(d=0;d<b;d+=1)a[d]=c[d>>>2]>>>8*(3-d%4)&255;return a}function C(c){var b={outputUpper:!1,b64Pad:"="};c=c||{};b.outputUpper=c.outputUpper||!1;!0===c.hasOwnProperty("b64Pad")&&(b.b64Pad=c.b64Pad);if("boolean"!==typeof b.outputUpper)throw Error("Invalid outputUpper formatting option");if("string"!==typeof b.b64Pad)throw Error("Invalid b64Pad formatting option");return b}function A(c,b){var d;switch(b){case "UTF8":case "UTF16BE":case "UTF16LE":break;default:throw Error("encoding must be UTF8, UTF16BE, or UTF16LE"); -}switch(c){case "HEX":d=K;break;case "TEXT":d=function(c,d,a){var l=[],k=[],m=0,n,p,r,h,q,l=d||[0];d=a||0;r=d>>>3;if("UTF8"===b)for(n=0;n<c.length;n+=1)for(a=c.charCodeAt(n),k=[],128>a?k.push(a):2048>a?(k.push(192|a>>>6),k.push(128|a&63)):55296>a||57344<=a?k.push(224|a>>>12,128|a>>>6&63,128|a&63):(n+=1,a=65536+((a&1023)<<10|c.charCodeAt(n)&1023),k.push(240|a>>>18,128|a>>>12&63,128|a>>>6&63,128|a&63)),p=0;p<k.length;p+=1){q=m+r;for(h=q>>>2;l.length<=h;)l.push(0);l[h]|=k[p]<<8*(3-q%4);m+=1}else if("UTF16BE"=== -b||"UTF16LE"===b)for(n=0;n<c.length;n+=1){a=c.charCodeAt(n);"UTF16LE"===b&&(p=a&255,a=p<<8|a>>>8);q=m+r;for(h=q>>>2;l.length<=h;)l.push(0);l[h]|=a<<8*(2-q%4);m+=2}return{value:l,binLen:8*m+d}};break;case "B64":d=M;break;case "BYTES":d=L;break;case "ARRAYBUFFER":try{d=new ArrayBuffer(0)}catch(a){throw Error("ARRAYBUFFER not supported by this environment");}d=N;break;default:throw Error("format must be HEX, TEXT, B64, BYTES, or ARRAYBUFFER");}return d}function h(a,b){var d=null,d=new c(a.a,a.b);return d= -32>=b?new c(d.a>>>b|d.b<<32-b&4294967295,d.b>>>b|d.a<<32-b&4294967295):new c(d.b>>>b-32|d.a<<64-b&4294967295,d.a>>>b-32|d.b<<64-b&4294967295)}function H(a,b){var d=null;return d=32>=b?new c(a.a>>>b,a.b>>>b|a.a<<32-b&4294967295):new c(0,a.a>>>b-32)}function O(a,b,d){return new c(a.a&b.a^~a.a&d.a,a.b&b.b^~a.b&d.b)}function P(a,b,d){return new c(a.a&b.a^a.a&d.a^b.a&d.a,a.b&b.b^a.b&d.b^b.b&d.b)}function Q(a){var b=h(a,28),d=h(a,34);a=h(a,39);return new c(b.a^d.a^a.a,b.b^d.b^a.b)}function R(a){var b=h(a, -14),d=h(a,18);a=h(a,41);return new c(b.a^d.a^a.a,b.b^d.b^a.b)}function S(a){var b=h(a,1),d=h(a,8);a=H(a,7);return new c(b.a^d.a^a.a,b.b^d.b^a.b)}function T(a){var b=h(a,19),d=h(a,61);a=H(a,6);return new c(b.a^d.a^a.a,b.b^d.b^a.b)}function U(a,b){var d,h,g;d=(a.b&65535)+(b.b&65535);h=(a.b>>>16)+(b.b>>>16)+(d>>>16);g=(h&65535)<<16|d&65535;d=(a.a&65535)+(b.a&65535)+(h>>>16);h=(a.a>>>16)+(b.a>>>16)+(d>>>16);return new c((h&65535)<<16|d&65535,g)}function V(a,b,d,h){var g,e,f;g=(a.b&65535)+(b.b&65535)+ -(d.b&65535)+(h.b&65535);e=(a.b>>>16)+(b.b>>>16)+(d.b>>>16)+(h.b>>>16)+(g>>>16);f=(e&65535)<<16|g&65535;g=(a.a&65535)+(b.a&65535)+(d.a&65535)+(h.a&65535)+(e>>>16);e=(a.a>>>16)+(b.a>>>16)+(d.a>>>16)+(h.a>>>16)+(g>>>16);return new c((e&65535)<<16|g&65535,f)}function W(a,b,d,h,g){var e,f,k;e=(a.b&65535)+(b.b&65535)+(d.b&65535)+(h.b&65535)+(g.b&65535);f=(a.b>>>16)+(b.b>>>16)+(d.b>>>16)+(h.b>>>16)+(g.b>>>16)+(e>>>16);k=(f&65535)<<16|e&65535;e=(a.a&65535)+(b.a&65535)+(d.a&65535)+(h.a&65535)+(g.a&65535)+ -(f>>>16);f=(a.a>>>16)+(b.a>>>16)+(d.a>>>16)+(h.a>>>16)+(g.a>>>16)+(e>>>16);return new c((f&65535)<<16|e&65535,k)}function x(a){var b,d;b=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428];d=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];switch(a){case "SHA-224":a=b;break;case "SHA-256":a=d;break;case "SHA-384":a=[new c(3418070365,b[0]),new c(1654270250,b[1]),new c(2438529370,b[2]),new c(355462360,b[3]),new c(1731405415, -b[4]),new c(41048885895,b[5]),new c(3675008525,b[6]),new c(1203062813,b[7])];break;case "SHA-512":a=[new c(d[0],4089235720),new c(d[1],2227873595),new c(d[2],4271175723),new c(d[3],1595750129),new c(d[4],2917565137),new c(d[5],725511199),new c(d[6],4215389547),new c(d[7],327033209)];break;default:throw Error("Unknown SHA variant");}return a}function B(a,b,d){var h,g,e,f,k,m,n,p,r,u,q,w,t,v,z,x,A,B,C,D,E,F,y=[],G;if("SHA-384"===d||"SHA-512"===d)u=80,w=2,F=c,t=U,v=V,z=W,x=S,A=T,B=Q,C=R,E=P,D=O,G=I; -else throw Error("Unexpected error in SHA-2 implementation");d=b[0];h=b[1];g=b[2];e=b[3];f=b[4];k=b[5];m=b[6];n=b[7];for(q=0;q<u;q+=1)16>q?(r=q*w,p=a.length<=r?0:a[r],r=a.length<=r+1?0:a[r+1],y[q]=new F(p,r)):y[q]=v(A(y[q-2]),y[q-7],x(y[q-15]),y[q-16]),p=z(n,C(f),D(f,k,m),G[q],y[q]),r=t(B(d),E(d,h,g)),n=m,m=k,k=f,f=t(e,p),e=g,g=h,h=d,d=t(p,r);b[0]=t(d,b[0]);b[1]=t(h,b[1]);b[2]=t(g,b[2]);b[3]=t(e,b[3]);b[4]=t(f,b[4]);b[5]=t(k,b[5]);b[6]=t(m,b[6]);b[7]=t(n,b[7]);return b}var a,I;a=[1116352408,1899447441, +'use strict';(function(J){function w(l,b,c){var d=0,g=[],e=0,a,k,m,n,p,r,u,q=!1,h=[],t=[],v,z=!1;c=c||{};a=c.encoding||"UTF8";v=c.numRounds||1;m=A(b,a);if(v!==parseInt(v,10)||1>v)throw Error("numRounds must a integer >= 1");r=function(b,c){return B(b,c,l)};u=function(b,c,d,e){var g,a;if("SHA-384"===l||"SHA-512"===l)g=(c+129>>>10<<5)+31,a=32;else throw Error("Unexpected error in SHA-2 implementation");for(;b.length<=g;)b.push(0);b[c>>>5]|=128<<24-c%32;c=c+d;b[g]=c&4294967295;b[g-1]=c/4294967296|0; +d=b.length;for(c=0;c<d;c+=a)e=B(b.slice(c,c+a),e,l);if("SHA-384"===l)b=[e[0].a,e[0].b,e[1].a,e[1].b,e[2].a,e[2].b,e[3].a,e[3].b,e[4].a,e[4].b,e[5].a,e[5].b];else if("SHA-512"===l)b=[e[0].a,e[0].b,e[1].a,e[1].b,e[2].a,e[2].b,e[3].a,e[3].b,e[4].a,e[4].b,e[5].a,e[5].b,e[6].a,e[6].b,e[7].a,e[7].b];else throw Error("Unexpected error in SHA-2 implementation");return b};if("SHA-384"===l)p=1024,n=384;else if("SHA-512"===l)p=1024,n=512;else throw Error("Chosen SHA variant is not supported");k=x(l);this.setHMACKey= +function(b,c,e){var g;if(!0===q)throw Error("HMAC key already set");if(!0===z)throw Error("Cannot set HMAC key after calling update");a=(e||{}).encoding||"UTF8";c=A(c,a)(b);b=c.binLen;c=c.value;g=p>>>3;e=g/4-1;if(g<b/8){for(c=u(c,b,0,x(l));c.length<=e;)c.push(0);c[e]&=4294967040}else if(g>b/8){for(;c.length<=e;)c.push(0);c[e]&=4294967040}for(b=0;b<=e;b+=1)h[b]=c[b]^909522486,t[b]=c[b]^1549556828;k=r(h,k);d=p;q=!0};this.update=function(b){var c,l,a,f=0,n=p>>>5;c=m(b,g,e);b=c.binLen;l=c.value;c=b>>> +5;for(a=0;a<c;a+=n)f+p<=b&&(k=r(l.slice(a,a+n),k),f+=p);d+=f;g=l.slice(f>>>5);e=b%p;z=!0};this.getHash=function(b,c){var a,f,p,m;if(!0===q)throw Error("Cannot call getHash after setting HMAC key");p=C(c);switch(b){case "HEX":a=function(b){return D(b,p)};break;case "B64":a=function(b){return E(b,p)};break;case "BYTES":a=F;break;case "ARRAYBUFFER":try{f=new ArrayBuffer(0)}catch(r){throw Error("ARRAYBUFFER not supported by this environment");}a=G;break;default:throw Error("format must be HEX, B64, BYTES, or ARRAYBUFFER"); +}m=u(g.slice(),e,d,k.slice());for(f=1;f<v;f+=1)m=u(m,n,0,x(l));return a(m)};this.getHMAC=function(b,c){var a,f,m,h;if(!1===q)throw Error("Cannot call getHMAC without first setting HMAC key");m=C(c);switch(b){case "HEX":a=function(b){return D(b,m)};break;case "B64":a=function(b){return E(b,m)};break;case "BYTES":a=F;break;case "ARRAYBUFFER":try{a=new ArrayBuffer(0)}catch(v){throw Error("ARRAYBUFFER not supported by this environment");}a=G;break;default:throw Error("outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER"); +}f=u(g.slice(),e,d,k.slice());h=r(t,x(l));h=u(f,n,p,h);return a(h)}}function d(l,b){this.a=l;this.b=b}function K(l,b,c){var d=l.length,a,e,f,k,m;b=b||[0];c=c||0;m=c>>>3;if(0!==d%2)throw Error("String of HEX type must be in byte increments");for(a=0;a<d;a+=2){e=parseInt(l.substr(a,2),16);if(isNaN(e))throw Error("String of HEX type contains invalid characters");k=(a>>>1)+m;for(f=k>>>2;b.length<=f;)b.push(0);b[f]|=e<<8*(3-k%4)}return{value:b,binLen:4*d+c}}function L(l,b,c){var d=[],a,e,f,k,d=b||[0]; +c=c||0;e=c>>>3;for(a=0;a<l.length;a+=1)b=l.charCodeAt(a),k=a+e,f=k>>>2,d.length<=f&&d.push(0),d[f]|=b<<8*(3-k%4);return{value:d,binLen:8*l.length+c}}function M(l,b,c){var d=[],a=0,e,f,k,m,n,p,d=b||[0];c=c||0;b=c>>>3;if(-1===l.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string");f=l.indexOf("=");l=l.replace(/\=/g,"");if(-1!==f&&f<l.length)throw Error("Invalid '=' found in base-64 string");for(f=0;f<l.length;f+=4){n=l.substr(f,4);for(k=m=0;k<n.length;k+=1)e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(n[k]), +m|=e<<18-6*k;for(k=0;k<n.length-1;k+=1){p=a+b;for(e=p>>>2;d.length<=e;)d.push(0);d[e]|=(m>>>16-8*k&255)<<8*(3-p%4);a+=1}}return{value:d,binLen:8*a+c}}function N(d,b,c){var a=[],g,e,f,a=b||[0];c=c||0;g=c>>>3;for(b=0;b<d.byteLength;b+=1)f=b+g,e=f>>>2,a.length<=e&&a.push(0),a[e]|=d[b]<<8*(3-f%4);return{value:a,binLen:8*d.byteLength+c}}function D(d,b){var c="",a=4*d.length,g,e;for(g=0;g<a;g+=1)e=d[g>>>2]>>>8*(3-g%4),c+="0123456789abcdef".charAt(e>>>4&15)+"0123456789abcdef".charAt(e&15);return b.outputUpper? +c.toUpperCase():c}function E(d,b){var c="",a=4*d.length,g,e,f;for(g=0;g<a;g+=3)for(f=g+1>>>2,e=d.length<=f?0:d[f],f=g+2>>>2,f=d.length<=f?0:d[f],f=(d[g>>>2]>>>8*(3-g%4)&255)<<16|(e>>>8*(3-(g+1)%4)&255)<<8|f>>>8*(3-(g+2)%4)&255,e=0;4>e;e+=1)8*g+6*e<=32*d.length?c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>>6*(3-e)&63):c+=b.b64Pad;return c}function F(d){var b="",c=4*d.length,a,g;for(a=0;a<c;a+=1)g=d[a>>>2]>>>8*(3-a%4)&255,b+=String.fromCharCode(g);return b}function G(d){var b= +4*d.length,c,a=new ArrayBuffer(b);for(c=0;c<b;c+=1)a[c]=d[c>>>2]>>>8*(3-c%4)&255;return a}function C(d){var b={outputUpper:!1,b64Pad:"="};d=d||{};b.outputUpper=d.outputUpper||!1;!0===d.hasOwnProperty("b64Pad")&&(b.b64Pad=d.b64Pad);if("boolean"!==typeof b.outputUpper)throw Error("Invalid outputUpper formatting option");if("string"!==typeof b.b64Pad)throw Error("Invalid b64Pad formatting option");return b}function A(d,b){var c;switch(b){case "UTF8":case "UTF16BE":case "UTF16LE":break;default:throw Error("encoding must be UTF8, UTF16BE, or UTF16LE"); +}switch(d){case "HEX":c=K;break;case "TEXT":c=function(c,d,a){var l=[],k=[],m=0,n,p,r,h,q,l=d||[0];d=a||0;r=d>>>3;if("UTF8"===b)for(n=0;n<c.length;n+=1)for(a=c.charCodeAt(n),k=[],128>a?k.push(a):2048>a?(k.push(192|a>>>6),k.push(128|a&63)):55296>a||57344<=a?k.push(224|a>>>12,128|a>>>6&63,128|a&63):(n+=1,a=65536+((a&1023)<<10|c.charCodeAt(n)&1023),k.push(240|a>>>18,128|a>>>12&63,128|a>>>6&63,128|a&63)),p=0;p<k.length;p+=1){q=m+r;for(h=q>>>2;l.length<=h;)l.push(0);l[h]|=k[p]<<8*(3-q%4);m+=1}else if("UTF16BE"=== +b||"UTF16LE"===b)for(n=0;n<c.length;n+=1){a=c.charCodeAt(n);"UTF16LE"===b&&(p=a&255,a=p<<8|a>>>8);q=m+r;for(h=q>>>2;l.length<=h;)l.push(0);l[h]|=a<<8*(2-q%4);m+=2}return{value:l,binLen:8*m+d}};break;case "B64":c=M;break;case "BYTES":c=L;break;case "ARRAYBUFFER":try{c=new ArrayBuffer(0)}catch(a){throw Error("ARRAYBUFFER not supported by this environment");}c=N;break;default:throw Error("format must be HEX, TEXT, B64, BYTES, or ARRAYBUFFER");}return c}function h(a,b){var c=null,c=new d(a.a,a.b);return c= +32>=b?new d(c.a>>>b|c.b<<32-b&4294967295,c.b>>>b|c.a<<32-b&4294967295):new d(c.b>>>b-32|c.a<<64-b&4294967295,c.a>>>b-32|c.b<<64-b&4294967295)}function H(a,b){var c=null;return c=32>=b?new d(a.a>>>b,a.b>>>b|a.a<<32-b&4294967295):new d(0,a.a>>>b-32)}function O(a,b,c){return new d(a.a&b.a^~a.a&c.a,a.b&b.b^~a.b&c.b)}function P(a,b,c){return new d(a.a&b.a^a.a&c.a^b.a&c.a,a.b&b.b^a.b&c.b^b.b&c.b)}function Q(a){var b=h(a,28),c=h(a,34);a=h(a,39);return new d(b.a^c.a^a.a,b.b^c.b^a.b)}function R(a){var b=h(a, +14),c=h(a,18);a=h(a,41);return new d(b.a^c.a^a.a,b.b^c.b^a.b)}function S(a){var b=h(a,1),c=h(a,8);a=H(a,7);return new d(b.a^c.a^a.a,b.b^c.b^a.b)}function T(a){var b=h(a,19),c=h(a,61);a=H(a,6);return new d(b.a^c.a^a.a,b.b^c.b^a.b)}function U(a,b){var c,h,g;c=(a.b&65535)+(b.b&65535);h=(a.b>>>16)+(b.b>>>16)+(c>>>16);g=(h&65535)<<16|c&65535;c=(a.a&65535)+(b.a&65535)+(h>>>16);h=(a.a>>>16)+(b.a>>>16)+(c>>>16);return new d((h&65535)<<16|c&65535,g)}function V(a,b,c,h){var g,e,f;g=(a.b&65535)+(b.b&65535)+ +(c.b&65535)+(h.b&65535);e=(a.b>>>16)+(b.b>>>16)+(c.b>>>16)+(h.b>>>16)+(g>>>16);f=(e&65535)<<16|g&65535;g=(a.a&65535)+(b.a&65535)+(c.a&65535)+(h.a&65535)+(e>>>16);e=(a.a>>>16)+(b.a>>>16)+(c.a>>>16)+(h.a>>>16)+(g>>>16);return new d((e&65535)<<16|g&65535,f)}function W(a,b,c,h,g){var e,f,k;e=(a.b&65535)+(b.b&65535)+(c.b&65535)+(h.b&65535)+(g.b&65535);f=(a.b>>>16)+(b.b>>>16)+(c.b>>>16)+(h.b>>>16)+(g.b>>>16)+(e>>>16);k=(f&65535)<<16|e&65535;e=(a.a&65535)+(b.a&65535)+(c.a&65535)+(h.a&65535)+(g.a&65535)+ +(f>>>16);f=(a.a>>>16)+(b.a>>>16)+(c.a>>>16)+(h.a>>>16)+(g.a>>>16)+(e>>>16);return new d((f&65535)<<16|e&65535,k)}function x(a){var b,c;b=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428];c=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];switch(a){case "SHA-224":a=b;break;case "SHA-256":a=c;break;case "SHA-384":a=[new d(3418070365,b[0]),new d(1654270250,b[1]),new d(2438529370,b[2]),new d(355462360,b[3]),new d(1731405415, +b[4]),new d(41048885895,b[5]),new d(3675008525,b[6]),new d(1203062813,b[7])];break;case "SHA-512":a=[new d(c[0],4089235720),new d(c[1],2227873595),new d(c[2],4271175723),new d(c[3],1595750129),new d(c[4],2917565137),new d(c[5],725511199),new d(c[6],4215389547),new d(c[7],327033209)];break;default:throw Error("Unknown SHA variant");}return a}function B(a,b,c){var h,g,e,f,k,m,n,p,r,u,q,w,t,v,z,x,A,B,C,D,E,F,y=[],G;if("SHA-384"===c||"SHA-512"===c)u=80,w=2,F=d,t=U,v=V,z=W,x=S,A=T,B=Q,C=R,E=P,D=O,G=I; +else throw Error("Unexpected error in SHA-2 implementation");c=b[0];h=b[1];g=b[2];e=b[3];f=b[4];k=b[5];m=b[6];n=b[7];for(q=0;q<u;q+=1)16>q?(r=q*w,p=a.length<=r?0:a[r],r=a.length<=r+1?0:a[r+1],y[q]=new F(p,r)):y[q]=v(A(y[q-2]),y[q-7],x(y[q-15]),y[q-16]),p=z(n,C(f),D(f,k,m),G[q],y[q]),r=t(B(c),E(c,h,g)),n=m,m=k,k=f,f=t(e,p),e=g,g=h,h=c,c=t(p,r);b[0]=t(c,b[0]);b[1]=t(h,b[1]);b[2]=t(g,b[2]);b[3]=t(e,b[3]);b[4]=t(f,b[4]);b[5]=t(k,b[5]);b[6]=t(m,b[6]);b[7]=t(n,b[7]);return b}var a,I;a=[1116352408,1899447441, 3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734, -506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];I=[new c(a[0],3609767458),new c(a[1],602891725),new c(a[2],3964484399),new c(a[3],2173295548),new c(a[4],4081628472),new c(a[5],3053834265),new c(a[6],2937671579),new c(a[7],3664609560),new c(a[8],2734883394),new c(a[9],1164996542),new c(a[10],1323610764),new c(a[11],3590304994),new c(a[12],4068182383),new c(a[13],991336113),new c(a[14], -633803317),new c(a[15],3479774868),new c(a[16],2666613458),new c(a[17],944711139),new c(a[18],2341262773),new c(a[19],2007800933),new c(a[20],1495990901),new c(a[21],1856431235),new c(a[22],3175218132),new c(a[23],2198950837),new c(a[24],3999719339),new c(a[25],766784016),new c(a[26],2566594879),new c(a[27],3203337956),new c(a[28],1034457026),new c(a[29],2466948901),new c(a[30],3758326383),new c(a[31],168717936),new c(a[32],1188179964),new c(a[33],1546045734),new c(a[34],1522805485),new c(a[35],2643833823), -new c(a[36],2343527390),new c(a[37],1014477480),new c(a[38],1206759142),new c(a[39],344077627),new c(a[40],1290863460),new c(a[41],3158454273),new c(a[42],3505952657),new c(a[43],106217008),new c(a[44],3606008344),new c(a[45],1432725776),new c(a[46],1467031594),new c(a[47],851169720),new c(a[48],3100823752),new c(a[49],1363258195),new c(a[50],3750685593),new c(a[51],3785050280),new c(a[52],3318307427),new c(a[53],3812723403),new c(a[54],2003034995),new c(a[55],3602036899),new c(a[56],1575990012), -new c(a[57],1125592928),new c(a[58],2716904306),new c(a[59],442776044),new c(a[60],593698344),new c(a[61],3733110249),new c(a[62],2999351573),new c(a[63],3815920427),new c(3391569614,3928383900),new c(3515267271,566280711),new c(3940187606,3454069534),new c(4118630271,4000239992),new c(116418474,1914138554),new c(174292421,2731055270),new c(289380356,3203993006),new c(460393269,320620315),new c(685471733,587496836),new c(852142971,1086792851),new c(1017036298,365543100),new c(1126000580,2618297676), -new c(1288033470,3409855158),new c(1501505948,4234509866),new c(1607167915,987167468),new c(1816402316,1246189591)];"function"===typeof define&&define.amd?define(function(){return w}):"undefined"!==typeof exports?"undefined"!==typeof module&&module.exports?module.exports=exports=w:exports=w:J.jsSHA=w})(this); +506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];I=[new d(a[0],3609767458),new d(a[1],602891725),new d(a[2],3964484399),new d(a[3],2173295548),new d(a[4],4081628472),new d(a[5],3053834265),new d(a[6],2937671579),new d(a[7],3664609560),new d(a[8],2734883394),new d(a[9],1164996542),new d(a[10],1323610764),new d(a[11],3590304994),new d(a[12],4068182383),new d(a[13],991336113),new d(a[14], +633803317),new d(a[15],3479774868),new d(a[16],2666613458),new d(a[17],944711139),new d(a[18],2341262773),new d(a[19],2007800933),new d(a[20],1495990901),new d(a[21],1856431235),new d(a[22],3175218132),new d(a[23],2198950837),new d(a[24],3999719339),new d(a[25],766784016),new d(a[26],2566594879),new d(a[27],3203337956),new d(a[28],1034457026),new d(a[29],2466948901),new d(a[30],3758326383),new d(a[31],168717936),new d(a[32],1188179964),new d(a[33],1546045734),new d(a[34],1522805485),new d(a[35],2643833823), +new d(a[36],2343527390),new d(a[37],1014477480),new d(a[38],1206759142),new d(a[39],344077627),new d(a[40],1290863460),new d(a[41],3158454273),new d(a[42],3505952657),new d(a[43],106217008),new d(a[44],3606008344),new d(a[45],1432725776),new d(a[46],1467031594),new d(a[47],851169720),new d(a[48],3100823752),new d(a[49],1363258195),new d(a[50],3750685593),new d(a[51],3785050280),new d(a[52],3318307427),new d(a[53],3812723403),new d(a[54],2003034995),new d(a[55],3602036899),new d(a[56],1575990012), +new d(a[57],1125592928),new d(a[58],2716904306),new d(a[59],442776044),new d(a[60],593698344),new d(a[61],3733110249),new d(a[62],2999351573),new d(a[63],3815920427),new d(3391569614,3928383900),new d(3515267271,566280711),new d(3940187606,3454069534),new d(4118630271,4000239992),new d(116418474,1914138554),new d(174292421,2731055270),new d(289380356,3203993006),new d(460393269,320620315),new d(685471733,587496836),new d(852142971,1086792851),new d(1017036298,365543100),new d(1126000580,2618297676), +new d(1288033470,3409855158),new d(1501505948,4234509866),new d(1607167915,987167468),new d(1816402316,1246189591)];"function"===typeof define&&define.amd?define(function(){return w}):"undefined"!==typeof exports?"undefined"!==typeof module&&module.exports?module.exports=exports=w:exports=w:J.jsSHA=w})(this); |