You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6 lines
2.2 KiB
JavaScript
6 lines
2.2 KiB
JavaScript
(function(m,E){var w="undefined"!=typeof module;w&&(m=global);var p="0123456789abcdef".split(""),F=[1,256,65536,16777216],r=[0,8,16,24],G=[0,1,62,28,27,36,44,6,55,20,3,10,43,25,39,41,45,15,21,8,18,2,61,56,14],A=[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],c=[],b=[],l=[],q=[],B=function(b){return n(b,224)},C=function(b){return n(b,256)},D=function(b){return n(b,384)},n=function(m,n){n===E&&(n=512);var x,d,u=!1,t=0,w=0,y=m.length,e,g,f,k,a,h,v=(1600-2*n)/32,z=4*v;for(a=0;50>a;++a)b[a]=0;x=0;do{c[0]=x;for(a=1;a<v+1;++a)c[a]=0;for(a=w;t<y&&a<z;++t)d=m.charCodeAt(t),128>d?c[a>>2]|=d<<r[a++&3]:(2048>d?c[a>>2]|=(192|d>>6)<<r[a++&3]:(55296>d||57344<=d?c[a>>2]|=(224|d>>12)<<r[a++&3]:(d=65536+((d&1023)<<10|
|
|
m.charCodeAt(++t)&1023),c[a>>2]|=(240|d>>18)<<r[a++&3],c[a>>2]|=(128|d>>12&63)<<r[a++&3]),c[a>>2]|=(128|d>>6&63)<<r[a++&3]),c[a>>2]|=(128|d&63)<<r[a++&3]);w=a-z;t==y&&(c[a>>2]|=F[a&3],++t);x=c[v];t>y&&a<z&&(c[v-1]|=2147483648,u=!0);for(a=0;a<v;++a)b[a]^=c[a];for(d=0;24>d;d++){for(e=0;5>e;e++)f=2*e,q[f]=b[f]^b[f+10]^b[f+20]^b[f+30]^b[f+40],q[f+1]=b[f+1]^b[f+11]^b[f+21]^b[f+31]^b[f+41];for(e=0;5>e;e++)for(f=2*e,a=(e+4)%5*2,h=(e+1)%5*2,k=q[a]^(q[h]<<1|q[h+1]>>>31),h=q[a+1]^(q[h+1]<<1|q[h]>>>31),g=0;5>
|
|
g;g++)a=f+10*g,b[a]^=k,b[a+1]^=h;for(e=0;5>e;e++)for(f=2*e,g=0;5>g;g++)a=f+10*g,h=2*g+(f+3*g)%5*10,k=G[e+5*g],0===k?(l[h]=b[a],l[h+1]=b[a+1]):32>k?(l[h]=b[a]<<k|b[a+1]>>>32-k,l[h+1]=b[a+1]<<k|b[a]>>>32-k):(l[h]=b[a+1]<<k-32|b[a]>>>64-k,l[h+1]=b[a]<<k-32|b[a+1]>>>64-k);for(e=0;5>e;e++)for(f=2*e,g=0;5>g;g++)a=f+10*g,h=2*((e+1)%5+5*g),k=2*((e+2)%5+5*g),b[a]=l[a]^~l[h]&l[k],b[a+1]=l[a+1]^~l[h+1]&l[k+1];b[0]^=A[2*d];b[1]^=A[2*d+1]}}while(!u);u="";a=0;for(d=n/32;a<d;++a)u+=p[b[a]>>4&15]+p[b[a]&15]+p[b[a]>>
|
|
12&15]+p[b[a]>>8&15]+p[b[a]>>20&15]+p[b[a]>>16&15]+p[b[a]>>28&15]+p[b[a]>>24&15];return u};!m.JS_SHA3_TEST&&w?module.exports={sha3_512:n,sha3_384:D,sha3_256:C,sha3_224:B}:m&&(m.sha3_512=n,m.sha3_384=D,m.sha3_256=C,m.sha3_224=B)})(this);
|