summaryrefslogtreecommitdiff
path: root/libgpl/gibberish/gibberish-aes.js
diff options
context:
space:
mode:
authorHugues Hiegel <root@paranoid>2015-03-11 16:55:04 +0100
committerHugues Hiegel <root@paranoid>2015-03-11 16:55:04 +0100
commit99f904adcc37d93c90defcd8ce898598e25be212 (patch)
tree60a6c7b7b9cf012d6c0e8dcf5c7f4fe0a5b6fc49 /libgpl/gibberish/gibberish-aes.js
parentb2034fdfec040a67988e543a911208ef2491ce7a (diff)
Lot of pluginsHEADmaster
Diffstat (limited to 'libgpl/gibberish/gibberish-aes.js')
-rw-r--r--libgpl/gibberish/gibberish-aes.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/libgpl/gibberish/gibberish-aes.js b/libgpl/gibberish/gibberish-aes.js
new file mode 100644
index 0000000..f1b836b
--- /dev/null
+++ b/libgpl/gibberish/gibberish-aes.js
@@ -0,0 +1,36 @@
+/*
+ Gibberish-AES
+ A lightweight Javascript Libray for OpenSSL compatible AES CBC encryption.
+
+ Author: Mark Percival
+ Email: mark@mpercival.com
+ Copyright: Mark Percival - http://mpercival.com 2008
+
+ With thanks to:
+ Josh Davis - http://www.josh-davis.org/ecmaScrypt
+ Chris Veness - http://www.movable-type.co.uk/scripts/aes.html
+ Michel I. Gallant - http://www.jensign.com/
+ Jean-Luc Cooke <jlcooke@certainkey.com> 2012-07-12: added strhex + invertArr to compress G2X/G3X/G9X/GBX/GEX/SBox/SBoxInv/Rcon saving over 7KB, and added encString, decString, also made the MD5 routine more easlier compressible using yuicompressor.
+
+ License: MIT
+
+ Usage: GibberishAES.enc("secret", "password")
+ Outputs: AES Encrypted text encoded in Base64
+*/
+(function(r,n){"object"===typeof exports?module.exports=n():"function"===typeof define&&define.amd?define(n):r.GibberishAES=n()})(this,function(){var r=14,n=8,u=!1,O=function(a,d){var b="",c,k;if(d){c=a[15];if(16<c)throw"Decryption error: Maybe bad key";if(16===c)return"";for(k=0;k<16-c;k++)b+=String.fromCharCode(a[k])}else for(k=0;16>k;k++)b+=String.fromCharCode(a[k]);return b},z=function(a,d){var b=[],c;if(!d)try{a=unescape(encodeURIComponent(a))}catch(k){throw"Error on UTF-8 encode";}for(c=0;c<
+a.length;c++)b[c]=a.charCodeAt(c);return b},K=function(a,d){var b=12<=r?3:2,c=[],k=[],c=[],k=[],m=a.concat(d),p;c[0]=J(m);k=c[0];for(p=1;p<b;p++)c[p]=J(c[p-1].concat(m)),k=k.concat(c[p]);c=k.slice(0,4*n);k=k.slice(4*n,4*n+16);return{key:c,iv:k}},Q=function(a,d,b){d=L(d);var c=Math.ceil(a.length/16),k=[],m,p=[];for(m=0;m<c;m++){var j=k,t=m,n=a.slice(16*m,16*m+16),s=[],q=void 0,q=void 0;16>n.length&&(q=16-n.length,s=[q,q,q,q,q,q,q,q,q,q,q,q,q,q,q,q]);for(q=0;q<n.length;q++)s[q]=n[q];j[t]=s}0===a.length%
+16&&k.push([16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]);for(m=0;m<k.length;m++)k[m]=0===m?A(k[m],b):A(k[m],p[m-1]),p[m]=P(k[m],d);return p},S=function(a,d,b,c){d=L(d);var k=a.length/16,m=[],p,j=[],t="";for(p=0;p<k;p++)m.push(a.slice(16*p,16*(p+1)));for(p=m.length-1;0<=p;p--)j[p]=R(m[p],d),j[p]=0===p?A(j[p],b):A(j[p],m[p-1]);for(p=0;p<k-1;p++)t+=O(j[p]);var t=t+O(j[p],!0),n;if(c)n=t;else try{n=decodeURIComponent(escape(t))}catch(s){throw"Bad Key";}return n},P=function(a,d){u=!1;var b=B(a,d,0),
+c;for(c=1;c<r+1;c++)b=T(b),b=U(b),c<r&&(b=V(b)),b=B(b,d,c);return b},R=function(a,d){u=!0;var b=B(a,d,r),c;for(c=r-1;-1<c;c--)b=U(b),b=T(b),b=B(b,d,c),0<c&&(b=V(b));return b},T=function(a){var d=u?W:M,b=[],c;for(c=0;16>c;c++)b[c]=d[a[c]];return b},U=function(a){var d=[],b=u?[0,13,10,7,4,1,14,11,8,5,2,15,12,9,6,3]:[0,5,10,15,4,9,14,3,8,13,2,7,12,1,6,11],c;for(c=0;16>c;c++)d[c]=a[b[c]];return d},V=function(a){var d=[],b;if(u)for(b=0;4>b;b++)d[4*b]=C[a[4*b]]^D[a[1+4*b]]^E[a[2+4*b]]^F[a[3+4*b]],d[1+4*
+b]=F[a[4*b]]^C[a[1+4*b]]^D[a[2+4*b]]^E[a[3+4*b]],d[2+4*b]=E[a[4*b]]^F[a[1+4*b]]^C[a[2+4*b]]^D[a[3+4*b]],d[3+4*b]=D[a[4*b]]^E[a[1+4*b]]^F[a[2+4*b]]^C[a[3+4*b]];else for(b=0;4>b;b++)d[4*b]=G[a[4*b]]^H[a[1+4*b]]^a[2+4*b]^a[3+4*b],d[1+4*b]=a[4*b]^G[a[1+4*b]]^H[a[2+4*b]]^a[3+4*b],d[2+4*b]=a[4*b]^a[1+4*b]^G[a[2+4*b]]^H[a[3+4*b]],d[3+4*b]=H[a[4*b]]^a[1+4*b]^a[2+4*b]^G[a[3+4*b]];return d},B=function(a,d,b){var c=[],k;for(k=0;16>k;k++)c[k]=a[k]^d[b][k];return c},A=function(a,d){var b=[],c;for(c=0;16>c;c++)b[c]=
+a[c]^d[c];return b},L=function(a){var d=[],b=[],c,k,m=[];for(c=0;c<n;c++)k=[a[4*c],a[4*c+1],a[4*c+2],a[4*c+3]],d[c]=k;for(c=n;c<4*(r+1);c++){d[c]=[];for(a=0;4>a;a++)b[a]=d[c-1][a];if(0===c%n){a=b[0];k=void 0;for(k=0;3>k;k++)b[k]=b[k+1];b[3]=a;b=X(b);b[0]^=$[c/n-1]}else 6<n&&4===c%n&&(b=X(b));for(a=0;4>a;a++)d[c][a]=d[c-n][a]^b[a]}for(c=0;c<r+1;c++){m[c]=[];for(b=0;4>b;b++)m[c].push(d[4*c+b][0],d[4*c+b][1],d[4*c+b][2],d[4*c+b][3])}return m},X=function(a){for(var d=0;4>d;d++)a[d]=M[a[d]];return a},
+N=function(a,d){var b,c=[];for(b=0;b<a.length;b+=d)c[b/d]=parseInt(a.substr(b,d),16);return c},v=function(a){var d,b=[];for(d=0;256>d;d++){for(var c=b,k=d,m=a,p=d,j=void 0,n=void 0,j=n=0;8>j;j++)n=1===(p&1)?n^m:n,m=127<m?283^m<<1:m<<1,p>>>=1;c[k]=n}return b},M=N("637c777bf26b6fc53001672bfed7ab76ca82c97dfa5947f0add4a2af9ca472c0b7fd9326363ff7cc34a5e5f171d8311504c723c31896059a071280e2eb27b27509832c1a1b6e5aa0523bd6b329e32f8453d100ed20fcb15b6acbbe394a4c58cfd0efaafb434d338545f9027f503c9fa851a3408f929d38f5bcb6da2110fff3d2cd0c13ec5f974417c4a77e3d645d197360814fdc222a908846eeb814de5e0bdbe0323a0a4906245cc2d3ac629195e479e7c8376d8dd54ea96c56f4ea657aae08ba78252e1ca6b4c6e8dd741f4bbd8b8a703eb5664803f60e613557b986c11d9ee1f8981169d98e949b1e87e9ce5528df8ca1890dbfe6426841992d0fb054bb16",
+2),W,Y=M,x,Z=[];for(x=0;x<Y.length;x++)Z[Y[x]]=x;W=Z;var $=N("01020408102040801b366cd8ab4d9a2f5ebc63c697356ad4b37dfaefc591",2),G=v(2),H=v(3),F=v(9),D=v(11),E=v(13),C=v(14),J=function(a){function d(a,b){var c,d,e,g,f;e=a&2147483648;g=b&2147483648;c=a&1073741824;d=b&1073741824;f=(a&1073741823)+(b&1073741823);return c&d?f^2147483648^e^g:c|d?f&1073741824?f^3221225472^e^g:f^1073741824^e^g:f^e^g}function b(a,b,c,e,f,g,h){a=d(a,d(d(b&c|~b&e,f),h));return d(a<<g|a>>>32-g,b)}function c(a,b,c,e,g,f,h){a=d(a,
+d(d(b&e|c&~e,g),h));return d(a<<f|a>>>32-f,b)}function k(a,b,c,e,f,g,h){a=d(a,d(d(b^c^e,f),h));return d(a<<g|a>>>32-g,b)}function m(a,b,c,e,g,f,h){a=d(a,d(d(c^(b|~e),g),h));return d(a<<f|a>>>32-f,b)}function p(a){var b,c,d=[];for(c=0;3>=c;c++)b=a>>>8*c&255,d=d.concat(b);return d}var j=[],n,r,s,q,e,g,f,h,l=N("67452301efcdab8998badcfe10325476d76aa478e8c7b756242070dbc1bdceeef57c0faf4787c62aa8304613fd469501698098d88b44f7afffff5bb1895cd7be6b901122fd987193a679438e49b40821f61e2562c040b340265e5a51e9b6c7aad62f105d02441453d8a1e681e7d3fbc821e1cde6c33707d6f4d50d87455a14eda9e3e905fcefa3f8676f02d98d2a4c8afffa39428771f6816d9d6122fde5380ca4beea444bdecfa9f6bb4b60bebfbc70289b7ec6eaa127fad4ef308504881d05d9d4d039e6db99e51fa27cf8c4ac5665f4292244432aff97ab9423a7fc93a039655b59c38f0ccc92ffeff47d85845dd16fa87e4ffe2ce6e0a30143144e0811a1f7537e82bd3af2352ad7d2bbeb86d391",
+8),j=a.length;n=j+8;r=16*((n-n%64)/64+1);s=[];for(e=q=0;e<j;)n=(e-e%4)/4,q=8*(e%4),s[n]|=a[e]<<q,e++;n=(e-e%4)/4;s[n]|=128<<8*(e%4);s[r-2]=j<<3;s[r-1]=j>>>29;j=s;e=l[0];g=l[1];f=l[2];h=l[3];for(a=0;a<j.length;a+=16)n=e,r=g,s=f,q=h,e=b(e,g,f,h,j[a+0],7,l[4]),h=b(h,e,g,f,j[a+1],12,l[5]),f=b(f,h,e,g,j[a+2],17,l[6]),g=b(g,f,h,e,j[a+3],22,l[7]),e=b(e,g,f,h,j[a+4],7,l[8]),h=b(h,e,g,f,j[a+5],12,l[9]),f=b(f,h,e,g,j[a+6],17,l[10]),g=b(g,f,h,e,j[a+7],22,l[11]),e=b(e,g,f,h,j[a+8],7,l[12]),h=b(h,e,g,f,j[a+9],
+12,l[13]),f=b(f,h,e,g,j[a+10],17,l[14]),g=b(g,f,h,e,j[a+11],22,l[15]),e=b(e,g,f,h,j[a+12],7,l[16]),h=b(h,e,g,f,j[a+13],12,l[17]),f=b(f,h,e,g,j[a+14],17,l[18]),g=b(g,f,h,e,j[a+15],22,l[19]),e=c(e,g,f,h,j[a+1],5,l[20]),h=c(h,e,g,f,j[a+6],9,l[21]),f=c(f,h,e,g,j[a+11],14,l[22]),g=c(g,f,h,e,j[a+0],20,l[23]),e=c(e,g,f,h,j[a+5],5,l[24]),h=c(h,e,g,f,j[a+10],9,l[25]),f=c(f,h,e,g,j[a+15],14,l[26]),g=c(g,f,h,e,j[a+4],20,l[27]),e=c(e,g,f,h,j[a+9],5,l[28]),h=c(h,e,g,f,j[a+14],9,l[29]),f=c(f,h,e,g,j[a+3],14,l[30]),
+g=c(g,f,h,e,j[a+8],20,l[31]),e=c(e,g,f,h,j[a+13],5,l[32]),h=c(h,e,g,f,j[a+2],9,l[33]),f=c(f,h,e,g,j[a+7],14,l[34]),g=c(g,f,h,e,j[a+12],20,l[35]),e=k(e,g,f,h,j[a+5],4,l[36]),h=k(h,e,g,f,j[a+8],11,l[37]),f=k(f,h,e,g,j[a+11],16,l[38]),g=k(g,f,h,e,j[a+14],23,l[39]),e=k(e,g,f,h,j[a+1],4,l[40]),h=k(h,e,g,f,j[a+4],11,l[41]),f=k(f,h,e,g,j[a+7],16,l[42]),g=k(g,f,h,e,j[a+10],23,l[43]),e=k(e,g,f,h,j[a+13],4,l[44]),h=k(h,e,g,f,j[a+0],11,l[45]),f=k(f,h,e,g,j[a+3],16,l[46]),g=k(g,f,h,e,j[a+6],23,l[47]),e=k(e,g,
+f,h,j[a+9],4,l[48]),h=k(h,e,g,f,j[a+12],11,l[49]),f=k(f,h,e,g,j[a+15],16,l[50]),g=k(g,f,h,e,j[a+2],23,l[51]),e=m(e,g,f,h,j[a+0],6,l[52]),h=m(h,e,g,f,j[a+7],10,l[53]),f=m(f,h,e,g,j[a+14],15,l[54]),g=m(g,f,h,e,j[a+5],21,l[55]),e=m(e,g,f,h,j[a+12],6,l[56]),h=m(h,e,g,f,j[a+3],10,l[57]),f=m(f,h,e,g,j[a+10],15,l[58]),g=m(g,f,h,e,j[a+1],21,l[59]),e=m(e,g,f,h,j[a+8],6,l[60]),h=m(h,e,g,f,j[a+15],10,l[61]),f=m(f,h,e,g,j[a+6],15,l[62]),g=m(g,f,h,e,j[a+13],21,l[63]),e=m(e,g,f,h,j[a+4],6,l[64]),h=m(h,e,g,f,j[a+
+11],10,l[65]),f=m(f,h,e,g,j[a+2],15,l[66]),g=m(g,f,h,e,j[a+9],21,l[67]),e=d(e,n),g=d(g,r),f=d(f,s),h=d(h,q);return p(e).concat(p(g),p(f),p(h))},I,w="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",y=w.split("");"function"===typeof Array.indexOf&&(w=y);I={encode:function(a){var d=[],b="",c;for(c=0;c<16*a.length;c++)d.push(a[Math.floor(c/16)][c%16]);for(c=0;c<d.length;c+=3)b+=y[d[c]>>2],b+=y[(d[c]&3)<<4|d[c+1]>>4],b=void 0!==d[c+1]?b+y[(d[c+1]&15)<<2|d[c+2]>>6]:b+"=",b=void 0!==d[c+
+2]?b+y[d[c+2]&63]:b+"=";a=b.slice(0,64)+"\n";for(c=1;c<Math.ceil(b.length/64);c++)a+=b.slice(64*c,64*c+64)+(Math.ceil(b.length/64)===c+1?"":"\n");return a},decode:function(a){a=a.replace(/\n/g,"");var d=[],b=[],c=[],k;for(k=0;k<a.length;k+=4)b[0]=w.indexOf(a.charAt(k)),b[1]=w.indexOf(a.charAt(k+1)),b[2]=w.indexOf(a.charAt(k+2)),b[3]=w.indexOf(a.charAt(k+3)),c[0]=b[0]<<2|b[1]>>4,c[1]=(b[1]&15)<<4|b[2]>>2,c[2]=(b[2]&3)<<6|b[3],d.push(c[0],c[1],c[2]);return d=d.slice(0,d.length-d.length%16)}};return{size:function(a){switch(a){case 128:r=
+10;n=4;break;case 192:r=12;n=6;break;case 256:r=14;n=8;break;default:throw"Invalid Key Size Specified:"+a;}},h2a:function(a){var d=[];a.replace(/(..)/g,function(a){d.push(parseInt(a,16))});return d},expandKey:L,encryptBlock:P,decryptBlock:R,Decrypt:u,s2a:z,rawEncrypt:Q,rawDecrypt:S,dec:function(a,d,b){a=I.decode(a);var c=a.slice(8,16),c=K(z(d,b),c);d=c.key;c=c.iv;a=a.slice(16,a.length);return a=S(a,d,c,b)},openSSLKey:K,a2h:function(a){var d="",b;for(b=0;b<a.length;b++)d+=(16>a[b]?"0":"")+a[b].toString(16);
+return d},enc:function(a,d,b){var c;c=[];var k;for(k=0;8>k;k++)c=c.concat(Math.floor(256*Math.random()));k=K(z(d,b),c);d=k.key;k=k.iv;c=[[83,97,108,116,101,100,95,95].concat(c)];a=z(a,b);a=Q(a,d,k);a=c.concat(a);return I.encode(a)},Hash:{MD5:J},Base64:I}}); \ No newline at end of file