diff options
author | Brian Turek <brian.turek@gmail.com> | 2016-05-08 10:57:33 -0400 |
---|---|---|
committer | Brian Turek <brian.turek@gmail.com> | 2016-05-08 10:57:33 -0400 |
commit | f4e8c1b68f920b92208b2f5a6f0f7c990bb9f32e (patch) | |
tree | 296f8909258e269c8962199bc1ec0b39e42112e4 /src/sha512.js | |
parent | 4c72d7c7937b7633b16f1c6acb72a0dd157ac119 (diff) | |
download | jsSHA-f4e8c1b68f920b92208b2f5a6f0f7c990bb9f32e.zip jsSHA-f4e8c1b68f920b92208b2f5a6f0f7c990bb9f32e.tar.gz jsSHA-f4e8c1b68f920b92208b2f5a6f0f7c990bb9f32e.tar.bz2 |
Added compiled versions
Diffstat (limited to 'src/sha512.js')
-rw-r--r-- | src/sha512.js | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/src/sha512.js b/src/sha512.js index b3930fa..6689303 100644 --- a/src/sha512.js +++ b/src/sha512.js @@ -9,26 +9,27 @@ Several functions taken from Paul Johnston */ -'use strict';(function(I){function w(q,c,a){var b=0,f=[],e=0,g,k,l,m,n,u,r,p=!1,h=[],t=[],v,z=!1;a=a||{};g=a.encoding||"UTF8";v=a.numRounds||1;l=A(c,g);if(v!==parseInt(v,10)||1>v)throw Error("numRounds must a integer >= 1");u=function(c,a){return B(c,a,q)};r=function(c,a,d,e){var f,b;if("SHA-384"===q||"SHA-512"===q)f=(a+129>>>10<<5)+31,b=32;else throw Error("Unexpected error in SHA-2 implementation");for(;c.length<=f;)c.push(0);c[a>>>5]|=128<<24-a%32;c[f]=a+d;d=c.length;for(a=0;a<d;a+=b)e=B(c.slice(a, -a+b),e,q);if("SHA-384"===q)c=[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"===q)c=[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 c};if("SHA-384"===q)n=1024,m=384;else if("SHA-512"===q)n=1024,m=512;else throw Error("Chosen SHA variant is not supported");k=x(q);this.setHMACKey=function(c,a,d){var e;if(!0===p)throw Error("HMAC key already set"); -if(!0===z)throw Error("Cannot set HMAC key after calling update");g=(d||{}).encoding||"UTF8";a=A(a,g)(c);c=a.binLen;a=a.value;e=n>>>3;d=e/4-1;if(e<c/8){for(a=r(a,c,0,x(q));a.length<=d;)a.push(0);a[d]&=4294967040}else if(e>c/8){for(;a.length<=d;)a.push(0);a[d]&=4294967040}for(c=0;c<=d;c+=1)h[c]=a[c]^909522486,t[c]=a[c]^1549556828;k=u(h,k);b=n;p=!0};this.update=function(c){var a,q,d,g=0,m=n>>>5;a=l(c,f,e);c=a.binLen;q=a.value;a=c>>>5;for(d=0;d<a;d+=m)g+n<=c&&(k=u(q.slice(d,d+m),k),g+=n);b+=g;f=q.slice(g>>> -5);e=c%n;z=!0};this.getHash=function(c,a){var d,g,n,l;if(!0===p)throw Error("Cannot call getHash after setting HMAC key");n=C(a);switch(c){case "HEX":d=function(c){return D(c,n)};break;case "B64":d=function(c){return E(c,n)};break;case "BYTES":d=F;break;default:throw Error("format must be HEX, B64, or BYTES");}l=r(f.slice(),e,b,k.slice());for(g=1;g<v;g+=1)l=r(l,m,0,x(q));return d(l)};this.getHMAC=function(c,a){var d,g,l,h;if(!1===p)throw Error("Cannot call getHMAC without first setting HMAC key"); -l=C(a);switch(c){case "HEX":d=function(c){return D(c,l)};break;case "B64":d=function(c){return E(c,l)};break;case "BYTES":d=F;break;default:throw Error("outputFormat must be HEX, B64, or BYTES");}g=r(f.slice(),e,b,k.slice());h=u(t,x(q));h=r(g,m,n,h);return d(h)}}function a(a,c){this.a=a;this.b=c}function J(a,c,d){var b=a.length,f,e,g,k,l;c=c||[0];d=d||0;l=d>>>3;if(0!==b%2)throw Error("String of HEX type must be in byte increments");for(f=0;f<b;f+=2){e=parseInt(a.substr(f,2),16);if(isNaN(e))throw Error("String of HEX type contains invalid characters"); -k=(f>>>1)+l;for(g=k>>>2;c.length<=g;)c.push(0);c[g]|=e<<8*(3-k%4)}return{value:c,binLen:4*b+d}}function K(a,c,d){var b=[],f,e,g,k,b=c||[0];d=d||0;e=d>>>3;for(f=0;f<a.length;f+=1)c=a.charCodeAt(f),k=f+e,g=k>>>2,b.length<=g&&b.push(0),b[g]|=c<<8*(3-k%4);return{value:b,binLen:8*a.length+d}}function L(a,c,d){var b=[],f=0,e,g,k,l,m,n,b=c||[0];d=d||0;c=d>>>3;if(-1===a.search(/^[a-zA-Z0-9=+\/]+$/))throw Error("Invalid character in base-64 string");g=a.indexOf("=");a=a.replace(/\=/g,"");if(-1!==g&&g<a.length)throw Error("Invalid '=' found in base-64 string"); -for(g=0;g<a.length;g+=4){m=a.substr(g,4);for(k=l=0;k<m.length;k+=1)e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(m[k]),l|=e<<18-6*k;for(k=0;k<m.length-1;k+=1){n=f+c;for(e=n>>>2;b.length<=e;)b.push(0);b[e]|=(l>>>16-8*k&255)<<8*(3-n%4);f+=1}}return{value:b,binLen:8*f+d}}function D(a,c){var d="",b=4*a.length,f,e;for(f=0;f<b;f+=1)e=a[f>>>2]>>>8*(3-f%4),d+="0123456789abcdef".charAt(e>>>4&15)+"0123456789abcdef".charAt(e&15);return c.outputUpper?d.toUpperCase():d}function E(a, -c){var d="",b=4*a.length,f,e,g;for(f=0;f<b;f+=3)for(g=f+1>>>2,e=a.length<=g?0:a[g],g=f+2>>>2,g=a.length<=g?0:a[g],g=(a[f>>>2]>>>8*(3-f%4)&255)<<16|(e>>>8*(3-(f+1)%4)&255)<<8|g>>>8*(3-(f+2)%4)&255,e=0;4>e;e+=1)8*f+6*e<=32*a.length?d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g>>>6*(3-e)&63):d+=c.b64Pad;return d}function F(a){var c="",d=4*a.length,b,f;for(b=0;b<d;b+=1)f=a[b>>>2]>>>8*(3-b%4)&255,c+=String.fromCharCode(f);return c}function C(a){var c={outputUpper:!1,b64Pad:"="}; -a=a||{};c.outputUpper=a.outputUpper||!1;!0===a.hasOwnProperty("b64Pad")&&(c.b64Pad=a.b64Pad);if("boolean"!==typeof c.outputUpper)throw Error("Invalid outputUpper formatting option");if("string"!==typeof c.b64Pad)throw Error("Invalid b64Pad formatting option");return c}function A(a,c){var d;switch(c){case "UTF8":case "UTF16BE":case "UTF16LE":break;default:throw Error("encoding must be UTF8, UTF16BE, or UTF16LE");}switch(a){case "HEX":d=J;break;case "TEXT":d=function(a,d,e){var b=[],q=[],l=0,m,n,h, -r,p,b=d||[0];d=e||0;h=d>>>3;if("UTF8"===c)for(m=0;m<a.length;m+=1)for(e=a.charCodeAt(m),q=[],128>e?q.push(e):2048>e?(q.push(192|e>>>6),q.push(128|e&63)):55296>e||57344<=e?q.push(224|e>>>12,128|e>>>6&63,128|e&63):(m+=1,e=65536+((e&1023)<<10|a.charCodeAt(m)&1023),q.push(240|e>>>18,128|e>>>12&63,128|e>>>6&63,128|e&63)),n=0;n<q.length;n+=1){p=l+h;for(r=p>>>2;b.length<=r;)b.push(0);b[r]|=q[n]<<8*(3-p%4);l+=1}else if("UTF16BE"===c||"UTF16LE"===c)for(m=0;m<a.length;m+=1){e=a.charCodeAt(m);"UTF16LE"===c&& -(n=e&255,e=n<<8|e>>>8);p=l+h;for(r=p>>>2;b.length<=r;)b.push(0);b[r]|=e<<8*(2-p%4);l+=2}return{value:b,binLen:8*l+d}};break;case "B64":d=L;break;case "BYTES":d=K;break;default:throw Error("format must be HEX, TEXT, B64, or BYTES");}return d}function h(b,c){var d=null,d=new a(b.a,b.b);return d=32>=c?new a(d.a>>>c|d.b<<32-c&4294967295,d.b>>>c|d.a<<32-c&4294967295):new a(d.b>>>c-32|d.a<<64-c&4294967295,d.a>>>c-32|d.b<<64-c&4294967295)}function G(b,c){var d=null;return d=32>=c?new a(b.a>>>c,b.b>>>c|b.a<< -32-c&4294967295):new a(0,b.a>>>c-32)}function M(b,c,d){return new a(b.a&c.a^~b.a&d.a,b.b&c.b^~b.b&d.b)}function N(b,c,d){return new a(b.a&c.a^b.a&d.a^c.a&d.a,b.b&c.b^b.b&d.b^c.b&d.b)}function O(b){var c=h(b,28),d=h(b,34);b=h(b,39);return new a(c.a^d.a^b.a,c.b^d.b^b.b)}function P(b){var c=h(b,14),d=h(b,18);b=h(b,41);return new a(c.a^d.a^b.a,c.b^d.b^b.b)}function Q(b){var c=h(b,1),d=h(b,8);b=G(b,7);return new a(c.a^d.a^b.a,c.b^d.b^b.b)}function R(b){var c=h(b,19),d=h(b,61);b=G(b,6);return new a(c.a^ -d.a^b.a,c.b^d.b^b.b)}function S(b,c){var d,h,f;d=(b.b&65535)+(c.b&65535);h=(b.b>>>16)+(c.b>>>16)+(d>>>16);f=(h&65535)<<16|d&65535;d=(b.a&65535)+(c.a&65535)+(h>>>16);h=(b.a>>>16)+(c.a>>>16)+(d>>>16);return new a((h&65535)<<16|d&65535,f)}function T(b,c,d,h){var f,e,g;f=(b.b&65535)+(c.b&65535)+(d.b&65535)+(h.b&65535);e=(b.b>>>16)+(c.b>>>16)+(d.b>>>16)+(h.b>>>16)+(f>>>16);g=(e&65535)<<16|f&65535;f=(b.a&65535)+(c.a&65535)+(d.a&65535)+(h.a&65535)+(e>>>16);e=(b.a>>>16)+(c.a>>>16)+(d.a>>>16)+(h.a>>>16)+(f>>> -16);return new a((e&65535)<<16|f&65535,g)}function U(b,c,d,h,f){var e,g,k;e=(b.b&65535)+(c.b&65535)+(d.b&65535)+(h.b&65535)+(f.b&65535);g=(b.b>>>16)+(c.b>>>16)+(d.b>>>16)+(h.b>>>16)+(f.b>>>16)+(e>>>16);k=(g&65535)<<16|e&65535;e=(b.a&65535)+(c.a&65535)+(d.a&65535)+(h.a&65535)+(f.a&65535)+(g>>>16);g=(b.a>>>16)+(c.a>>>16)+(d.a>>>16)+(h.a>>>16)+(f.a>>>16)+(e>>>16);return new a((g&65535)<<16|e&65535,k)}function x(b){var c,d;c=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839, -3204075428];d=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];switch(b){case "SHA-224":b=c;break;case "SHA-256":b=d;break;case "SHA-384":b=[new a(3418070365,c[0]),new a(1654270250,c[1]),new a(2438529370,c[2]),new a(355462360,c[3]),new a(1731405415,c[4]),new a(41048885895,c[5]),new a(3675008525,c[6]),new a(1203062813,c[7])];break;case "SHA-512":b=[new a(d[0],4089235720),new a(d[1],2227873595),new a(d[2],4271175723),new a(d[3],1595750129),new a(d[4],2917565137), -new a(d[5],725511199),new a(d[6],4215389547),new a(d[7],327033209)];break;default:throw Error("Unknown SHA variant");}return b}function B(b,c,d){var h,f,e,g,k,l,m,n,u,r,p,w,t,v,z,x,A,B,C,D,E,F,y=[],G;if("SHA-384"===d||"SHA-512"===d)r=80,w=2,F=a,t=S,v=T,z=U,x=Q,A=R,B=O,C=P,E=N,D=M,G=H;else throw Error("Unexpected error in SHA-2 implementation");d=c[0];h=c[1];f=c[2];e=c[3];g=c[4];k=c[5];l=c[6];m=c[7];for(p=0;p<r;p+=1)16>p?(u=p*w,n=b.length<=u?0:b[u],u=b.length<=u+1?0:b[u+1],y[p]=new F(n,u)):y[p]=v(A(y[p- -2]),y[p-7],x(y[p-15]),y[p-16]),n=z(m,C(g),D(g,k,l),G[p],y[p]),u=t(B(d),E(d,h,f)),m=l,l=k,k=g,g=t(e,n),e=f,f=h,h=d,d=t(n,u);c[0]=t(d,c[0]);c[1]=t(h,c[1]);c[2]=t(f,c[2]);c[3]=t(e,c[3]);c[4]=t(g,c[4]);c[5]=t(k,c[5]);c[6]=t(l,c[6]);c[7]=t(m,c[7]);return c}var b,H;b=[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];H=[new a(b[0],3609767458),new a(b[1],602891725),new a(b[2], -3964484399),new a(b[3],2173295548),new a(b[4],4081628472),new a(b[5],3053834265),new a(b[6],2937671579),new a(b[7],3664609560),new a(b[8],2734883394),new a(b[9],1164996542),new a(b[10],1323610764),new a(b[11],3590304994),new a(b[12],4068182383),new a(b[13],991336113),new a(b[14],633803317),new a(b[15],3479774868),new a(b[16],2666613458),new a(b[17],944711139),new a(b[18],2341262773),new a(b[19],2007800933),new a(b[20],1495990901),new a(b[21],1856431235),new a(b[22],3175218132),new a(b[23],2198950837), -new a(b[24],3999719339),new a(b[25],766784016),new a(b[26],2566594879),new a(b[27],3203337956),new a(b[28],1034457026),new a(b[29],2466948901),new a(b[30],3758326383),new a(b[31],168717936),new a(b[32],1188179964),new a(b[33],1546045734),new a(b[34],1522805485),new a(b[35],2643833823),new a(b[36],2343527390),new a(b[37],1014477480),new a(b[38],1206759142),new a(b[39],344077627),new a(b[40],1290863460),new a(b[41],3158454273),new a(b[42],3505952657),new a(b[43],106217008),new a(b[44],3606008344),new a(b[45], -1432725776),new a(b[46],1467031594),new a(b[47],851169720),new a(b[48],3100823752),new a(b[49],1363258195),new a(b[50],3750685593),new a(b[51],3785050280),new a(b[52],3318307427),new a(b[53],3812723403),new a(b[54],2003034995),new a(b[55],3602036899),new a(b[56],1575990012),new a(b[57],1125592928),new a(b[58],2716904306),new a(b[59],442776044),new a(b[60],593698344),new a(b[61],3733110249),new a(b[62],2999351573),new a(b[63],3815920427),new a(3391569614,3928383900),new a(3515267271,566280711),new a(3940187606, -3454069534),new a(4118630271,4000239992),new a(116418474,1914138554),new a(174292421,2731055270),new a(289380356,3203993006),new a(460393269,320620315),new a(685471733,587496836),new a(852142971,1086792851),new a(1017036298,365543100),new a(1126000580,2618297676),new a(1288033470,3409855158),new a(1501505948,4234509866),new a(1607167915,987167468),new a(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:I.jsSHA=w})(this); +'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, +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); |