|
|
|
@ -1,5 +1,5 @@
|
|
|
|
|
/*
|
|
|
|
|
* js-sha3 v0.3.1
|
|
|
|
|
* js-sha3 v0.4.0
|
|
|
|
|
* https://github.com/emn178/js-sha3
|
|
|
|
|
*
|
|
|
|
|
* Copyright 2015, emn178@gmail.com
|
|
|
|
@ -7,16 +7,14 @@
|
|
|
|
|
* Licensed under the MIT license:
|
|
|
|
|
* http://www.opensource.org/licenses/MIT
|
|
|
|
|
*/
|
|
|
|
|
(function(w,Ba){var E="undefined"!=typeof module;E&&(w=global,w.JS_SHA3_TEST&&(w.navigator={userAgent:"Chrome"}));var Ca=(w.JS_SHA3_TEST||!E)&&-1!=navigator.userAgent.indexOf("Chrome"),b="0123456789abcdef".split(""),H=[1,256,65536,16777216],D=[6,1536,393216,100663296],C=[0,8,16,24],ua=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,
|
|
|
|
|
2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],e=[],a=[],G=function(a){return h(a,224,H)},va=function(a){return h(a,256,H)},wa=function(a){return h(a,384,H)},xa=function(a){return h(a,224,D)},ya=function(a){return h(a,256,D)},za=function(a){return h(a,384,D)},Aa=function(a){return h(a,512,D)},h=function(g,h,D){var E="string"!=typeof g;E&&g.constructor==w.ArrayBuffer&&(g=new Uint8Array(g));h===Ba&&(h=512,D=H);var sa,
|
|
|
|
|
f,G=!1,B=0,ta=0,I=g.length,c,d,k,l,m,n,p,q,r,t,u,v,x,y,z,A,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,aa,ba,ca,da,ea,fa,ga,ha,ia,ja,ka,la,ma,na,oa,pa,qa,F=(1600-2*h)/32,ra=4*F;for(c=0;50>c;++c)a[c]=0;sa=0;do{e[0]=sa;for(c=1;c<F+1;++c)e[c]=0;if(E)for(c=ta;B<I&&c<ra;++B)e[c>>2]|=g[B]<<C[c++&3];else for(c=ta;B<I&&c<ra;++B)f=g.charCodeAt(B),128>f?e[c>>2]|=f<<C[c++&3]:(2048>f?e[c>>2]|=(192|f>>6)<<C[c++&3]:(55296>f||57344<=f?e[c>>2]|=(224|f>>12)<<C[c++&3]:(f=65536+((f&1023)<<10|g.charCodeAt(++B)&1023),e[c>>2]|=
|
|
|
|
|
(240|f>>18)<<C[c++&3],e[c>>2]|=(128|f>>12&63)<<C[c++&3]),e[c>>2]|=(128|f>>6&63)<<C[c++&3]),e[c>>2]|=(128|f&63)<<C[c++&3]);ta=c-ra;B==I&&(e[c>>2]|=D[c&3],++B);sa=e[F];B>I&&c<ra&&(e[F-1]|=2147483648,G=!0);for(c=0;c<F;++c)a[c]^=e[c];for(f=0;48>f;f+=2)k=a[0]^a[10]^a[20]^a[30]^a[40],l=a[1]^a[11]^a[21]^a[31]^a[41],m=a[2]^a[12]^a[22]^a[32]^a[42],n=a[3]^a[13]^a[23]^a[33]^a[43],p=a[4]^a[14]^a[24]^a[34]^a[44],q=a[5]^a[15]^a[25]^a[35]^a[45],r=a[6]^a[16]^a[26]^a[36]^a[46],t=a[7]^a[17]^a[27]^a[37]^a[47],u=a[8]^
|
|
|
|
|
a[18]^a[28]^a[38]^a[48],v=a[9]^a[19]^a[29]^a[39]^a[49],d=u^(m<<1|n>>>31),c=v^(n<<1|m>>>31),a[0]^=d,a[1]^=c,a[10]^=d,a[11]^=c,a[20]^=d,a[21]^=c,a[30]^=d,a[31]^=c,a[40]^=d,a[41]^=c,d=k^(p<<1|q>>>31),c=l^(q<<1|p>>>31),a[2]^=d,a[3]^=c,a[12]^=d,a[13]^=c,a[22]^=d,a[23]^=c,a[32]^=d,a[33]^=c,a[42]^=d,a[43]^=c,d=m^(r<<1|t>>>31),c=n^(t<<1|r>>>31),a[4]^=d,a[5]^=c,a[14]^=d,a[15]^=c,a[24]^=d,a[25]^=c,a[34]^=d,a[35]^=c,a[44]^=d,a[45]^=c,d=p^(u<<1|v>>>31),c=q^(v<<1|u>>>31),a[6]^=d,a[7]^=c,a[16]^=d,a[17]^=c,a[26]^=
|
|
|
|
|
d,a[27]^=c,a[36]^=d,a[37]^=c,a[46]^=d,a[47]^=c,d=r^(k<<1|l>>>31),c=t^(l<<1|k>>>31),a[8]^=d,a[9]^=c,a[18]^=d,a[19]^=c,a[28]^=d,a[29]^=c,a[38]^=d,a[39]^=c,a[48]^=d,a[49]^=c,d=a[0],c=a[1],Z=a[11]<<4|a[10]>>>28,aa=a[10]<<4|a[11]>>>28,z=a[20]<<3|a[21]>>>29,A=a[21]<<3|a[20]>>>29,na=a[31]<<9|a[30]>>>23,oa=a[30]<<9|a[31]>>>23,V=a[40]<<18|a[41]>>>14,W=a[41]<<18|a[40]>>>14,N=a[2]<<1|a[3]>>>31,O=a[3]<<1|a[2]>>>31,k=a[13]<<12|a[12]>>>20,l=a[12]<<12|a[13]>>>20,ba=a[22]<<10|a[23]>>>22,ca=a[23]<<10|a[22]>>>22,J=
|
|
|
|
|
a[33]<<13|a[32]>>>19,K=a[32]<<13|a[33]>>>19,pa=a[42]<<2|a[43]>>>30,qa=a[43]<<2|a[42]>>>30,ha=a[5]<<30|a[4]>>>2,ia=a[4]<<30|a[5]>>>2,P=a[14]<<6|a[15]>>>26,Q=a[15]<<6|a[14]>>>26,m=a[25]<<11|a[24]>>>21,n=a[24]<<11|a[25]>>>21,da=a[34]<<15|a[35]>>>17,ea=a[35]<<15|a[34]>>>17,L=a[45]<<29|a[44]>>>3,M=a[44]<<29|a[45]>>>3,u=a[6]<<28|a[7]>>>4,v=a[7]<<28|a[6]>>>4,ja=a[17]<<23|a[16]>>>9,ka=a[16]<<23|a[17]>>>9,R=a[26]<<25|a[27]>>>7,S=a[27]<<25|a[26]>>>7,p=a[36]<<21|a[37]>>>11,q=a[37]<<21|a[36]>>>11,fa=a[47]<<24|
|
|
|
|
|
a[46]>>>8,ga=a[46]<<24|a[47]>>>8,X=a[8]<<27|a[9]>>>5,Y=a[9]<<27|a[8]>>>5,x=a[18]<<20|a[19]>>>12,y=a[19]<<20|a[18]>>>12,la=a[29]<<7|a[28]>>>25,ma=a[28]<<7|a[29]>>>25,T=a[38]<<8|a[39]>>>24,U=a[39]<<8|a[38]>>>24,r=a[48]<<14|a[49]>>>18,t=a[49]<<14|a[48]>>>18,a[0]=d^~k&m,a[1]=c^~l&n,a[10]=u^~x&z,a[11]=v^~y&A,a[20]=N^~P&R,a[21]=O^~Q&S,a[30]=X^~Z&ba,a[31]=Y^~aa&ca,a[40]=ha^~ja&la,a[41]=ia^~ka&ma,a[2]=k^~m&p,a[3]=l^~n&q,a[12]=x^~z&J,a[13]=y^~A&K,a[22]=P^~R&T,a[23]=Q^~S&U,a[32]=Z^~ba&da,a[33]=aa^~ca&ea,a[42]=
|
|
|
|
|
ja^~la&na,a[43]=ka^~ma&oa,a[4]=m^~p&r,a[5]=n^~q&t,a[14]=z^~J&L,a[15]=A^~K&M,a[24]=R^~T&V,a[25]=S^~U&W,a[34]=ba^~da&fa,a[35]=ca^~ea&ga,a[44]=la^~na&pa,a[45]=ma^~oa&qa,a[6]=p^~r&d,a[7]=q^~t&c,a[16]=J^~L&u,a[17]=K^~M&v,a[26]=T^~V&N,a[27]=U^~W&O,a[36]=da^~fa&X,a[37]=ea^~ga&Y,a[46]=na^~pa&ha,a[47]=oa^~qa&ia,a[8]=r^~d&k,a[9]=t^~c&l,a[18]=L^~u&x,a[19]=M^~v&y,a[28]=V^~N&P,a[29]=W^~O&Q,a[38]=fa^~X&Z,a[39]=ga^~Y&aa,a[48]=pa^~ha&ja,a[49]=qa^~ia&ka,a[0]^=ua[f],a[1]^=ua[f+1]}while(!G);g="";if(Ca)d=a[0],c=a[1],
|
|
|
|
|
k=a[2],l=a[3],m=a[4],n=a[5],p=a[6],q=a[7],r=a[8],t=a[9],u=a[10],v=a[11],x=a[12],y=a[13],z=a[14],A=a[15],g+=b[d>>4&15]+b[d&15]+b[d>>12&15]+b[d>>8&15]+b[d>>20&15]+b[d>>16&15]+b[d>>28&15]+b[d>>24&15]+b[c>>4&15]+b[c&15]+b[c>>12&15]+b[c>>8&15]+b[c>>20&15]+b[c>>16&15]+b[c>>28&15]+b[c>>24&15]+b[k>>4&15]+b[k&15]+b[k>>12&15]+b[k>>8&15]+b[k>>20&15]+b[k>>16&15]+b[k>>28&15]+b[k>>24&15]+b[l>>4&15]+b[l&15]+b[l>>12&15]+b[l>>8&15]+b[l>>20&15]+b[l>>16&15]+b[l>>28&15]+b[l>>24&15]+b[m>>4&15]+b[m&15]+b[m>>12&15]+b[m>>
|
|
|
|
|
8&15]+b[m>>20&15]+b[m>>16&15]+b[m>>28&15]+b[m>>24&15]+b[n>>4&15]+b[n&15]+b[n>>12&15]+b[n>>8&15]+b[n>>20&15]+b[n>>16&15]+b[n>>28&15]+b[n>>24&15]+b[p>>4&15]+b[p&15]+b[p>>12&15]+b[p>>8&15]+b[p>>20&15]+b[p>>16&15]+b[p>>28&15]+b[p>>24&15],256<=h&&(g+=b[q>>4&15]+b[q&15]+b[q>>12&15]+b[q>>8&15]+b[q>>20&15]+b[q>>16&15]+b[q>>28&15]+b[q>>24&15]),384<=h&&(g+=b[r>>4&15]+b[r&15]+b[r>>12&15]+b[r>>8&15]+b[r>>20&15]+b[r>>16&15]+b[r>>28&15]+b[r>>24&15]+b[t>>4&15]+b[t&15]+b[t>>12&15]+b[t>>8&15]+b[t>>20&15]+b[t>>16&
|
|
|
|
|
15]+b[t>>28&15]+b[t>>24&15]+b[u>>4&15]+b[u&15]+b[u>>12&15]+b[u>>8&15]+b[u>>20&15]+b[u>>16&15]+b[u>>28&15]+b[u>>24&15]+b[v>>4&15]+b[v&15]+b[v>>12&15]+b[v>>8&15]+b[v>>20&15]+b[v>>16&15]+b[v>>28&15]+b[v>>24&15]),512==h&&(g+=b[x>>4&15]+b[x&15]+b[x>>12&15]+b[x>>8&15]+b[x>>20&15]+b[x>>16&15]+b[x>>28&15]+b[x>>24&15]+b[y>>4&15]+b[y&15]+b[y>>12&15]+b[y>>8&15]+b[y>>20&15]+b[y>>16&15]+b[y>>28&15]+b[y>>24&15]+b[z>>4&15]+b[z&15]+b[z>>12&15]+b[z>>8&15]+b[z>>20&15]+b[z>>16&15]+b[z>>28&15]+b[z>>24&15]+b[A>>4&15]+
|
|
|
|
|
b[A&15]+b[A>>12&15]+b[A>>8&15]+b[A>>20&15]+b[A>>16&15]+b[A>>28&15]+b[A>>24&15]);else for(c=0,f=h/32;c<f;++c)d=a[c],g+=b[d>>4&15]+b[d&15]+b[d>>12&15]+b[d>>8&15]+b[d>>20&15]+b[d>>16&15]+b[d>>28&15]+b[d>>24&15];return g};!w.JS_SHA3_TEST&&E?module.exports={sha3_512:Aa,sha3_384:za,sha3_256:ya,sha3_224:xa,keccak_512:h,keccak_384:wa,keccak_256:va,keccak_224:G}:w&&(w.sha3_512=Aa,w.sha3_384=za,w.sha3_256=ya,w.sha3_224=xa,w.keccak_512=h,w.keccak_384=wa,w.keccak_256=va,w.keccak_224=G)})(this);
|
|
|
|
|
(function(E,Da){var xa="undefined"!=typeof module;xa&&(E=global,E.JS_SHA3_TEST&&(E.navigator={userAgent:"Chrome"}));for(var g="0123456789abcdef".split(""),r=[0,8,16,24],ya=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,
|
|
|
|
|
2147483648],m=[224,256,384,512],za=["hex","buffer","shake"],p=function(a,e,l){return function(f){return Aa(f,a,e,a,l)}},m=[{name:"keccak",padding:[1,256,65536,16777216],bits:m,createMethod:p},{name:"sha3",padding:[6,1536,393216,100663296],bits:m,createMethod:p},{name:"shake",padding:[31,7936,2031616,520093696],bits:[128,256],createMethod:function(a,e,l){return function(f,g){return Aa(f,a,e,g,l)}}}],e=[],a=[],F={},ua=0;ua<m.length;++ua)for(var va=m[ua],Ba=va.bits,p=va.createMethod,wa=0;wa<Ba.length;++wa)(function(a,
|
|
|
|
|
e){var g=p(e,a.padding,"hex");F[a.name+"_"+e]=g;for(var f=0;f<za.length;++f){var q=za[f];g[q]=p(e,a.padding,q)}})(va,Ba[wa]);var Aa=function(k,t,l,f,q){var m="string"!=typeof k;m&&k.constructor==E.ArrayBuffer&&(k=new Uint8Array(k));var p,h,F=!1,n=0;h=0;var G=k.length,b,c,d,u,v,w,x,y,z,A,B,C,D,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,aa,ba,ca,da,ea,fa,ga,ha,ia,ja,ka,la,ma,na,oa,pa,qa,ra,sa;t=(1600-2*t)/32;var ta=4*t;for(b=0;50>b;++b)a[b]=0;p=0;do{e[0]=p;for(b=1;b<t+1;++b)e[b]=0;if(m)for(b=h;n<G&&b<ta;++n)e[b>>
|
|
|
|
|
2]|=k[n]<<r[b++&3];else for(b=h;n<G&&b<ta;++n)h=k.charCodeAt(n),128>h?e[b>>2]|=h<<r[b++&3]:(2048>h?e[b>>2]|=(192|h>>6)<<r[b++&3]:(55296>h||57344<=h?e[b>>2]|=(224|h>>12)<<r[b++&3]:(h=65536+((h&1023)<<10|k.charCodeAt(++n)&1023),e[b>>2]|=(240|h>>18)<<r[b++&3],e[b>>2]|=(128|h>>12&63)<<r[b++&3]),e[b>>2]|=(128|h>>6&63)<<r[b++&3]),e[b>>2]|=(128|h&63)<<r[b++&3]);h=b-ta;n==G&&(e[b>>2]|=l[b&3],++n);p=e[t];n>G&&b<ta&&(e[t-1]|=2147483648,F=!0);for(b=0;b<t;++b)a[b]^=e[b];for(b=0;48>b;b+=2)u=a[0]^a[10]^a[20]^a[30]^
|
|
|
|
|
a[40],v=a[1]^a[11]^a[21]^a[31]^a[41],w=a[2]^a[12]^a[22]^a[32]^a[42],x=a[3]^a[13]^a[23]^a[33]^a[43],y=a[4]^a[14]^a[24]^a[34]^a[44],z=a[5]^a[15]^a[25]^a[35]^a[45],A=a[6]^a[16]^a[26]^a[36]^a[46],B=a[7]^a[17]^a[27]^a[37]^a[47],C=a[8]^a[18]^a[28]^a[38]^a[48],D=a[9]^a[19]^a[29]^a[39]^a[49],c=C^(w<<1|x>>>31),d=D^(x<<1|w>>>31),a[0]^=c,a[1]^=d,a[10]^=c,a[11]^=d,a[20]^=c,a[21]^=d,a[30]^=c,a[31]^=d,a[40]^=c,a[41]^=d,c=u^(y<<1|z>>>31),d=v^(z<<1|y>>>31),a[2]^=c,a[3]^=d,a[12]^=c,a[13]^=d,a[22]^=c,a[23]^=d,a[32]^=
|
|
|
|
|
c,a[33]^=d,a[42]^=c,a[43]^=d,c=w^(A<<1|B>>>31),d=x^(B<<1|A>>>31),a[4]^=c,a[5]^=d,a[14]^=c,a[15]^=d,a[24]^=c,a[25]^=d,a[34]^=c,a[35]^=d,a[44]^=c,a[45]^=d,c=y^(C<<1|D>>>31),d=z^(D<<1|C>>>31),a[6]^=c,a[7]^=d,a[16]^=c,a[17]^=d,a[26]^=c,a[27]^=d,a[36]^=c,a[37]^=d,a[46]^=c,a[47]^=d,c=A^(u<<1|v>>>31),d=B^(v<<1|u>>>31),a[8]^=c,a[9]^=d,a[18]^=c,a[19]^=d,a[28]^=c,a[29]^=d,a[38]^=c,a[39]^=d,a[48]^=c,a[49]^=d,c=a[0],d=a[1],ba=a[11]<<4|a[10]>>>28,ca=a[10]<<4|a[11]>>>28,J=a[20]<<3|a[21]>>>29,K=a[21]<<3|a[20]>>>
|
|
|
|
|
29,pa=a[31]<<9|a[30]>>>23,qa=a[30]<<9|a[31]>>>23,X=a[40]<<18|a[41]>>>14,Y=a[41]<<18|a[40]>>>14,P=a[2]<<1|a[3]>>>31,Q=a[3]<<1|a[2]>>>31,u=a[13]<<12|a[12]>>>20,v=a[12]<<12|a[13]>>>20,da=a[22]<<10|a[23]>>>22,ea=a[23]<<10|a[22]>>>22,L=a[33]<<13|a[32]>>>19,M=a[32]<<13|a[33]>>>19,ra=a[42]<<2|a[43]>>>30,sa=a[43]<<2|a[42]>>>30,ja=a[5]<<30|a[4]>>>2,ka=a[4]<<30|a[5]>>>2,R=a[14]<<6|a[15]>>>26,S=a[15]<<6|a[14]>>>26,w=a[25]<<11|a[24]>>>21,x=a[24]<<11|a[25]>>>21,fa=a[34]<<15|a[35]>>>17,ga=a[35]<<15|a[34]>>>17,
|
|
|
|
|
N=a[45]<<29|a[44]>>>3,O=a[44]<<29|a[45]>>>3,C=a[6]<<28|a[7]>>>4,D=a[7]<<28|a[6]>>>4,la=a[17]<<23|a[16]>>>9,ma=a[16]<<23|a[17]>>>9,T=a[26]<<25|a[27]>>>7,U=a[27]<<25|a[26]>>>7,y=a[36]<<21|a[37]>>>11,z=a[37]<<21|a[36]>>>11,ha=a[47]<<24|a[46]>>>8,ia=a[46]<<24|a[47]>>>8,Z=a[8]<<27|a[9]>>>5,aa=a[9]<<27|a[8]>>>5,H=a[18]<<20|a[19]>>>12,I=a[19]<<20|a[18]>>>12,na=a[29]<<7|a[28]>>>25,oa=a[28]<<7|a[29]>>>25,V=a[38]<<8|a[39]>>>24,W=a[39]<<8|a[38]>>>24,A=a[48]<<14|a[49]>>>18,B=a[49]<<14|a[48]>>>18,a[0]=c^~u&w,
|
|
|
|
|
a[1]=d^~v&x,a[10]=C^~H&J,a[11]=D^~I&K,a[20]=P^~R&T,a[21]=Q^~S&U,a[30]=Z^~ba&da,a[31]=aa^~ca&ea,a[40]=ja^~la&na,a[41]=ka^~ma&oa,a[2]=u^~w&y,a[3]=v^~x&z,a[12]=H^~J&L,a[13]=I^~K&M,a[22]=R^~T&V,a[23]=S^~U&W,a[32]=ba^~da&fa,a[33]=ca^~ea&ga,a[42]=la^~na&pa,a[43]=ma^~oa&qa,a[4]=w^~y&A,a[5]=x^~z&B,a[14]=J^~L&N,a[15]=K^~M&O,a[24]=T^~V&X,a[25]=U^~W&Y,a[34]=da^~fa&ha,a[35]=ea^~ga&ia,a[44]=na^~pa&ra,a[45]=oa^~qa&sa,a[6]=y^~A&c,a[7]=z^~B&d,a[16]=L^~N&C,a[17]=M^~O&D,a[26]=V^~X&P,a[27]=W^~Y&Q,a[36]=fa^~ha&Z,a[37]=
|
|
|
|
|
ga^~ia&aa,a[46]=pa^~ra&ja,a[47]=qa^~sa&ka,a[8]=A^~c&u,a[9]=B^~d&v,a[18]=N^~C&H,a[19]=O^~D&I,a[28]=X^~P&R,a[29]=Y^~Q&S,a[38]=ha^~Z&ba,a[39]=ia^~aa&ca,a[48]=ra^~ja&la,a[49]=sa^~ka&ma,a[0]^=ya[b],a[1]^=ya[b+1]}while(!F);k=parseInt(f/32);l=parseInt(f%32/8);if("buffer"==q){f/=8;q=l?new ArrayBuffer(4*(k+1)):new ArrayBuffer(f);m=new Uint32Array(q);for(b=0;b<k;++b)m[b]=a[b];l&&(m[b]=a[b],q=q.slice(0,f));return q}f="";for(b=0;b<k;++b)c=a[b],f+=g[c>>4&15]+g[c&15]+g[c>>12&15]+g[c>>8&15]+g[c>>20&15]+g[c>>16&
|
|
|
|
|
15]+g[c>>28&15]+g[c>>24&15];l&&(c=a[b],0<l&&(f+=g[c>>4&15]+g[c&15]),1<l&&(f+=g[c>>12&15]+g[c>>8&15]),2<l&&(f+=g[c>>20&15]+g[c>>16&15]));return f};if(!E.JS_SHA3_TEST&&xa)module.exports=F;else if(E)for(var Ca in F)E[Ca]=F[Ca]})(this);
|