welsonjs/app/assets/js/crypto-js-3.3.0/sha3.min.js

1 line
2.4 KiB
JavaScript

!function(r,o){"object"==typeof exports?module.exports=exports=o(require("./core"),require("./x64-core")):"function"==typeof define&&define.amd?define(["./core","./x64-core"],o):o(r.CryptoJS)}(this,function(h){return function(g){var r=h,o=r.lib,v=o.WordArray,t=o.Hasher,c=r.x64.Word,e=r.algo,L=[],q=[],W=[];!function(){for(var r=1,o=0,e=0;e<24;e++){L[r+5*o]=(e+1)*(e+2)/2%64;var t=(2*r+3*o)%5;r=o%5,o=t}for(r=0;r<5;r++)for(o=0;o<5;o++)q[r+5*o]=o+(2*r+3*o)%5*5;for(var i=1,h=0;h<24;h++){for(var a=0,n=0,f=0;f<7;f++){if(1&i){var s=(1<<f)-1;s<32?n^=1<<s:a^=1<<s-32}128&i?i=i<<1^113:i<<=1}W[h]=c.create(a,n)}}();var j=[];!function(){for(var r=0;r<25;r++)j[r]=c.create()}();var i=e.SHA3=t.extend({cfg:t.cfg.extend({outputLength:512}),_doReset:function(){for(var r=this._state=[],o=0;o<25;o++)r[o]=new c.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(r,o){for(var e=this._state,t=this.blockSize/2,i=0;i<t;i++){var h=r[o+2*i],a=r[o+2*i+1];h=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8),a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),(A=e[i]).high^=a,A.low^=h}for(var n=0;n<24;n++){for(var f=0;f<5;f++){for(var s=0,c=0,l=0;l<5;l++){s^=(A=e[f+5*l]).high,c^=A.low}var g=j[f];g.high=s,g.low=c}for(f=0;f<5;f++){var v=j[(f+4)%5],u=j[(f+1)%5],w=u.high,d=u.low;for(s=v.high^(w<<1|d>>>31),c=v.low^(d<<1|w>>>31),l=0;l<5;l++){(A=e[f+5*l]).high^=s,A.low^=c}}for(var p=1;p<25;p++){var _=(A=e[p]).high,H=A.low,x=L[p];if(x<32)s=_<<x|H>>>32-x,c=H<<x|_>>>32-x;else s=H<<x-32|_>>>64-x,c=_<<x-32|H>>>64-x;var S=j[q[p]];S.high=s,S.low=c}var y=j[0],b=e[0];y.high=b.high,y.low=b.low;for(f=0;f<5;f++)for(l=0;l<5;l++){var A=e[p=f+5*l],k=j[p],m=j[(f+1)%5+5*l],z=j[(f+2)%5+5*l];A.high=k.high^~m.high&z.high,A.low=k.low^~m.low&z.low}A=e[0];var B=W[n];A.high^=B.high,A.low^=B.low}},_doFinalize:function(){var r=this._data,o=r.words,e=(this._nDataBytes,8*r.sigBytes),t=32*this.blockSize;o[e>>>5]|=1<<24-e%32,o[(g.ceil((1+e)/t)*t>>>5)-1]|=128,r.sigBytes=4*o.length,this._process();for(var i=this._state,h=this.cfg.outputLength/8,a=h/8,n=[],f=0;f<a;f++){var s=i[f],c=s.high,l=s.low;c=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),l=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8),n.push(l),n.push(c)}return new v.init(n,h)},clone:function(){for(var r=t.clone.call(this),o=r._state=this._state.slice(0),e=0;e<25;e++)o[e]=o[e].clone();return r}});r.SHA3=t._createHelper(i),r.HmacSHA3=t._createHmacHelper(i)}(Math),h.SHA3});