easecrypt - various dev files
[anomen-overlay.git] / www-apps / pmwiki / cookbook / AesCrypt / cryptojs / crypto-sha256.js
blob64dc0d8bf805fc07160493f0d05f09d4497891d7
1 /*\r
2  * Crypto-JS v2.4.0\r
3  * http://code.google.com/p/crypto-js/\r
4  * Copyright (c) 2011, Jeff Mott. All rights reserved.\r
5  * http://code.google.com/p/crypto-js/wiki/License\r
6  */\r
7 if(typeof Crypto=="undefined"||!Crypto.util)(function(){var j=window.Crypto={},m=j.util={rotl:function(a,b){return a<<b|a>>>32-b},rotr:function(a,b){return a<<32-b|a>>>b},endian:function(a){if(a.constructor==Number)return m.rotl(a,8)&16711935|m.rotl(a,24)&4278255360;for(var b=0;b<a.length;b++)a[b]=m.endian(a[b]);return a},randomBytes:function(a){for(var b=[];a>0;a--)b.push(Math.floor(Math.random()*256));return b},bytesToWords:function(a){for(var b=[],c=0,f=0;c<a.length;c++,f+=8)b[f>>>5]|=a[c]<<24-
8 f%32;return b},wordsToBytes:function(a){for(var b=[],c=0;c<a.length*32;c+=8)b.push(a[c>>>5]>>>24-c%32&255);return b},bytesToHex:function(a){for(var b=[],c=0;c<a.length;c++){b.push((a[c]>>>4).toString(16));b.push((a[c]&15).toString(16))}return b.join("")},hexToBytes:function(a){for(var b=[],c=0;c<a.length;c+=2)b.push(parseInt(a.substr(c,2),16));return b},bytesToBase64:function(a){if(typeof btoa=="function")return btoa(n.bytesToString(a));for(var b=[],c=0;c<a.length;c+=3)for(var f=a[c]<<16|a[c+1]<<
9 8|a[c+2],d=0;d<4;d++)c*8+d*6<=a.length*8?b.push("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>>6*(3-d)&63)):b.push("=");return b.join("")},base64ToBytes:function(a){if(typeof atob=="function")return n.stringToBytes(atob(a));a=a.replace(/[^A-Z0-9+\/]/ig,"");for(var b=[],c=0,f=0;c<a.length;f=++c%4)f!=0&&b.push(("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c-1))&Math.pow(2,-2*f+8)-1)<<f*2|"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c))>>>
10 6-f*2);return b}};j=j.charenc={};j.UTF8={stringToBytes:function(a){return n.stringToBytes(unescape(encodeURIComponent(a)))},bytesToString:function(a){return decodeURIComponent(escape(n.bytesToString(a)))}};var n=j.Binary={stringToBytes:function(a){for(var b=[],c=0;c<a.length;c++)b.push(a.charCodeAt(c)&255);return b},bytesToString:function(a){for(var b=[],c=0;c<a.length;c++)b.push(String.fromCharCode(a[c]));return b.join("")}}})();
11 (function(){var j=Crypto,m=j.util,n=j.charenc,a=n.UTF8,b=n.Binary,c=[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,
12 2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],f=j.SHA256=function(d,k){var e=m.wordsToBytes(f._sha256(d));return k&&k.asBytes?e:k&&k.asString?b.bytesToString(e):m.bytesToHex(e)};f._sha256=function(d){if(d.constructor==String)d=a.stringToBytes(d);var k=m.bytesToWords(d),e=d.length*8;d=[1779033703,3144134277,
13 1013904242,2773480762,1359893119,2600822924,528734635,1541459225];var o=[],p,q,t,h,r,s,u,v,g,l,i;k[e>>5]|=128<<24-e%32;k[(e+64>>9<<4)+15]=e;for(v=0;v<k.length;v+=16){e=d[0];p=d[1];q=d[2];t=d[3];h=d[4];r=d[5];s=d[6];u=d[7];for(g=0;g<64;g++){if(g<16)o[g]=k[g+v];else{l=o[g-15];i=o[g-2];o[g]=((l<<25|l>>>7)^(l<<14|l>>>18)^l>>>3)+(o[g-7]>>>0)+((i<<15|i>>>17)^(i<<13|i>>>19)^i>>>10)+(o[g-16]>>>0)}i=e&p^e&q^p&q;var w=(e<<30|e>>>2)^(e<<19|e>>>13)^(e<<10|e>>>22);l=(u>>>0)+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|
14 h>>>25))+(h&r^~h&s)+c[g]+(o[g]>>>0);i=w+i;u=s;s=r;r=h;h=t+l;t=q;q=p;p=e;e=l+i}d[0]+=e;d[1]+=p;d[2]+=q;d[3]+=t;d[4]+=h;d[5]+=r;d[6]+=s;d[7]+=u}return d};f._blocksize=16;f._digestsize=32})();