sha512.min.js 17 KB

123456789
  1. /*
  2. * [js-sha512]{@link https://github.com/emn178/js-sha512}
  3. *
  4. * @version 0.7.1
  5. * @author Chen, Yi-Cyuan [emn178@gmail.com]
  6. * @copyright Chen, Yi-Cyuan 2014-2017
  7. * @license MIT
  8. */
  9. !function(){"use strict";function h(h,t){t?(p[0]=p[1]=p[2]=p[3]=p[4]=p[5]=p[6]=p[7]=p[8]=p[9]=p[10]=p[11]=p[12]=p[13]=p[14]=p[15]=p[16]=p[17]=p[18]=p[19]=p[20]=p[21]=p[22]=p[23]=p[24]=p[25]=p[26]=p[27]=p[28]=p[29]=p[30]=p[31]=p[32]=0,this.blocks=p):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],384==h?(this.h0h=3418070365,this.h0l=3238371032,this.h1h=1654270250,this.h1l=914150663,this.h2h=2438529370,this.h2l=812702999,this.h3h=355462360,this.h3l=4144912697,this.h4h=1731405415,this.h4l=4290775857,this.h5h=2394180231,this.h5l=1750603025,this.h6h=3675008525,this.h6l=1694076839,this.h7h=1203062813,this.h7l=3204075428):256==h?(this.h0h=573645204,this.h0l=4230739756,this.h1h=2673172387,this.h1l=3360449730,this.h2h=596883563,this.h2l=1867755857,this.h3h=2520282905,this.h3l=1497426621,this.h4h=2519219938,this.h4l=2827943907,this.h5h=3193839141,this.h5l=1401305490,this.h6h=721525244,this.h6l=746961066,this.h7h=246885852,this.h7l=2177182882):224==h?(this.h0h=2352822216,this.h0l=424955298,this.h1h=1944164710,this.h1l=2312950998,this.h2h=502970286,this.h2l=855612546,this.h3h=1738396948,this.h3l=1479516111,this.h4h=258812777,this.h4l=2077511080,this.h5h=2011393907,this.h5l=79989058,this.h6h=1067287976,this.h6l=1780299464,this.h7h=286451373,this.h7l=2446758561):(this.h0h=1779033703,this.h0l=4089235720,this.h1h=3144134277,this.h1l=2227873595,this.h2h=1013904242,this.h2l=4271175723,this.h3h=2773480762,this.h3l=1595750129,this.h4h=1359893119,this.h4l=2917565137,this.h5h=2600822924,this.h5l=725511199,this.h6h=528734635,this.h6l=4215389547,this.h7h=1541459225,this.h7l=327033209),this.bits=h,this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1}function t(t,s,e){var r,a=typeof t;if("string"!==a){if("object"!==a)throw i;if(null===t)throw i;if(l&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||l&&ArrayBuffer.isView(t)))throw i;r=!0}var n=t.length;if(!r){for(var o,f=[],u=(n=t.length,0),c=0;c<n;++c)(o=t.charCodeAt(c))<128?f[u++]=o:o<2048?(f[u++]=192|o>>6,f[u++]=128|63&o):o<55296||o>=57344?(f[u++]=224|o>>12,f[u++]=128|o>>6&63,f[u++]=128|63&o):(o=65536+((1023&o)<<10|1023&t.charCodeAt(++c)),f[u++]=240|o>>18,f[u++]=128|o>>12&63,f[u++]=128|o>>6&63,f[u++]=128|63&o);t=f}t.length>128&&(t=new h(s,!0).update(t).array());var y=[],p=[];for(c=0;c<128;++c){var d=t[c]||0;y[c]=92^d,p[c]=54^d}h.call(this,s,e),this.update(p),this.oKeyPad=y,this.inner=!0,this.sharedMemory=e}var i="input is invalid type",s="object"==typeof window,e=s?window:{};e.JS_SHA512_NO_WINDOW&&(s=!1);var r=!s&&"object"==typeof self;!e.JS_SHA512_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?e=global:r&&(e=self);var a=!e.JS_SHA512_NO_COMMON_JS&&"object"==typeof module&&module.exports,n="function"==typeof define&&define.amd,l=!e.JS_SHA512_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,o="0123456789abcdef".split(""),f=[-2147483648,8388608,32768,128],u=[24,16,8,0],c=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],y=["hex","array","digest","arrayBuffer"],p=[];!e.JS_SHA512_NO_NODE_JS&&Array.isArray||(Array.isArray=function(h){return"[object Array]"===Object.prototype.toString.call(h)}),!l||!e.JS_SHA512_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(h){return"object"==typeof h&&h.buffer&&h.buffer.constructor===ArrayBuffer});var d=function(t,i){return function(s){return new h(i,!0).update(s)[t]()}},b=function(t){var i=d("hex",t);i.create=function(){return new h(t)},i.update=function(h){return i.create().update(h)};for(var s=0;s<y.length;++s){var e=y[s];i[e]=d(e,t)}return i},A=function(h,i){return function(s,e){return new t(s,i,!0).update(e)[h]()}},_=function(h){var i=A("hex",h);i.create=function(i){return new t(i,h)},i.update=function(h,t){return i.create(h).update(t)};for(var s=0;s<y.length;++s){var e=y[s];i[e]=A(e,h)}return i};h.prototype.update=function(h){if(!this.finalized){var t,s=typeof h;if("string"!==s){if("object"!==s)throw i;if(null===h)throw i;if(l&&h.constructor===ArrayBuffer)h=new Uint8Array(h);else if(!(Array.isArray(h)||l&&ArrayBuffer.isView(h)))throw i;t=!0}for(var e,r,a=0,n=h.length,o=this.blocks;a<n;){if(this.hashed&&(this.hashed=!1,o[0]=this.block,o[1]=o[2]=o[3]=o[4]=o[5]=o[6]=o[7]=o[8]=o[9]=o[10]=o[11]=o[12]=o[13]=o[14]=o[15]=o[16]=o[17]=o[18]=o[19]=o[20]=o[21]=o[22]=o[23]=o[24]=o[25]=o[26]=o[27]=o[28]=o[29]=o[30]=o[31]=o[32]=0),t)for(r=this.start;a<n&&r<128;++a)o[r>>2]|=h[a]<<u[3&r++];else for(r=this.start;a<n&&r<128;++a)(e=h.charCodeAt(a))<128?o[r>>2]|=e<<u[3&r++]:e<2048?(o[r>>2]|=(192|e>>6)<<u[3&r++],o[r>>2]|=(128|63&e)<<u[3&r++]):e<55296||e>=57344?(o[r>>2]|=(224|e>>12)<<u[3&r++],o[r>>2]|=(128|e>>6&63)<<u[3&r++],o[r>>2]|=(128|63&e)<<u[3&r++]):(e=65536+((1023&e)<<10|1023&h.charCodeAt(++a)),o[r>>2]|=(240|e>>18)<<u[3&r++],o[r>>2]|=(128|e>>12&63)<<u[3&r++],o[r>>2]|=(128|e>>6&63)<<u[3&r++],o[r>>2]|=(128|63&e)<<u[3&r++]);this.lastByteIndex=r,this.bytes+=r-this.start,r>=128?(this.block=o[32],this.start=r-128,this.hash(),this.hashed=!0):this.start=r}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},h.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var h=this.blocks,t=this.lastByteIndex;h[32]=this.block,h[t>>2]|=f[3&t],this.block=h[32],t>=112&&(this.hashed||this.hash(),h[0]=this.block,h[1]=h[2]=h[3]=h[4]=h[5]=h[6]=h[7]=h[8]=h[9]=h[10]=h[11]=h[12]=h[13]=h[14]=h[15]=h[16]=h[17]=h[18]=h[19]=h[20]=h[21]=h[22]=h[23]=h[24]=h[25]=h[26]=h[27]=h[28]=h[29]=h[30]=h[31]=h[32]=0),h[30]=this.hBytes<<3|this.bytes>>>29,h[31]=this.bytes<<3,this.hash()}},h.prototype.hash=function(){var h,t,i,s,e,r,a,n,l,o,f,u,y,p,d,b,A,_,v,w,U,B,S,g,O,k=this.h0h,z=this.h0l,m=this.h1h,N=this.h1l,j=this.h2h,x=this.h2l,J=this.h3h,H=this.h3l,R=this.h4h,V=this.h4l,C=this.h5h,E=this.h5l,I=this.h6h,D=this.h6l,F=this.h7h,M=this.h7l,W=this.blocks;for(h=32;h<160;h+=2)t=((w=W[h-30])>>>1|(U=W[h-29])<<31)^(w>>>8|U<<24)^w>>>7,i=(U>>>1|w<<31)^(U>>>8|w<<24)^(U>>>7|w<<25),s=((w=W[h-4])>>>19|(U=W[h-3])<<13)^(U>>>29|w<<3)^w>>>6,e=(U>>>19|w<<13)^(w>>>29|U<<3)^(U>>>6|w<<26),w=W[h-32],U=W[h-31],l=((B=W[h-14])>>>16)+(w>>>16)+(t>>>16)+(s>>>16)+((n=(65535&B)+(65535&w)+(65535&t)+(65535&s)+((a=((S=W[h-13])>>>16)+(U>>>16)+(i>>>16)+(e>>>16)+((r=(65535&S)+(65535&U)+(65535&i)+(65535&e))>>>16))>>>16))>>>16),W[h]=l<<16|65535&n,W[h+1]=a<<16|65535&r;var K=k,P=z,Y=m,q=N,G=j,L=x,Q=J,T=H,X=R,Z=V,$=C,hh=E,th=I,ih=D,sh=F,eh=M;for(b=Y&G,A=q&L,h=0;h<160;h+=8)t=(K>>>28|P<<4)^(P>>>2|K<<30)^(P>>>7|K<<25),i=(P>>>28|K<<4)^(K>>>2|P<<30)^(K>>>7|P<<25),s=(X>>>14|Z<<18)^(X>>>18|Z<<14)^(Z>>>9|X<<23),e=(Z>>>14|X<<18)^(Z>>>18|X<<14)^(X>>>9|Z<<23),_=(o=K&Y)^K&G^b,v=(f=P&q)^P&L^A,g=X&$^~X&th,O=Z&hh^~Z&ih,w=W[h],U=W[h+1],w=(l=((B=c[h])>>>16)+(w>>>16)+(g>>>16)+(s>>>16)+(sh>>>16)+((n=(65535&B)+(65535&w)+(65535&g)+(65535&s)+(65535&sh)+((a=((S=c[h+1])>>>16)+(U>>>16)+(O>>>16)+(e>>>16)+(eh>>>16)+((r=(65535&S)+(65535&U)+(65535&O)+(65535&e)+(65535&eh))>>>16))>>>16))>>>16))<<16|65535&n,U=a<<16|65535&r,B=(l=(_>>>16)+(t>>>16)+((n=(65535&_)+(65535&t)+((a=(v>>>16)+(i>>>16)+((r=(65535&v)+(65535&i))>>>16))>>>16))>>>16))<<16|65535&n,S=a<<16|65535&r,sh=(l=(Q>>>16)+(w>>>16)+((n=(65535&Q)+(65535&w)+((a=(T>>>16)+(U>>>16)+((r=(65535&T)+(65535&U))>>>16))>>>16))>>>16))<<16|65535&n,eh=a<<16|65535&r,t=((Q=(l=(B>>>16)+(w>>>16)+((n=(65535&B)+(65535&w)+((a=(S>>>16)+(U>>>16)+((r=(65535&S)+(65535&U))>>>16))>>>16))>>>16))<<16|65535&n)>>>28|(T=a<<16|65535&r)<<4)^(T>>>2|Q<<30)^(T>>>7|Q<<25),i=(T>>>28|Q<<4)^(Q>>>2|T<<30)^(Q>>>7|T<<25),s=(sh>>>14|eh<<18)^(sh>>>18|eh<<14)^(eh>>>9|sh<<23),e=(eh>>>14|sh<<18)^(eh>>>18|sh<<14)^(sh>>>9|eh<<23),_=(u=Q&K)^Q&Y^o,v=(y=T&P)^T&q^f,g=sh&X^~sh&$,O=eh&Z^~eh&hh,w=W[h+2],U=W[h+3],w=(l=((B=c[h+2])>>>16)+(w>>>16)+(g>>>16)+(s>>>16)+(th>>>16)+((n=(65535&B)+(65535&w)+(65535&g)+(65535&s)+(65535&th)+((a=((S=c[h+3])>>>16)+(U>>>16)+(O>>>16)+(e>>>16)+(ih>>>16)+((r=(65535&S)+(65535&U)+(65535&O)+(65535&e)+(65535&ih))>>>16))>>>16))>>>16))<<16|65535&n,U=a<<16|65535&r,B=(l=(_>>>16)+(t>>>16)+((n=(65535&_)+(65535&t)+((a=(v>>>16)+(i>>>16)+((r=(65535&v)+(65535&i))>>>16))>>>16))>>>16))<<16|65535&n,S=a<<16|65535&r,th=(l=(G>>>16)+(w>>>16)+((n=(65535&G)+(65535&w)+((a=(L>>>16)+(U>>>16)+((r=(65535&L)+(65535&U))>>>16))>>>16))>>>16))<<16|65535&n,ih=a<<16|65535&r,t=((G=(l=(B>>>16)+(w>>>16)+((n=(65535&B)+(65535&w)+((a=(S>>>16)+(U>>>16)+((r=(65535&S)+(65535&U))>>>16))>>>16))>>>16))<<16|65535&n)>>>28|(L=a<<16|65535&r)<<4)^(L>>>2|G<<30)^(L>>>7|G<<25),i=(L>>>28|G<<4)^(G>>>2|L<<30)^(G>>>7|L<<25),s=(th>>>14|ih<<18)^(th>>>18|ih<<14)^(ih>>>9|th<<23),e=(ih>>>14|th<<18)^(ih>>>18|th<<14)^(th>>>9|ih<<23),_=(p=G&Q)^G&K^u,v=(d=L&T)^L&P^y,g=th&sh^~th&X,O=ih&eh^~ih&Z,w=W[h+4],U=W[h+5],w=(l=((B=c[h+4])>>>16)+(w>>>16)+(g>>>16)+(s>>>16)+($>>>16)+((n=(65535&B)+(65535&w)+(65535&g)+(65535&s)+(65535&$)+((a=((S=c[h+5])>>>16)+(U>>>16)+(O>>>16)+(e>>>16)+(hh>>>16)+((r=(65535&S)+(65535&U)+(65535&O)+(65535&e)+(65535&hh))>>>16))>>>16))>>>16))<<16|65535&n,U=a<<16|65535&r,B=(l=(_>>>16)+(t>>>16)+((n=(65535&_)+(65535&t)+((a=(v>>>16)+(i>>>16)+((r=(65535&v)+(65535&i))>>>16))>>>16))>>>16))<<16|65535&n,S=a<<16|65535&r,$=(l=(Y>>>16)+(w>>>16)+((n=(65535&Y)+(65535&w)+((a=(q>>>16)+(U>>>16)+((r=(65535&q)+(65535&U))>>>16))>>>16))>>>16))<<16|65535&n,hh=a<<16|65535&r,t=((Y=(l=(B>>>16)+(w>>>16)+((n=(65535&B)+(65535&w)+((a=(S>>>16)+(U>>>16)+((r=(65535&S)+(65535&U))>>>16))>>>16))>>>16))<<16|65535&n)>>>28|(q=a<<16|65535&r)<<4)^(q>>>2|Y<<30)^(q>>>7|Y<<25),i=(q>>>28|Y<<4)^(Y>>>2|q<<30)^(Y>>>7|q<<25),s=($>>>14|hh<<18)^($>>>18|hh<<14)^(hh>>>9|$<<23),e=(hh>>>14|$<<18)^(hh>>>18|$<<14)^($>>>9|hh<<23),_=(b=Y&G)^Y&Q^p,v=(A=q&L)^q&T^d,g=$&th^~$&sh,O=hh&ih^~hh&eh,w=W[h+6],U=W[h+7],w=(l=((B=c[h+6])>>>16)+(w>>>16)+(g>>>16)+(s>>>16)+(X>>>16)+((n=(65535&B)+(65535&w)+(65535&g)+(65535&s)+(65535&X)+((a=((S=c[h+7])>>>16)+(U>>>16)+(O>>>16)+(e>>>16)+(Z>>>16)+((r=(65535&S)+(65535&U)+(65535&O)+(65535&e)+(65535&Z))>>>16))>>>16))>>>16))<<16|65535&n,U=a<<16|65535&r,B=(l=(_>>>16)+(t>>>16)+((n=(65535&_)+(65535&t)+((a=(v>>>16)+(i>>>16)+((r=(65535&v)+(65535&i))>>>16))>>>16))>>>16))<<16|65535&n,S=a<<16|65535&r,X=(l=(K>>>16)+(w>>>16)+((n=(65535&K)+(65535&w)+((a=(P>>>16)+(U>>>16)+((r=(65535&P)+(65535&U))>>>16))>>>16))>>>16))<<16|65535&n,Z=a<<16|65535&r,K=(l=(B>>>16)+(w>>>16)+((n=(65535&B)+(65535&w)+((a=(S>>>16)+(U>>>16)+((r=(65535&S)+(65535&U))>>>16))>>>16))>>>16))<<16|65535&n,P=a<<16|65535&r;l=(k>>>16)+(K>>>16)+((n=(65535&k)+(65535&K)+((a=(z>>>16)+(P>>>16)+((r=(65535&z)+(65535&P))>>>16))>>>16))>>>16),this.h0h=l<<16|65535&n,this.h0l=a<<16|65535&r,l=(m>>>16)+(Y>>>16)+((n=(65535&m)+(65535&Y)+((a=(N>>>16)+(q>>>16)+((r=(65535&N)+(65535&q))>>>16))>>>16))>>>16),this.h1h=l<<16|65535&n,this.h1l=a<<16|65535&r,l=(j>>>16)+(G>>>16)+((n=(65535&j)+(65535&G)+((a=(x>>>16)+(L>>>16)+((r=(65535&x)+(65535&L))>>>16))>>>16))>>>16),this.h2h=l<<16|65535&n,this.h2l=a<<16|65535&r,l=(J>>>16)+(Q>>>16)+((n=(65535&J)+(65535&Q)+((a=(H>>>16)+(T>>>16)+((r=(65535&H)+(65535&T))>>>16))>>>16))>>>16),this.h3h=l<<16|65535&n,this.h3l=a<<16|65535&r,l=(R>>>16)+(X>>>16)+((n=(65535&R)+(65535&X)+((a=(V>>>16)+(Z>>>16)+((r=(65535&V)+(65535&Z))>>>16))>>>16))>>>16),this.h4h=l<<16|65535&n,this.h4l=a<<16|65535&r,l=(C>>>16)+($>>>16)+((n=(65535&C)+(65535&$)+((a=(E>>>16)+(hh>>>16)+((r=(65535&E)+(65535&hh))>>>16))>>>16))>>>16),this.h5h=l<<16|65535&n,this.h5l=a<<16|65535&r,l=(I>>>16)+(th>>>16)+((n=(65535&I)+(65535&th)+((a=(D>>>16)+(ih>>>16)+((r=(65535&D)+(65535&ih))>>>16))>>>16))>>>16),this.h6h=l<<16|65535&n,this.h6l=a<<16|65535&r,l=(F>>>16)+(sh>>>16)+((n=(65535&F)+(65535&sh)+((a=(M>>>16)+(eh>>>16)+((r=(65535&M)+(65535&eh))>>>16))>>>16))>>>16),this.h7h=l<<16|65535&n,this.h7l=a<<16|65535&r},h.prototype.hex=function(){this.finalize();var h=this.h0h,t=this.h0l,i=this.h1h,s=this.h1l,e=this.h2h,r=this.h2l,a=this.h3h,n=this.h3l,l=this.h4h,f=this.h4l,u=this.h5h,c=this.h5l,y=this.h6h,p=this.h6l,d=this.h7h,b=this.h7l,A=this.bits,_=o[h>>28&15]+o[h>>24&15]+o[h>>20&15]+o[h>>16&15]+o[h>>12&15]+o[h>>8&15]+o[h>>4&15]+o[15&h]+o[t>>28&15]+o[t>>24&15]+o[t>>20&15]+o[t>>16&15]+o[t>>12&15]+o[t>>8&15]+o[t>>4&15]+o[15&t]+o[i>>28&15]+o[i>>24&15]+o[i>>20&15]+o[i>>16&15]+o[i>>12&15]+o[i>>8&15]+o[i>>4&15]+o[15&i]+o[s>>28&15]+o[s>>24&15]+o[s>>20&15]+o[s>>16&15]+o[s>>12&15]+o[s>>8&15]+o[s>>4&15]+o[15&s]+o[e>>28&15]+o[e>>24&15]+o[e>>20&15]+o[e>>16&15]+o[e>>12&15]+o[e>>8&15]+o[e>>4&15]+o[15&e]+o[r>>28&15]+o[r>>24&15]+o[r>>20&15]+o[r>>16&15]+o[r>>12&15]+o[r>>8&15]+o[r>>4&15]+o[15&r]+o[a>>28&15]+o[a>>24&15]+o[a>>20&15]+o[a>>16&15]+o[a>>12&15]+o[a>>8&15]+o[a>>4&15]+o[15&a];return A>=256&&(_+=o[n>>28&15]+o[n>>24&15]+o[n>>20&15]+o[n>>16&15]+o[n>>12&15]+o[n>>8&15]+o[n>>4&15]+o[15&n]),A>=384&&(_+=o[l>>28&15]+o[l>>24&15]+o[l>>20&15]+o[l>>16&15]+o[l>>12&15]+o[l>>8&15]+o[l>>4&15]+o[15&l]+o[f>>28&15]+o[f>>24&15]+o[f>>20&15]+o[f>>16&15]+o[f>>12&15]+o[f>>8&15]+o[f>>4&15]+o[15&f]+o[u>>28&15]+o[u>>24&15]+o[u>>20&15]+o[u>>16&15]+o[u>>12&15]+o[u>>8&15]+o[u>>4&15]+o[15&u]+o[c>>28&15]+o[c>>24&15]+o[c>>20&15]+o[c>>16&15]+o[c>>12&15]+o[c>>8&15]+o[c>>4&15]+o[15&c]),512==A&&(_+=o[y>>28&15]+o[y>>24&15]+o[y>>20&15]+o[y>>16&15]+o[y>>12&15]+o[y>>8&15]+o[y>>4&15]+o[15&y]+o[p>>28&15]+o[p>>24&15]+o[p>>20&15]+o[p>>16&15]+o[p>>12&15]+o[p>>8&15]+o[p>>4&15]+o[15&p]+o[d>>28&15]+o[d>>24&15]+o[d>>20&15]+o[d>>16&15]+o[d>>12&15]+o[d>>8&15]+o[d>>4&15]+o[15&d]+o[b>>28&15]+o[b>>24&15]+o[b>>20&15]+o[b>>16&15]+o[b>>12&15]+o[b>>8&15]+o[b>>4&15]+o[15&b]),_},h.prototype.toString=h.prototype.hex,h.prototype.digest=function(){this.finalize();var h=this.h0h,t=this.h0l,i=this.h1h,s=this.h1l,e=this.h2h,r=this.h2l,a=this.h3h,n=this.h3l,l=this.h4h,o=this.h4l,f=this.h5h,u=this.h5l,c=this.h6h,y=this.h6l,p=this.h7h,d=this.h7l,b=this.bits,A=[h>>24&255,h>>16&255,h>>8&255,255&h,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24&255,i>>16&255,i>>8&255,255&i,s>>24&255,s>>16&255,s>>8&255,255&s,e>>24&255,e>>16&255,e>>8&255,255&e,r>>24&255,r>>16&255,r>>8&255,255&r,a>>24&255,a>>16&255,a>>8&255,255&a];return b>=256&&A.push(n>>24&255,n>>16&255,n>>8&255,255&n),b>=384&&A.push(l>>24&255,l>>16&255,l>>8&255,255&l,o>>24&255,o>>16&255,o>>8&255,255&o,f>>24&255,f>>16&255,f>>8&255,255&f,u>>24&255,u>>16&255,u>>8&255,255&u),512==b&&A.push(c>>24&255,c>>16&255,c>>8&255,255&c,y>>24&255,y>>16&255,y>>8&255,255&y,p>>24&255,p>>16&255,p>>8&255,255&p,d>>24&255,d>>16&255,d>>8&255,255&d),A},h.prototype.array=h.prototype.digest,h.prototype.arrayBuffer=function(){this.finalize();var h=this.bits,t=new ArrayBuffer(h/8),i=new DataView(t);return i.setUint32(0,this.h0h),i.setUint32(4,this.h0l),i.setUint32(8,this.h1h),i.setUint32(12,this.h1l),i.setUint32(16,this.h2h),i.setUint32(20,this.h2l),i.setUint32(24,this.h3h),h>=256&&i.setUint32(28,this.h3l),h>=384&&(i.setUint32(32,this.h4h),i.setUint32(36,this.h4l),i.setUint32(40,this.h5h),i.setUint32(44,this.h5l)),512==h&&(i.setUint32(48,this.h6h),i.setUint32(52,this.h6l),i.setUint32(56,this.h7h),i.setUint32(60,this.h7l)),t},(t.prototype=new h).finalize=function(){if(h.prototype.finalize.call(this),this.inner){this.inner=!1;var t=this.array();h.call(this,this.bits,this.sharedMemory),this.update(this.oKeyPad),this.update(t),h.prototype.finalize.call(this)}};var v=b(512);v.sha512=v,v.sha384=b(384),v.sha512_256=b(256),v.sha512_224=b(224),v.sha512.hmac=_(512),v.sha384.hmac=_(384),v.sha512_256.hmac=_(256),v.sha512_224.hmac=_(224),a?module.exports=v:(e.sha512=v.sha512,e.sha384=v.sha384,e.sha512_256=v.sha512_256,e.sha512_224=v.sha512_224,n&&define(function(){return v}))}();