cycle-crypt
Version:
Variable size symmetric key encryption algorithm
3 lines (2 loc) • 3.01 kB
JavaScript
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).cycleCrypt=e()}(this,(function(){"use strict";var t=String.fromCharCode;function e(e){return e=o(e),t.apply(String,e)}function n(t,n){if("string"==typeof t)return t;if(t=e(t),!1!==n&&(r=t,!a.test(r)))if(n)t=u(t);else if(null==n)try{t=u(t)}catch(t){}var r;return t}function r(t,e){t=String(t),null==e&&(e=function(t){var e=f.exec(t);return!!e&&e[1]}(t)),e&&(t=function(t){return unescape(encodeURI(t))}(t));for(var n=t.length,r=new Uint8Array(n);n--;)r[n]=t.charCodeAt(n);return r}function i(t){switch(t){case!1:case"binary":return e(this);case"hex":return i=(r=this).BYTES_PER_ELEMENT<<1,r.reduce((function(t,e){return t+(e>>>0).toString(16).padStart(i,"0")}),"");case"base64":return btoa(e(this));case"utf8":t=!0}var r,i;return n(this,t)}function o(t,e,n){return!e&&!n&&t instanceof Uint8Array&&!t.copy?t:(e>>>=0,null==n&&(n=t.byteLength-e),new Uint8Array(t.buffer,t.byteOffset+e,n))}var f=/([^\x00-\xFF])/,a=/^[\x00-\x7F]*$/;function u(t){return decodeURIComponent(escape(t))}function s(t){var e=3&t;e=e?t+4-e:t;var n=new Uint8Array(e),r=new Uint32Array(n.buffer),o=Date.now();for(e>>=2;e--;)r[e]=o^=4294967295*Math.random();return n.length>t&&(n=n.slice(0,t)),n.toString=i,n}function c(t,e,n){t=l(t),!0!==e&&void 0!==e||(e=s(Math.min(256,t.byteLength<<1))),this.salt=e,this._key=t=function(t,e,n){var r=t.length,i=e.length;if(!i)return t;e=e.slice();var o=r>1?t[r-1]:0,f=i>1?e[i-1]:0;null==n&&(n=1);for(;n-- >0;)for(var a=Math.max(r,i);a--;){var u=a%r,s=a%i;o=t[u]+o,f=e[s]+f,f^=f<<13,o^=o<<11,o^=o>>>8,o+=f^=f>>>7,t[u]=o,e[s]=f}return t}(t,l(e),n)}function y(t,e){var n=t.length,r=n>1?t[n-1]:0;for(null==e&&(e=1);e-- >0;)for(var i=n;i--;){var o=i%n;r=t[o]+r,r^=r<<13,r^=r>>>17,r^=r<<5,t[o]=r}return t}function l(t){var e,n=(t=t&&"number"==typeof t.byteLength?o(t):r(t)).byteLength,i=3&n;return i=n+(i&&4-i),(e=new Uint8Array(i)).set(t),(t=new Uint32Array(e.buffer,e.byteOffset,i>>2)).dataLength=n,t}function h(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;if(!1===n){var f=(e=o("string"==typeof e?r(e):e))[0];n=e.slice(1,++f),e=e.slice(f)}else void 0===n&&(n=!0);var a=new c(t,n,i);if(e=a._(e),!0===n){n=a.salt;var u=new Uint8Array(1+n.byteLength+e.byteLength);u[0]=n.byteLength,u.set(n,1),u.set(e,1+u[0]),u.toString=e.toString,e=u}return e}return Object.defineProperties(c.prototype,{constructor:{value:c},_:{value:function(t){var e=(t=l(t)).dataLength;if(!e)return t;for(var n=this._key,r=n.length,f=t.length,a=0,u=0;a<f;++a,++u===r&&(u=0))u||y(n),t[a]^=n[u];return(t=o(t,0,e)).toString=i,t}},keyByteSize:{get:function(){return this._key.byteLength}}}),c.randomBytes=s,c.toString=i,c.str2buffer=r,c.str2buf=l,h.CycleCrypt=c,h.randomBytes=c.randomBytes,h.str2buffer=c.str2buffer,h}));
//# sourceMappingURL=cycle-crypt.min.js.map