spd-lib 1.1.8 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -0
- package/obfuscate.js +35 -0
- package/package.json +9 -4
- package/{index.js → src/index.js} +119 -21
- package/test.js +15 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x83813e=_0x48f6;(function(_0x351c5a,_0x6e57cc){const _0x34b562=_0x48f6,_0x54db0d=_0x351c5a();while(!![]){try{const _0x3f652a=parseInt(_0x34b562(0x1b8))/0x1*(parseInt(_0x34b562(0x2ab))/0x2)+-parseInt(_0x34b562(0x2c8))/0x3+parseInt(_0x34b562(0x265))/0x4+-parseInt(_0x34b562(0x26f))/0x5*(-parseInt(_0x34b562(0x206))/0x6)+parseInt(_0x34b562(0x330))/0x7+parseInt(_0x34b562(0x231))/0x8*(parseInt(_0x34b562(0x2d1))/0x9)+-parseInt(_0x34b562(0x205))/0xa*(parseInt(_0x34b562(0x1ae))/0xb);if(_0x3f652a===_0x6e57cc)break;else _0x54db0d['push'](_0x54db0d['shift']());}catch(_0x3b5eab){_0x54db0d['push'](_0x54db0d['shift']());}}}(_0x23f6,0xd0ab3));function _0x48f6(_0x5914af,_0x4a8a30){const _0x42753e=_0x23f6();return _0x48f6=function(_0x347cd5,_0x8ba865){_0x347cd5=_0x347cd5-0x15d;let _0x3f06a1=_0x42753e[_0x347cd5];return _0x3f06a1;},_0x48f6(_0x5914af,_0x4a8a30);}const _0x5d6a11=(function(){const _0xaa16a9={'eQgaa':function(_0x540d9f,_0x1fd9c2){return _0x540d9f===_0x1fd9c2;},'vfWqD':'jYChe'};let _0x5957e5=!![];return function(_0x2f43c,_0x3028fa){const _0x56213b=_0x48f6,_0x404d9b={'BzbZR':function(_0x45d0ab,_0x234623){const _0x379d13=_0x48f6;return _0xaa16a9[_0x379d13(0x1e0)](_0x45d0ab,_0x234623);},'mSLnH':_0xaa16a9[_0x56213b(0x169)]},_0x1d4592=_0x5957e5?function(){const _0x593b6d=_0x56213b;if(_0x3028fa){if(_0x404d9b[_0x593b6d(0x2c7)](_0x404d9b[_0x593b6d(0x1c3)],_0x404d9b[_0x593b6d(0x1c3)])){const _0x26d3cd=_0x3028fa[_0x593b6d(0x174)](_0x2f43c,arguments);return _0x3028fa=null,_0x26d3cd;}else{const _0x6ce9c4=_0x21e360?function(){if(_0x351dfd){const _0x454268=_0x3fcf97['apply'](_0x931e10,arguments);return _0x17c978=null,_0x454268;}}:function(){};return _0x176548=![],_0x6ce9c4;}}}:function(){};return _0x5957e5=![],_0x1d4592;};}());(function(){const _0x1b5a2c=_0x48f6,_0x5ba53c={'ENPxO':function(_0x1c6db5,_0x2da7c9){return _0x1c6db5(_0x2da7c9);},'ZgNuE':_0x1b5a2c(0x202),'ngMfb':_0x1b5a2c(0x2d6),'OsJZx':function(_0x54125f,_0x2cb2e1){return _0x54125f(_0x2cb2e1);},'pqtof':_0x1b5a2c(0x28b),'SobKO':function(_0x1b0dbe,_0x48e9f9){return _0x1b0dbe+_0x48e9f9;},'KRobD':'chain','MTFHv':_0x1b5a2c(0x29b),'vAuDk':function(_0x131b5c,_0x1f8669){return _0x131b5c(_0x1f8669);},'XirUq':function(_0x2a57e5){return _0x2a57e5();},'yEQit':function(_0x1ce3be,_0x4b7d74){return _0x1ce3be(_0x4b7d74);},'nfIYH':function(_0x3d1dfc,_0x567a8e){return _0x3d1dfc+_0x567a8e;},'LnwOB':function(_0x43c682,_0x484d9d){return _0x43c682+_0x484d9d;},'DvCPS':function(_0x551fb8,_0x52e10d){return _0x551fb8===_0x52e10d;},'NZKqo':_0x1b5a2c(0x1d4),'iYWUi':function(_0x568010,_0x56a28f){return _0x568010(_0x56a28f);},'CecYn':function(_0x22b08f,_0xb438fe){return _0x22b08f!==_0xb438fe;},'gFtuq':_0x1b5a2c(0x24e),'hxbOs':_0x1b5a2c(0x274),'gzTBF':function(_0x18bc36,_0x8335d4,_0x13d63c){return _0x18bc36(_0x8335d4,_0x13d63c);}};_0x5ba53c[_0x1b5a2c(0x22c)](_0x5d6a11,this,function(){const _0x3ee3ec=_0x1b5a2c,_0x547b88=new RegExp(_0x5ba53c[_0x3ee3ec(0x305)]),_0x5b3048=new RegExp(_0x5ba53c['ngMfb'],'i'),_0x33889f=_0x5ba53c[_0x3ee3ec(0x1f6)](_0x4225ad,_0x5ba53c['pqtof']);if(!_0x547b88[_0x3ee3ec(0x2a8)](_0x5ba53c[_0x3ee3ec(0x27f)](_0x33889f,_0x5ba53c['KRobD']))||!_0x5b3048[_0x3ee3ec(0x2a8)](_0x5ba53c[_0x3ee3ec(0x2f5)](_0x33889f,_0x5ba53c[_0x3ee3ec(0x31d)])))_0x5ba53c[_0x3ee3ec(0x29c)](_0x5ba53c['NZKqo'],_0x5ba53c['NZKqo'])?_0x5ba53c[_0x3ee3ec(0x2f6)](_0x33889f,'0'):_0x5ba53c[_0x3ee3ec(0x32a)](_0x547f56,{'pbk':_0x477425,'salt':_0x56d59f});else{if(_0x5ba53c['CecYn'](_0x5ba53c['gFtuq'],_0x5ba53c[_0x3ee3ec(0x23f)]))_0x5ba53c[_0x3ee3ec(0x1e3)](_0x4225ad);else{const _0x36667e=new _0x17bad6(_0x5ba53c[_0x3ee3ec(0x305)]),_0x3a8dc7=new _0x46da56(_0x5ba53c['ngMfb'],'i'),_0x153184=_0x5ba53c[_0x3ee3ec(0x1d6)](_0x2a4f2f,_0x5ba53c[_0x3ee3ec(0x339)]);!_0x36667e['test'](_0x5ba53c[_0x3ee3ec(0x1f9)](_0x153184,_0x5ba53c[_0x3ee3ec(0x165)]))||!_0x3a8dc7[_0x3ee3ec(0x2a8)](_0x5ba53c[_0x3ee3ec(0x1f9)](_0x153184,_0x5ba53c[_0x3ee3ec(0x31d)]))?_0x5ba53c[_0x3ee3ec(0x328)](_0x153184,'0'):_0x5ba53c['XirUq'](_0x2d19fb);}}})();}());const _0x8ba865=(function(){const _0x1b12bf=_0x48f6,_0x4a67a5={'tmDEa':function(_0x1aefc6,_0x46d2b2){return _0x1aefc6(_0x46d2b2);},'tUBUb':function(_0x3ec2ba,_0x3ad412){return _0x3ec2ba!==_0x3ad412;},'JfRsQ':_0x1b12bf(0x31e),'gtcJu':function(_0xf818cf,_0x50799c){return _0xf818cf===_0x50799c;},'aspmd':'TbHbT','JiHNN':_0x1b12bf(0x1fa),'sjEjA':function(_0x3688a8,_0x196606){return _0x3688a8===_0x196606;},'gMGyE':_0x1b12bf(0x1e6),'rOXNg':'Uint32Array','iESlI':'BigInt64Array','wcYwT':_0x1b12bf(0x17e),'OGoBU':'Float32Array','ViZYE':_0x1b12bf(0x2b4),'PKsqm':'Map','xhjHg':'Set','mtmRZ':function(_0x4f1f5f,_0xc56322){return _0x4f1f5f===_0xc56322;},'LkNTi':'WeakMap','ZlmQG':_0x1b12bf(0x209),'bsTSC':function(_0xe20cc2,_0x487f70){return _0xe20cc2!==_0x487f70;},'xPwdI':_0x1b12bf(0x227)};let _0xed7e7a=!![];return function(_0x196af2,_0x5ca1eb){const _0x22cbf4=_0x1b12bf,_0x56bf88={'Basrb':function(_0x350ca1,_0x21b759){return _0x4a67a5['gtcJu'](_0x350ca1,_0x21b759);},'VvRoI':_0x4a67a5[_0x22cbf4(0x1bf)],'BheIY':function(_0x4227a0,_0x635080){const _0x1e59e3=_0x22cbf4;return _0x4a67a5[_0x1e59e3(0x2c4)](_0x4227a0,_0x635080);},'IFIHU':_0x4a67a5['gMGyE'],'nPGOY':_0x4a67a5[_0x22cbf4(0x228)],'UYaiJ':_0x4a67a5[_0x22cbf4(0x20d)],'aLiKG':_0x4a67a5[_0x22cbf4(0x19f)],'VpLpU':function(_0x4cc847,_0x518c4c){const _0x4418f2=_0x22cbf4;return _0x4a67a5[_0x4418f2(0x1b9)](_0x4cc847,_0x518c4c);},'lwKVL':_0x4a67a5[_0x22cbf4(0x1fb)],'OFcsc':_0x4a67a5[_0x22cbf4(0x15f)],'unvvJ':_0x4a67a5[_0x22cbf4(0x2da)],'kxarx':_0x4a67a5['xhjHg'],'znrLg':function(_0x1d143c,_0x3a05ba){const _0x46f190=_0x22cbf4;return _0x4a67a5[_0x46f190(0x266)](_0x1d143c,_0x3a05ba);},'hIZtb':_0x4a67a5[_0x22cbf4(0x22e)],'WPsTN':function(_0x47e56e,_0x4ecbbe){const _0xa11463=_0x22cbf4;return _0x4a67a5[_0xa11463(0x266)](_0x47e56e,_0x4ecbbe);},'sSGbt':_0x4a67a5[_0x22cbf4(0x321)]};if(_0x4a67a5[_0x22cbf4(0x171)](_0x4a67a5[_0x22cbf4(0x2be)],_0x4a67a5[_0x22cbf4(0x2be)])){if(_0x56bf88[_0x22cbf4(0x308)](_0x209bcc,_0x56bf88['VvRoI'])||_0x56bf88[_0x22cbf4(0x2f9)](_0x17158b,_0x56bf88['IFIHU'])||_0x56bf88[_0x22cbf4(0x308)](_0x3815d6,_0x56bf88[_0x22cbf4(0x23e)])||_0x56bf88[_0x22cbf4(0x2f9)](_0x11c7b0,_0x56bf88[_0x22cbf4(0x1c8)])||_0x56bf88[_0x22cbf4(0x2f9)](_0x46a10e,_0x56bf88[_0x22cbf4(0x271)])||_0x56bf88[_0x22cbf4(0x260)](_0x5578d5,_0x56bf88['lwKVL'])||_0x56bf88[_0x22cbf4(0x308)](_0x30fbc1,_0x56bf88[_0x22cbf4(0x2f1)]))return!![];}else{const _0x1353ea=_0xed7e7a?function(){const _0x100cb1=_0x22cbf4,_0x3c2dd4={'bJtkM':function(_0x34ca8a,_0x2d5db4){const _0x1b672d=_0x48f6;return _0x4a67a5[_0x1b672d(0x31c)](_0x34ca8a,_0x2d5db4);}};if(_0x4a67a5[_0x100cb1(0x272)](_0x4a67a5[_0x100cb1(0x27c)],_0x4a67a5[_0x100cb1(0x27c)]))_0x3c2dd4[_0x100cb1(0x1ea)](_0x1e6fb0,'0');else{if(_0x5ca1eb){if(_0x4a67a5[_0x100cb1(0x1b9)](_0x4a67a5['aspmd'],_0x4a67a5[_0x100cb1(0x1cf)])){const _0x24fc95=_0x5ca1eb[_0x100cb1(0x174)](_0x196af2,arguments);return _0x5ca1eb=null,_0x24fc95;}else{if(_0x56bf88[_0x100cb1(0x2f9)](_0x3d76b8,_0x56bf88[_0x100cb1(0x2ae)])||_0x56bf88['Basrb'](_0x136678,_0x56bf88[_0x100cb1(0x1e5)])||_0x56bf88[_0x100cb1(0x190)](_0x47d4f4,_0x56bf88['hIZtb'])||_0x56bf88['WPsTN'](_0x339728,_0x56bf88[_0x100cb1(0x1cd)]))return!![];}}}}:function(){};return _0xed7e7a=![],_0x1353ea;}};}()),_0x347cd5=_0x8ba865(this,function(){const _0xe27efb=_0x48f6,_0x4fda5b={'fAwwn':function(_0x486aae,_0x4e2f12){return _0x486aae!==_0x4e2f12;},'wzlBQ':_0xe27efb(0x279),'wPPem':_0xe27efb(0x251),'fzKQV':function(_0x1ef416,_0x1938e8){return _0x1ef416(_0x1938e8);},'NqcFk':function(_0x2967b1,_0xc13ba0){return _0x2967b1+_0xc13ba0;},'VpDGg':_0xe27efb(0x2fc),'pORMP':'{}.constructor(\x22return\x20this\x22)(\x20)','vtqSb':_0xe27efb(0x213),'KdorF':_0xe27efb(0x314),'IMCsR':function(_0x283e27){return _0x283e27();},'BTXOj':'log','IGokt':_0xe27efb(0x23b),'Xzpqr':'info','Vxbmk':_0xe27efb(0x2ef),'zjRWP':'exception','hfroK':_0xe27efb(0x1db),'AofUI':'trace','kyzSE':function(_0x576825,_0x41d78d){return _0x576825<_0x41d78d;}},_0x51691a=function(){const _0x562d0e=_0xe27efb;let _0xbcf06d;try{if(_0x4fda5b[_0x562d0e(0x1ca)](_0x4fda5b[_0x562d0e(0x2d3)],_0x4fda5b[_0x562d0e(0x22d)]))_0xbcf06d=_0x4fda5b['fzKQV'](Function,_0x4fda5b[_0x562d0e(0x1be)](_0x4fda5b['NqcFk'](_0x4fda5b[_0x562d0e(0x16c)],_0x4fda5b[_0x562d0e(0x336)]),');'))();else return!![];}catch(_0x4535b9){if(_0x4fda5b[_0x562d0e(0x1ca)](_0x4fda5b[_0x562d0e(0x267)],_0x4fda5b[_0x562d0e(0x25c)]))_0xbcf06d=window;else return new _0x491aaf(_0x397750[_0x562d0e(0x283)](_0x1a1c4e));}return _0xbcf06d;},_0x1f8b31=_0x4fda5b[_0xe27efb(0x33a)](_0x51691a),_0x510324=_0x1f8b31[_0xe27efb(0x2f7)]=_0x1f8b31[_0xe27efb(0x2f7)]||{},_0x2b9df1=[_0x4fda5b[_0xe27efb(0x245)],_0x4fda5b[_0xe27efb(0x187)],_0x4fda5b[_0xe27efb(0x1cc)],_0x4fda5b['Vxbmk'],_0x4fda5b[_0xe27efb(0x2b9)],_0x4fda5b['hfroK'],_0x4fda5b['AofUI']];for(let _0x5376c9=0x0;_0x4fda5b[_0xe27efb(0x24c)](_0x5376c9,_0x2b9df1[_0xe27efb(0x232)]);_0x5376c9++){const _0x47db56=_0x8ba865[_0xe27efb(0x26e)][_0xe27efb(0x223)][_0xe27efb(0x2a5)](_0x8ba865),_0x2e0367=_0x2b9df1[_0x5376c9],_0x4f9649=_0x510324[_0x2e0367]||_0x47db56;_0x47db56[_0xe27efb(0x1ec)]=_0x8ba865[_0xe27efb(0x2a5)](_0x8ba865),_0x47db56[_0xe27efb(0x19c)]=_0x4f9649[_0xe27efb(0x19c)][_0xe27efb(0x2a5)](_0x4f9649),_0x510324[_0x2e0367]=_0x47db56;}});_0x347cd5();const fs=require('fs'),zlib=require(_0x83813e(0x173)),sodium=require(_0x83813e(0x2fb)),crypto=require(_0x83813e(0x30a)),argon2=require('argon2');class SPD{constructor(){const _0x18a199=_0x83813e,_0x430288={'HTPWP':_0x18a199(0x175)},_0x5824d7=_0x430288[_0x18a199(0x1f4)][_0x18a199(0x32c)]('|');let _0x25f8ec=0x0;while(!![]){switch(_0x5824d7[_0x25f8ec++]){case'0':this[_0x18a199(0x296)];continue;case'1':this[_0x18a199(0x1dc)];continue;case'2':this[_0x18a199(0x242)]=[];continue;case'3':this[_0x18a199(0x194)];continue;case'4':this[_0x18a199(0x28b)]();continue;}break;}}async[_0x83813e(0x28b)](){const _0x3b2073=_0x83813e;await sodium[_0x3b2073(0x22b)],this[_0x3b2073(0x296)]=sodium[_0x3b2073(0x2d9)]();}async['setPassKey'](_0x59ede6){const _0x40448b=_0x83813e;await sodium[_0x40448b(0x22b)],this[_0x40448b(0x28b)]();const {pqcKey:_0x3b7371,salt:_0x4df4a8}=await new SPD()[_0x40448b(0x184)](_0x59ede6),_0x366520=_0x3b7371[_0x40448b(0x1c1)];this[_0x40448b(0x1dc)]=_0x366520,this[_0x40448b(0x194)]=_0x4df4a8;}async[_0x83813e(0x1c4)](_0x2dea19,_0x3b22cc){const _0x49201b=_0x83813e,_0x57cc42={'YHUur':function(_0x4775f6){return _0x4775f6();},'mZbKy':function(_0x5a9ac4,_0x35deb8){return _0x5a9ac4===_0x35deb8;},'imzCj':_0x49201b(0x30f),'acUzx':'bcLBU','kMYnL':'utf8','sDEWJ':function(_0x5e58dd){return _0x5e58dd();},'UpaeJ':function(_0x498ddc,_0xc3b99){return _0x498ddc(_0xc3b99);},'HwbJq':function(_0xa92229,_0x4c2457){return _0xa92229(_0x4c2457);},'VypRB':function(_0x3bf90a,_0xc15f8d){return _0x3bf90a!==_0xc15f8d;},'tHoCF':_0x49201b(0x167),'UPuBe':function(_0x1e8914,_0x4fe4b5){return _0x1e8914!==_0x4fe4b5;},'FbvrF':_0x49201b(0x240),'TxKNb':_0x49201b(0x2bf)},_0x56eabf=await SPD[_0x49201b(0x2d8)](_0x2dea19,_0x3b22cc),_0x126de2=async()=>{const _0x103b07=_0x49201b,_0x554ff5={'ftqmB':function(_0x562e6d){const _0xc22360=_0x48f6;return _0x57cc42[_0xc22360(0x21f)](_0x562e6d);},'tHILY':function(_0x2129ec,_0x3afbac){const _0x3cbb35=_0x48f6;return _0x57cc42[_0x3cbb35(0x255)](_0x2129ec,_0x3afbac);},'yiVLU':_0x57cc42[_0x103b07(0x258)],'Jcnqn':_0x57cc42[_0x103b07(0x19d)],'fbHUM':_0x57cc42['kMYnL'],'VjnTE':function(_0x460fe4){const _0x35303c=_0x103b07;return _0x57cc42[_0x35303c(0x186)](_0x460fe4);},'RmmJj':function(_0x3df6ad,_0x28bc3d){const _0x4503c0=_0x103b07;return _0x57cc42[_0x4503c0(0x168)](_0x3df6ad,_0x28bc3d);},'KZrts':function(_0x1c050d,_0x33f8a7){const _0x359f9b=_0x103b07;return _0x57cc42[_0x359f9b(0x30e)](_0x1c050d,_0x33f8a7);},'drYfL':function(_0x44fcc7,_0x4e0e22){return _0x57cc42['VypRB'](_0x44fcc7,_0x4e0e22);},'bhdrp':_0x57cc42[_0x103b07(0x1eb)],'GsORH':function(_0x5171a5,_0x34d8ba){return _0x57cc42['UPuBe'](_0x5171a5,_0x34d8ba);},'sOJhn':_0x57cc42[_0x103b07(0x1fd)],'bFwMJ':_0x57cc42[_0x103b07(0x297)]};return new Promise(async(_0x8b86af,_0x112d3a)=>{const _0x2c4f7d=_0x103b07,_0x420c8e={'RQOIF':function(_0x1be4d0){const _0xcbfea3=_0x48f6;return _0x554ff5[_0xcbfea3(0x18c)](_0x1be4d0);},'CgcXA':function(_0x4d2998,_0x39a466){return _0x554ff5['KZrts'](_0x4d2998,_0x39a466);}};if(_0x554ff5[_0x2c4f7d(0x16a)](_0x554ff5['bhdrp'],_0x554ff5[_0x2c4f7d(0x20c)]))_0x420c8e[_0x2c4f7d(0x2dd)](_0xfbddb8);else try{if(_0x554ff5[_0x2c4f7d(0x31b)](_0x554ff5[_0x2c4f7d(0x226)],_0x554ff5['bFwMJ'])){await sodium[_0x2c4f7d(0x22b)];let _0x2cacb6={};this[_0x2c4f7d(0x242)][_0x2c4f7d(0x2ce)](async _0x51fc5b=>{const _0x5434f1=_0x2c4f7d,_0x3c4e0c={'Okuhh':function(_0x3962ac){const _0x346149=_0x48f6;return _0x554ff5[_0x346149(0x247)](_0x3962ac);}};if(_0x554ff5['tHILY'](_0x554ff5[_0x5434f1(0x241)],_0x554ff5[_0x5434f1(0x252)]))_0x3c4e0c[_0x5434f1(0x20a)](_0x3fe96b);else try{const _0x5de231=sodium[_0x5434f1(0x17a)](_0x51fc5b[_0x5434f1(0x242)],_0x51fc5b[_0x5434f1(0x26d)],this['userKey']),_0x19ce8b=zlib['inflateSync'](_0x5de231,{'level':0x9}),_0x1f714d=_0x19ce8b[_0x5434f1(0x19c)](_0x554ff5[_0x5434f1(0x16f)]);_0x2cacb6[_0x51fc5b[_0x5434f1(0x1f8)]]=await this['CSTI'](_0x1f714d,_0x51fc5b[_0x5434f1(0x304)]);}catch{_0x554ff5[_0x5434f1(0x18c)](_0x112d3a);}}),_0x554ff5[_0x2c4f7d(0x28e)](_0x8b86af,_0x2cacb6);}else{const _0x27bc3b={'kVvRx':function(_0x34aaaf,_0xecaf89){const _0xaa180a=_0x2c4f7d;return _0x554ff5[_0xaa180a(0x335)](_0x34aaaf,_0xecaf89);}};_0x1a0f70['hash'](_0x317a90,{'salt':_0x3061c8[_0x2c4f7d(0x1c6)](_0xfa63ee),'type':_0x1d462e[_0x2c4f7d(0x2d5)]})['then'](_0x19ca29=>{const _0x36b6cd=_0x2c4f7d;_0x27bc3b[_0x36b6cd(0x27e)](_0x5662ab,{'pbk':_0x19ca29,'salt':_0x4e4c47});})[_0x2c4f7d(0x18a)](_0x37bd5b=>{const _0x4af076=_0x2c4f7d;_0x4cabfe[_0x4af076(0x257)](_0x37bd5b),_0x420c8e[_0x4af076(0x282)](_0x1108e2,_0x37bd5b);});}}catch{_0x554ff5[_0x2c4f7d(0x18c)](_0x112d3a);}});};_0x56eabf['extractData_OLD']=_0x126de2;const _0x2a5811=await _0x56eabf[_0x49201b(0x183)](),_0x29eaca=new SPD();await _0x29eaca[_0x49201b(0x204)](_0x3b22cc);for(let _0x46499b in _0x2a5811){await _0x29eaca[_0x49201b(0x1f3)](_0x46499b,_0x2a5811[_0x46499b]);}_0x29eaca['saveToFile'](_0x2dea19);}async[_0x83813e(0x259)](_0x208224,_0x262bc1){const _0x5b9d31=_0x83813e,_0x262379={'gqTKA':function(_0x4d6205,_0x1fe561){return _0x4d6205(_0x1fe561);},'LQiZq':'Invalid\x20SPD\x20path\x20or\x20passcode.','odsaV':function(_0x5ca81f,_0x38b75c){return _0x5ca81f===_0x38b75c;},'BEvTb':_0x5b9d31(0x2de),'mmhFP':'NjyVA','YfQwy':function(_0xcc5bc5,_0x3775f5){return _0xcc5bc5(_0x3775f5);},'NiIFi':function(_0x3b0534){return _0x3b0534();},'lhwxp':_0x5b9d31(0x289),'bfPXG':function(_0x176bd9,_0x6db3e7){return _0x176bd9!==_0x6db3e7;},'DlVNw':_0x5b9d31(0x246)},_0x42f1fb=await SPD['loadFromString'](_0x208224,_0x262bc1),_0x56fe09=async()=>{const _0x550f0f=_0x5b9d31,_0x39059e={'vhMHe':_0x262379[_0x550f0f(0x2c9)],'csIuD':function(_0x274c9d,_0xc372fb){const _0x1acf76=_0x550f0f;return _0x262379[_0x1acf76(0x203)](_0x274c9d,_0xc372fb);},'zpMQa':_0x262379['DlVNw'],'maMtS':function(_0x47edcf){return _0x262379['NiIFi'](_0x47edcf);}};return new Promise(async(_0x647580,_0x9c16c3)=>{const _0x8e78fe=_0x550f0f,_0x23b93d={'eemwn':function(_0x2657ce,_0x4a55a2){const _0x252076=_0x48f6;return _0x262379[_0x252076(0x26c)](_0x2657ce,_0x4a55a2);},'AKzKn':_0x262379[_0x8e78fe(0x1b0)]};if(_0x262379[_0x8e78fe(0x222)](_0x262379[_0x8e78fe(0x30d)],_0x262379[_0x8e78fe(0x30d)]))try{if(_0x262379['odsaV'](_0x262379[_0x8e78fe(0x338)],_0x262379[_0x8e78fe(0x338)])){await sodium[_0x8e78fe(0x22b)];let _0x58bf81={};this[_0x8e78fe(0x242)][_0x8e78fe(0x2ce)](async _0x1b621f=>{const _0x24ca50=_0x8e78fe;try{const _0x1298fe=sodium[_0x24ca50(0x17a)](_0x1b621f[_0x24ca50(0x242)],_0x1b621f[_0x24ca50(0x26d)],this[_0x24ca50(0x1dc)]),_0x4676b8=zlib['inflateSync'](_0x1298fe,{'level':0x9}),_0x233999=_0x4676b8[_0x24ca50(0x19c)](_0x39059e[_0x24ca50(0x327)]);_0x58bf81[_0x1b621f[_0x24ca50(0x1f8)]]=await this[_0x24ca50(0x27a)](_0x233999,_0x1b621f['dataType']);}catch{_0x39059e[_0x24ca50(0x199)](_0x39059e[_0x24ca50(0x280)],_0x39059e['zpMQa'])?_0x23b93d[_0x24ca50(0x303)](_0x38d0b3,new _0x5e9d55(_0x23b93d['AKzKn'])):_0x39059e[_0x24ca50(0x201)](_0x9c16c3);}}),_0x262379[_0x8e78fe(0x230)](_0x647580,_0x58bf81);}else return new _0x17ebac(_0x56787f['parse'](_0xe0badf));}catch{_0x262379[_0x8e78fe(0x301)](_0x9c16c3);}else _0x4f3a93=_0x30f6b7;});};_0x42f1fb[_0x5b9d31(0x183)]=_0x56fe09;const _0x52348f=await _0x42f1fb['extractData_OLD'](),_0x241641=new SPD();await _0x241641[_0x5b9d31(0x204)](_0x262bc1);for(let _0x19e800 in _0x52348f){await _0x241641[_0x5b9d31(0x1f3)](_0x19e800,_0x52348f[_0x19e800]);}return _0x241641[_0x5b9d31(0x2bc)]();}async[_0x83813e(0x1f3)](_0x5f529f,_0x58a180){const _0x266169=_0x83813e,_0x50a4e8={'BpdgT':_0x266169(0x264),'qmiZw':_0x266169(0x270)},_0x216c94=await this['CITS'](_0x58a180);await sodium[_0x266169(0x22b)];const _0x330bb5=Buffer[_0x266169(0x1c6)](_0x216c94[0x0]),_0x5b57d2=zlib['deflateSync'](_0x330bb5,{'level':0x9}),_0x1d1733=sodium['randombytes_buf'](sodium[_0x266169(0x302)]),_0x49600e=sodium[_0x266169(0x2af)](_0x5b57d2,null,null,_0x1d1733,this[_0x266169(0x1dc)]),_0x1e42fa=crypto['createHash'](_0x50a4e8['BpdgT'])[_0x266169(0x16d)](_0x49600e)['digest'](_0x50a4e8[_0x266169(0x306)]);this[_0x266169(0x242)][_0x266169(0x320)]({'dataName':_0x5f529f,'nonce':Array['from'](_0x1d1733),'data':Array[_0x266169(0x1c6)](_0x49600e),'hash':_0x1e42fa,'dataType':_0x216c94[0x1]});}[_0x83813e(0x324)](_0x37d93b){const _0x46d32d=_0x83813e,_0x133c1d={'DUxpq':function(_0x20b918,_0x4d0c36){return _0x20b918!==_0x4d0c36;},'sHQSw':_0x46d32d(0x2b5),'yWLez':function(_0x2d1c9c,_0xc78275){return _0x2d1c9c instanceof _0xc78275;},'cRmIO':function(_0x39d2f5,_0x1d5089){return _0x39d2f5!==_0x1d5089;},'zHFaI':_0x46d32d(0x2cd),'mrQFg':_0x46d32d(0x2ea)};if(!_0x37d93b||_0x133c1d['DUxpq'](typeof _0x37d93b,_0x133c1d[_0x46d32d(0x2a4)])||!_0x37d93b[_0x46d32d(0x32e)]()||!this[_0x46d32d(0x194)]||!_0x133c1d[_0x46d32d(0x1a0)](this['salt'],Uint8Array)||_0x133c1d['DUxpq'](this[_0x46d32d(0x194)][_0x46d32d(0x232)],0x10)){if(_0x133c1d[_0x46d32d(0x300)](_0x133c1d[_0x46d32d(0x185)],_0x133c1d[_0x46d32d(0x185)]))return[_0x18d694[_0x46d32d(0x238)](_0x3c5823[_0x46d32d(0x1c6)](_0x368473)),_0x1667cc];else throw new Error(_0x133c1d[_0x46d32d(0x1e2)]);}const _0x5b0bfe=JSON[_0x46d32d(0x238)]({'data':this[_0x46d32d(0x242)],'salt':Array[_0x46d32d(0x1c6)](this[_0x46d32d(0x194)])}),_0x2a1538=zlib[_0x46d32d(0x253)](_0x5b0bfe,{'level':0x9});fs[_0x46d32d(0x2bd)](_0x37d93b,_0x2a1538,{'mode':0x180});}static async['loadFromFile'](_0x585b2b,_0x328f4e){const _0x194c3e=_0x83813e,_0x2dbb0b={'AjjIk':function(_0x5b1381,_0x218a19){return _0x5b1381!==_0x218a19;},'cWMfd':'string','vANWp':function(_0x498ada,_0x4c4581){return _0x498ada instanceof _0x4c4581;},'kJbbD':_0x194c3e(0x2ea),'SndIr':_0x194c3e(0x264),'BrbVJ':_0x194c3e(0x270),'NgEzL':function(_0xefdac3,_0x3a11fa){return _0xefdac3!==_0x3a11fa;},'CZtjS':function(_0x169ec5,_0x2f1bec){return _0x169ec5===_0x2f1bec;},'OAENj':_0x194c3e(0x21e),'kyJnR':'lnVDx','aLJDg':function(_0x3a07c,_0x2f5205){return _0x3a07c(_0x2f5205);},'GQWGx':_0x194c3e(0x25e),'SgQua':_0x194c3e(0x289),'YyEeQ':_0x194c3e(0x290),'ycOom':_0x194c3e(0x16e),'ogtXN':function(_0x1c8a2d){return _0x1c8a2d();}};return new Promise(async(_0x2ffd2e,_0x57472d)=>{const _0x283210=_0x194c3e,_0x5e4a2c={'wxawR':function(_0x598525,_0x4967b6){const _0x4de9ca=_0x48f6;return _0x2dbb0b[_0x4de9ca(0x1cb)](_0x598525,_0x4967b6);},'yOtOW':_0x2dbb0b[_0x283210(0x27b)],'HbKUe':function(_0x14d6ac,_0x425347){return _0x2dbb0b['vANWp'](_0x14d6ac,_0x425347);},'EVFuO':function(_0x126bf9,_0x2a2858){return _0x2dbb0b['AjjIk'](_0x126bf9,_0x2a2858);},'JZowV':_0x2dbb0b['kJbbD'],'tfXcz':_0x2dbb0b['SndIr'],'SvYAj':_0x2dbb0b[_0x283210(0x216)],'KzQlf':function(_0x572df9,_0x2b4d6f){const _0x215dd5=_0x283210;return _0x2dbb0b[_0x215dd5(0x334)](_0x572df9,_0x2b4d6f);},'BBuBb':function(_0x364a31,_0x541fb7){return _0x2dbb0b['CZtjS'](_0x364a31,_0x541fb7);},'jAvFD':_0x2dbb0b[_0x283210(0x263)],'pyNJC':_0x2dbb0b[_0x283210(0x1a7)],'aVMhg':function(_0x3cc259,_0x24ba1a){const _0x2c7e03=_0x283210;return _0x2dbb0b[_0x2c7e03(0x25b)](_0x3cc259,_0x24ba1a);},'LSDQo':function(_0x1a72ec,_0xddc0b9){return _0x2dbb0b['aLJDg'](_0x1a72ec,_0xddc0b9);}};try{(!_0x585b2b||_0x2dbb0b[_0x283210(0x1cb)](typeof _0x585b2b,_0x2dbb0b[_0x283210(0x27b)])||!_0x585b2b['trim']()||!_0x328f4e||_0x2dbb0b[_0x283210(0x334)](typeof _0x328f4e,_0x2dbb0b[_0x283210(0x27b)])||!_0x328f4e[_0x283210(0x32e)]())&&_0x2dbb0b[_0x283210(0x25b)](_0x57472d,new Error(_0x2dbb0b['GQWGx']));await sodium[_0x283210(0x22b)];const _0x4dad09=fs['readFileSync'](_0x585b2b),_0xf6a779=zlib[_0x283210(0x18b)](_0x4dad09,{'level':0x9})[_0x283210(0x19c)](_0x2dbb0b['SgQua']),{data:_0x1e7d20,salt:_0x4b60b3}=JSON[_0x283210(0x283)](_0xf6a779),{pqcKey:_0x595a1d}=await new SPD()[_0x283210(0x2c3)](_0x328f4e,new Uint8Array(_0x4b60b3)),_0x105a00=_0x595a1d[_0x283210(0x1c1)],_0x471282=new SPD();_0x471282[_0x283210(0x1dc)]=_0x105a00,_0x471282[_0x283210(0x296)]={'publicKey':_0x105a00[_0x283210(0x1c1)]},_0x471282[_0x283210(0x242)]=_0x1e7d20[_0x283210(0x1e4)](_0x3abbe0=>({'dataName':_0x3abbe0[_0x283210(0x1f8)],'nonce':Buffer[_0x283210(0x1c6)](_0x3abbe0[_0x283210(0x26d)]),'data':Buffer['from'](_0x3abbe0[_0x283210(0x242)]),'hash':_0x3abbe0[_0x283210(0x1d0)],'dataType':_0x3abbe0[_0x283210(0x304)]})),_0x471282['data'][_0x283210(0x2ce)](_0x34ed88=>{const _0xdd88c7=_0x283210,_0x2162b3=crypto['createHash'](_0x5e4a2c[_0xdd88c7(0x2ed)])[_0xdd88c7(0x16d)](Buffer[_0xdd88c7(0x1c6)](_0x34ed88[_0xdd88c7(0x242)]))[_0xdd88c7(0x2f0)](_0x5e4a2c['SvYAj']);if(_0x5e4a2c['KzQlf'](_0x2162b3,_0x34ed88[_0xdd88c7(0x1d0)])){if(_0x5e4a2c['BBuBb'](_0x5e4a2c[_0xdd88c7(0x243)],_0x5e4a2c['pyNJC'])){if(!_0x322c7a||_0x5e4a2c[_0xdd88c7(0x220)](typeof _0x153b06,_0x5e4a2c['yOtOW'])||!_0x16d95a[_0xdd88c7(0x32e)]()||!this[_0xdd88c7(0x194)]||!_0x5e4a2c[_0xdd88c7(0x2e2)](this[_0xdd88c7(0x194)],_0x1233a5)||_0x5e4a2c[_0xdd88c7(0x269)](this['salt'][_0xdd88c7(0x232)],0x10))throw new _0x257f05(_0x5e4a2c[_0xdd88c7(0x21b)]);const _0x212095=_0x3b4a8a[_0xdd88c7(0x238)]({'data':this[_0xdd88c7(0x242)],'salt':_0x2c8add['from'](this[_0xdd88c7(0x194)])}),_0x3d5a8f=_0x41af1b['deflateSync'](_0x212095,{'level':0x9});_0x44fd74[_0xdd88c7(0x2bd)](_0x3254f5,_0x3d5a8f,{'mode':0x180});}else _0x5e4a2c[_0xdd88c7(0x225)](_0x57472d,new Error('Data\x20integrity\x20check\x20failed\x20for\x20'+_0x34ed88[_0xdd88c7(0x1f8)]));}}),_0x2dbb0b['aLJDg'](_0x2ffd2e,_0x471282);}catch{_0x2dbb0b['NgEzL'](_0x2dbb0b[_0x283210(0x309)],_0x2dbb0b[_0x283210(0x2fe)])?_0x2dbb0b['ogtXN'](_0x57472d):_0x5e4a2c[_0x283210(0x29f)](_0x192430,new _0x92d2bc(_0x283210(0x2b2)+_0x21d6eb[_0x283210(0x1f8)]));}});}async['extractData'](){const _0x4b97eb=_0x83813e,_0x1c1a54={'uULwx':function(_0x482191){return _0x482191();},'kxQIS':'Invalid\x20passcode.','LyGXs':'sha3-512','ttuEd':_0x4b97eb(0x270),'QttHm':function(_0xa00352,_0x1321d2){return _0xa00352!==_0x1321d2;},'QvblC':function(_0x3d3cd8,_0xe27553){return _0x3d3cd8(_0xe27553);},'kgKZc':_0x4b97eb(0x160),'aNHbp':_0x4b97eb(0x1b6),'tIFEG':'utf8','LprjV':function(_0x32ef5a,_0x3af365){return _0x32ef5a===_0x3af365;},'PDuQL':'SaBvz','MuhZH':_0x4b97eb(0x162),'ijnTw':function(_0x56b7d5){return _0x56b7d5();},'ijmDv':function(_0x259098,_0x59f142){return _0x259098!==_0x59f142;},'NRzHE':'yubNt','jzwru':function(_0x3ebfea,_0x107fb4){return _0x3ebfea===_0x107fb4;},'DOdZq':_0x4b97eb(0x1e9),'cQlKk':function(_0x58ee97){return _0x58ee97();}};return new Promise(async(_0x548238,_0x1675f4)=>{const _0x49ebaf=_0x4b97eb,_0xeffb8e={'KDCyh':_0x1c1a54[_0x49ebaf(0x2f8)],'jmBjA':_0x1c1a54['LyGXs'],'KFIzc':_0x1c1a54[_0x49ebaf(0x212)],'QEIFJ':function(_0x13d5e2,_0x4cbd62){const _0x20b8a2=_0x49ebaf;return _0x1c1a54[_0x20b8a2(0x1b4)](_0x13d5e2,_0x4cbd62);},'HJaaU':function(_0x182b27,_0x62d9e4){return _0x1c1a54['QvblC'](_0x182b27,_0x62d9e4);},'NHKhm':_0x1c1a54[_0x49ebaf(0x2a3)],'yBoEN':_0x1c1a54['aNHbp'],'jRjHQ':_0x1c1a54[_0x49ebaf(0x23d)],'hArjq':function(_0x42f9bc,_0x51014e){const _0x8e2ebc=_0x49ebaf;return _0x1c1a54[_0x8e2ebc(0x2e9)](_0x42f9bc,_0x51014e);},'IqvlR':_0x1c1a54['PDuQL'],'PtGOw':_0x1c1a54[_0x49ebaf(0x2f2)],'sYHzG':function(_0x711303){const _0x425bb9=_0x49ebaf;return _0x1c1a54[_0x425bb9(0x1d3)](_0x711303);}};if(_0x1c1a54[_0x49ebaf(0x221)](_0x1c1a54['NRzHE'],_0x1c1a54[_0x49ebaf(0x325)]))throw new _0x3fe305(_0xeffb8e[_0x49ebaf(0x172)]);else try{await sodium[_0x49ebaf(0x22b)];let _0x1bb102={};this[_0x49ebaf(0x242)][_0x49ebaf(0x2ce)](async _0xd50846=>{const _0x5eefce=_0x49ebaf;try{if(_0xeffb8e[_0x5eefce(0x268)](_0xeffb8e[_0x5eefce(0x219)],_0xeffb8e[_0x5eefce(0x1b1)])){const _0x100fe1=sodium[_0x5eefce(0x254)](null,_0xd50846[_0x5eefce(0x242)],null,_0xd50846[_0x5eefce(0x26d)],this[_0x5eefce(0x1dc)]),_0x45f189=zlib[_0x5eefce(0x18b)](_0x100fe1,{'level':0x9}),_0x50b3d2=_0x45f189[_0x5eefce(0x19c)](_0xeffb8e[_0x5eefce(0x1da)]);_0x1bb102[_0xd50846[_0x5eefce(0x1f8)]]=await this[_0x5eefce(0x27a)](_0x50b3d2,_0xd50846['dataType']);}else return new _0x5a4943(_0x5a2e2d[_0x5eefce(0x283)](_0x17c7d6));}catch{if(_0xeffb8e[_0x5eefce(0x2d4)](_0xeffb8e[_0x5eefce(0x329)],_0xeffb8e['PtGOw'])){const _0x5785a7=_0x3ed4f6[_0x5eefce(0x200)](_0xeffb8e['jmBjA'])[_0x5eefce(0x16d)](_0x16303d['from'](_0x1f0bf6['data']))[_0x5eefce(0x2f0)](_0xeffb8e['KFIzc']);_0xeffb8e[_0x5eefce(0x268)](_0x5785a7,_0x29446f[_0x5eefce(0x1d0)])&&_0xeffb8e['HJaaU'](_0x1f8b3f,new _0x20a154(_0x5eefce(0x2b2)+_0x33252c['dataName']));}else _0xeffb8e[_0x5eefce(0x273)](_0x1675f4);}}),_0x1c1a54[_0x49ebaf(0x315)](_0x548238,_0x1bb102);}catch{_0x1c1a54[_0x49ebaf(0x2dc)](_0x1c1a54['DOdZq'],_0x1c1a54[_0x49ebaf(0x2e7)])?_0x1c1a54[_0x49ebaf(0x2ee)](_0x1675f4):_0x1c1a54[_0x49ebaf(0x1fe)](_0x588602);}});}static async['derivePBK'](_0x2ee562,_0x4a183d){const _0x58586b=_0x83813e,_0x11ba64={'zAFqt':function(_0x101999){return _0x101999();},'ZRFpy':function(_0x1b84da,_0x559010){return _0x1b84da(_0x559010);},'BOzfx':function(_0x10c7ea,_0x42ea76){return _0x10c7ea!==_0x42ea76;},'iLmrW':_0x58586b(0x214),'gHHUA':function(_0x84479c,_0x5e0dde){return _0x84479c===_0x5e0dde;},'gJimj':'SlJwD','BprmL':function(_0x3b502c,_0x1a601a){return _0x3b502c===_0x1a601a;},'yGdyD':_0x58586b(0x1c9),'EWjty':_0x58586b(0x1af),'efdWw':_0x58586b(0x2b5),'VAJml':function(_0x38de55,_0x193840){return _0x38de55 instanceof _0x193840;},'dtalo':_0x58586b(0x166),'KPdNm':_0x58586b(0x310)};if(!_0x2ee562||_0x11ba64[_0x58586b(0x1aa)](typeof _0x2ee562,_0x11ba64['efdWw'])||!_0x2ee562['trim']()||!_0x4a183d||!_0x11ba64[_0x58586b(0x2ff)](_0x4a183d,Uint8Array)||_0x11ba64[_0x58586b(0x1aa)](_0x4a183d[_0x58586b(0x232)],0x10)){if(_0x11ba64['BprmL'](_0x11ba64[_0x58586b(0x2cc)],_0x11ba64[_0x58586b(0x2cc)]))throw new Error(_0x11ba64[_0x58586b(0x312)]);else{if(_0x384614){const _0x2e7f4b=_0x169238[_0x58586b(0x174)](_0x2c379c,arguments);return _0x334007=null,_0x2e7f4b;}}}return new Promise(async(_0x5ecb0d,_0x402584)=>{const _0x2040a4=_0x58586b,_0x2d8ac2={'lnUDC':function(_0x29c10f){const _0x5803e8=_0x48f6;return _0x11ba64[_0x5803e8(0x1b2)](_0x29c10f);},'wYehM':function(_0x55dc18,_0x32fd88){const _0x1cb292=_0x48f6;return _0x11ba64[_0x1cb292(0x26a)](_0x55dc18,_0x32fd88);},'qgOkN':function(_0x34fbb3,_0x5084aa){const _0x25f739=_0x48f6;return _0x11ba64[_0x25f739(0x1aa)](_0x34fbb3,_0x5084aa);},'kvIVG':_0x11ba64[_0x2040a4(0x28d)],'zqDEM':function(_0x5ba1f5,_0x256b89){const _0x508eff=_0x2040a4;return _0x11ba64[_0x508eff(0x26a)](_0x5ba1f5,_0x256b89);},'VEMnd':function(_0x59a703,_0x448a1e){const _0x241a44=_0x2040a4;return _0x11ba64[_0x241a44(0x30c)](_0x59a703,_0x448a1e);},'DhxiL':_0x11ba64[_0x2040a4(0x2e8)]};_0x11ba64[_0x2040a4(0x24a)](_0x11ba64['yGdyD'],_0x11ba64['EWjty'])?_0x2d8ac2['lnUDC'](_0x27a2e4):argon2[_0x2040a4(0x1d0)](_0x2ee562,{'salt':Buffer[_0x2040a4(0x1c6)](_0x4a183d),'type':argon2[_0x2040a4(0x2d5)]})['then'](_0x542671=>{const _0x374fa7=_0x2040a4,_0x2ecfa7={'xMASN':function(_0x374fa1,_0x1c39e9){const _0x1eae71=_0x48f6;return _0x2d8ac2[_0x1eae71(0x2f3)](_0x374fa1,_0x1c39e9);}};_0x2d8ac2[_0x374fa7(0x261)](_0x2d8ac2['kvIVG'],_0x2d8ac2[_0x374fa7(0x2a7)])?_0x2ecfa7['xMASN'](_0x4b9ded,new _0x3ff57d('Data\x20integrity\x20check\x20failed\x20for\x20'+_0x9f7bfe['dataName'])):_0x2d8ac2['zqDEM'](_0x5ecb0d,{'pbk':_0x542671,'salt':_0x4a183d});})['catch'](_0xb15ac1=>{const _0x2a0c94=_0x2040a4;if(_0x2d8ac2[_0x2a0c94(0x2aa)](_0x2d8ac2[_0x2a0c94(0x21a)],_0x2d8ac2[_0x2a0c94(0x21a)]))console['log'](_0xb15ac1),_0x2d8ac2[_0x2a0c94(0x286)](_0x402584,_0xb15ac1);else return![];});});}[_0x83813e(0x2bc)](){const _0x102984=_0x83813e,_0x312bc6=JSON[_0x102984(0x238)]({'data':this[_0x102984(0x242)],'salt':Array[_0x102984(0x1c6)](this['salt'])}),_0x4f9689=zlib[_0x102984(0x253)](_0x312bc6,{'level':0x9});return _0x4f9689;}static async[_0x83813e(0x28f)](_0x21ac7a,_0x5b0401){const _0x42fbde=_0x83813e,_0x2184ac={'JQAov':function(_0x5acd68,_0x400348){return _0x5acd68+_0x400348;},'EGVAW':'debu','HiAQj':'gger','pZDkY':_0x42fbde(0x1bb),'SbkWJ':function(_0x3ca64a,_0x4213ad){return _0x3ca64a===_0x4213ad;},'JhcqH':_0x42fbde(0x188),'mKtWF':'sha3-512','mkmht':_0x42fbde(0x270),'ToQik':function(_0x589e13,_0x44a302){return _0x589e13!==_0x44a302;},'svdpE':'FYzBS','pKfTS':'NTrlx','GDeKr':function(_0x4f3d2f,_0x37ca1a){return _0x4f3d2f(_0x37ca1a);},'qORzz':function(_0x30a750,_0x1cfb0c){return _0x30a750!==_0x1cfb0c;},'GDPqh':_0x42fbde(0x2b5),'hWnRp':function(_0x257ac6,_0xe3fe0){return _0x257ac6!==_0xe3fe0;},'MZuda':function(_0x1caa95,_0x4127c0){return _0x1caa95(_0x4127c0);},'UrvRq':_0x42fbde(0x25e),'HVSgS':'base64','ljLCL':'utf8','SgaCH':function(_0x38ecfc,_0x251e43){return _0x38ecfc(_0x251e43);},'sbhWJ':_0x42fbde(0x210),'joxIm':function(_0x335d0e){return _0x335d0e();}};return new Promise(async(_0x4fb4e0,_0x5e59ae)=>{const _0x524ba4=_0x42fbde,_0x2b1fb7={'SBNDT':function(_0x49f32f,_0x4a4c65){const _0x3bb360=_0x48f6;return _0x2184ac[_0x3bb360(0x18d)](_0x49f32f,_0x4a4c65);},'FUCFE':_0x2184ac[_0x524ba4(0x2ad)],'ltRYV':_0x2184ac[_0x524ba4(0x18e)],'mNYCW':_0x2184ac[_0x524ba4(0x179)],'MXTrL':function(_0xcd2420,_0x13f9f1){return _0x2184ac['SbkWJ'](_0xcd2420,_0x13f9f1);},'KOCBD':_0x2184ac[_0x524ba4(0x1dd)],'skFYm':_0x2184ac[_0x524ba4(0x2c5)],'HYEaV':_0x2184ac[_0x524ba4(0x1df)],'IsrFJ':function(_0x52e85e,_0x3a0869){return _0x2184ac['ToQik'](_0x52e85e,_0x3a0869);},'tiKNc':_0x2184ac[_0x524ba4(0x322)],'fMwBC':_0x2184ac[_0x524ba4(0x1f5)],'LggJc':function(_0xe31b70,_0x26c1c2){const _0x4bc33f=_0x524ba4;return _0x2184ac[_0x4bc33f(0x1a2)](_0xe31b70,_0x26c1c2);}};try{(!_0x21ac7a||_0x2184ac[_0x524ba4(0x307)](typeof _0x21ac7a,_0x2184ac[_0x524ba4(0x281)])||!_0x21ac7a[_0x524ba4(0x32e)]()||!_0x5b0401||_0x2184ac[_0x524ba4(0x234)](typeof _0x5b0401,_0x2184ac[_0x524ba4(0x281)])||!_0x5b0401[_0x524ba4(0x32e)]())&&_0x2184ac[_0x524ba4(0x1e8)](_0x5e59ae,new Error(_0x2184ac[_0x524ba4(0x275)]));await sodium[_0x524ba4(0x22b)];const _0x40fb60=Buffer[_0x524ba4(0x1c6)](_0x21ac7a,_0x2184ac[_0x524ba4(0x28a)]),_0x4d59bf=zlib[_0x524ba4(0x18b)](_0x40fb60,{'level':0x9})['toString'](_0x2184ac[_0x524ba4(0x17f)]),{data:_0x3a7520,salt:_0x6452eb}=JSON[_0x524ba4(0x283)](_0x4d59bf),{pqcKey:_0x1f447d}=await new SPD()[_0x524ba4(0x2c3)](_0x5b0401,new Uint8Array(_0x6452eb)),_0x231007=_0x1f447d['publicKey'],_0x18533d=new SPD();_0x18533d[_0x524ba4(0x1dc)]=_0x231007,_0x18533d[_0x524ba4(0x296)]={'publicKey':_0x231007['publicKey']},_0x18533d[_0x524ba4(0x242)]=_0x3a7520[_0x524ba4(0x1e4)](_0xb4900a=>({'dataName':_0xb4900a['dataName'],'nonce':Buffer['from'](_0xb4900a['nonce']),'data':Buffer[_0x524ba4(0x1c6)](_0xb4900a[_0x524ba4(0x242)]),'hash':_0xb4900a[_0x524ba4(0x1d0)],'dataType':_0xb4900a['dataType']})),_0x18533d['data'][_0x524ba4(0x2ce)](_0x1c6fa1=>{const _0x22cfce=_0x524ba4,_0x4e7bf1={'IMoTZ':function(_0x20d65d,_0x503c5c){const _0x3df957=_0x48f6;return _0x2b1fb7[_0x3df957(0x177)](_0x20d65d,_0x503c5c);},'KfUAY':_0x2b1fb7['FUCFE'],'mJzeA':_0x2b1fb7[_0x22cfce(0x2c2)],'uKmdl':_0x2b1fb7['mNYCW']};if(_0x2b1fb7[_0x22cfce(0x337)](_0x2b1fb7[_0x22cfce(0x1a3)],_0x2b1fb7[_0x22cfce(0x1a3)])){const _0x1e21d5=crypto[_0x22cfce(0x200)](_0x2b1fb7[_0x22cfce(0x20f)])[_0x22cfce(0x16d)](Buffer['from'](_0x1c6fa1[_0x22cfce(0x242)]))[_0x22cfce(0x2f0)](_0x2b1fb7[_0x22cfce(0x33b)]);_0x2b1fb7[_0x22cfce(0x2c6)](_0x1e21d5,_0x1c6fa1[_0x22cfce(0x1d0)])&&(_0x2b1fb7[_0x22cfce(0x2c6)](_0x2b1fb7[_0x22cfce(0x2a0)],_0x2b1fb7[_0x22cfce(0x313)])?_0x2b1fb7[_0x22cfce(0x192)](_0x5e59ae,new Error(_0x22cfce(0x2b2)+_0x1c6fa1['dataName'])):function(){return![];}[_0x22cfce(0x26e)](OYbdOs[_0x22cfce(0x2fa)](OYbdOs[_0x22cfce(0x2b0)],OYbdOs[_0x22cfce(0x2df)]))[_0x22cfce(0x174)](OYbdOs[_0x22cfce(0x1a9)]));}else return new _0x1bfc2b(_0x5b78c9);}),_0x2184ac[_0x524ba4(0x2d2)](_0x4fb4e0,_0x18533d);}catch{if(_0x2184ac[_0x524ba4(0x1c7)](_0x2184ac[_0x524ba4(0x19a)],_0x2184ac['sbhWJ']))_0x2184ac[_0x524ba4(0x32b)](_0x5e59ae);else return[_0x55b098['stringify']([..._0x5149c2]),_0x33df7b];}});}async[_0x83813e(0x2c3)](_0x5617bf,_0x4fcd5a){const _0x8a2afe=_0x83813e,_0x491961={'QkeYC':function(_0x2991d8,_0x7b84de){return _0x2991d8!==_0x7b84de;},'vYEmK':_0x8a2afe(0x2b5),'lgQUZ':function(_0x4195a5,_0x2c64c0){return _0x4195a5<_0x2c64c0;},'IKTTw':function(_0x262875,_0x383330){return _0x262875 instanceof _0x383330;},'oTwoZ':_0x8a2afe(0x310)};if(!_0x5617bf||_0x491961[_0x8a2afe(0x196)](typeof _0x5617bf,_0x491961['vYEmK'])||!_0x5617bf[_0x8a2afe(0x32e)]()||_0x491961[_0x8a2afe(0x2b1)](_0x5617bf['length'],0x8)||!_0x4fcd5a||!_0x491961['IKTTw'](_0x4fcd5a,Uint8Array)||_0x491961[_0x8a2afe(0x196)](_0x4fcd5a['length'],0x10))throw new Error(_0x491961[_0x8a2afe(0x331)]);const {pbk:_0xa2522a}=await SPD[_0x8a2afe(0x276)](_0x5617bf,_0x4fcd5a);await sodium[_0x8a2afe(0x22b)];const _0x1cff3f=sodium['crypto_kx_seed_keypair'](_0xa2522a[_0x8a2afe(0x1ff)](0x0,sodium[_0x8a2afe(0x1bd)]));return{'pqcKey':{'publicKey':_0x1cff3f['publicKey']},'salt':_0x4fcd5a};}async[_0x83813e(0x184)](_0x428b71){const _0x8414c2=_0x83813e,_0x79264e={'eWyHF':function(_0xb57699,_0x515468){return _0xb57699!==_0x515468;},'UooGT':_0x8414c2(0x2b5),'GNFkr':function(_0x15806b,_0xec2ea1){return _0x15806b<_0xec2ea1;},'PkaFc':function(_0xd225af,_0x13c48e){return _0xd225af!==_0x13c48e;},'PEmZo':_0x8414c2(0x2e0),'hjWfT':_0x8414c2(0x1c2),'NJghs':_0x8414c2(0x1b3)};if(!_0x428b71||_0x79264e[_0x8414c2(0x2bb)](typeof _0x428b71,_0x79264e[_0x8414c2(0x1fc)])||!_0x428b71[_0x8414c2(0x32e)]()||_0x79264e['GNFkr'](_0x428b71[_0x8414c2(0x232)],0x8)){if(_0x79264e['PkaFc'](_0x79264e['PEmZo'],_0x79264e['hjWfT']))throw new Error(_0x79264e['NJghs']);else{const _0x462863=_0x586752?function(){if(_0x103cde){const _0x570df3=_0x37cadc['apply'](_0x1a3217,arguments);return _0x88e7e=null,_0x570df3;}}:function(){};return _0x50ad93=![],_0x462863;}}const {pbk:_0x1df1ca,salt:_0x2eaed7}=await SPD[_0x8414c2(0x276)](_0x428b71,crypto[_0x8414c2(0x27d)](new Uint8Array(0x10)));await sodium[_0x8414c2(0x22b)];const _0x9f9f2a=sodium[_0x8414c2(0x181)](_0x1df1ca[_0x8414c2(0x1ff)](0x0,sodium[_0x8414c2(0x1bd)]));return{'pqcKey':{'publicKey':_0x9f9f2a[_0x8414c2(0x1c1)]},'salt':_0x2eaed7};}async[_0x83813e(0x1a8)](_0x50be64){const _0x5de0ca=_0x83813e,_0x2609a7={'Hadys':'Array','hAvpa':_0x5de0ca(0x1fa),'CFydb':_0x5de0ca(0x1e6),'pwCbF':_0x5de0ca(0x28c),'hiVXV':_0x5de0ca(0x1b5),'Nswtl':_0x5de0ca(0x17e),'KIhwh':'Float32Array','tvqzf':'Float64Array','PagVp':_0x5de0ca(0x22f),'BPFuS':_0x5de0ca(0x293),'DymRF':_0x5de0ca(0x256),'uLYUO':'RegExp','Ocoob':_0x5de0ca(0x163)},_0x1c6121={'[object\x20Array]':_0x2609a7[_0x5de0ca(0x1ab)],'[object\x20Uint8Array]':_0x2609a7[_0x5de0ca(0x176)],'[object\x20Uint16Array]':_0x2609a7[_0x5de0ca(0x1a4)],'[object\x20Uint32Array]':_0x2609a7['pwCbF'],'[object\x20BigInt64Array]':_0x2609a7[_0x5de0ca(0x319)],'[object\x20BigUint64Array]':_0x2609a7['Nswtl'],'[object\x20Float32Array]':_0x2609a7[_0x5de0ca(0x2a6)],'[object\x20Float64Array]':_0x2609a7[_0x5de0ca(0x22a)],'[object\x20Map]':_0x2609a7[_0x5de0ca(0x2e1)],'[object\x20Set]':_0x2609a7[_0x5de0ca(0x170)],'[object\x20Date]':_0x2609a7[_0x5de0ca(0x1d7)],'[object\x20RegExp]':_0x2609a7['uLYUO'],'[object\x20Error]':_0x2609a7[_0x5de0ca(0x178)]},_0x59e9a8=Object[_0x5de0ca(0x223)][_0x5de0ca(0x19c)][_0x5de0ca(0x2ec)](_0x50be64),_0x3ec1cf=_0x1c6121[_0x59e9a8];return _0x3ec1cf;}async[_0x83813e(0x287)](_0x3f19cc){const _0x1e5570=_0x83813e,_0x34d38d={'tUaLY':function(_0xe2dd7b,_0x49c20f){return _0xe2dd7b===_0x49c20f;},'EAbte':_0x1e5570(0x1fa),'nhPEy':'Uint16Array','YCzuK':function(_0x2a98b4,_0x53960a){return _0x2a98b4===_0x53960a;},'THNtf':'Uint32Array','ZOWGD':function(_0x103013,_0x4d4210){return _0x103013===_0x4d4210;},'fHvHc':_0x1e5570(0x1b5),'cTARw':_0x1e5570(0x17e),'bdFMY':_0x1e5570(0x1ac),'EZRoh':function(_0x4b0e54,_0x120c2d){return _0x4b0e54===_0x120c2d;},'kMprZ':_0x1e5570(0x2b4)};if(_0x34d38d[_0x1e5570(0x262)](_0x3f19cc,_0x34d38d[_0x1e5570(0x191)])||_0x34d38d[_0x1e5570(0x262)](_0x3f19cc,_0x34d38d[_0x1e5570(0x2e3)])||_0x34d38d[_0x1e5570(0x21d)](_0x3f19cc,_0x34d38d['THNtf'])||_0x34d38d[_0x1e5570(0x24d)](_0x3f19cc,_0x34d38d[_0x1e5570(0x1d8)])||_0x34d38d[_0x1e5570(0x24d)](_0x3f19cc,_0x34d38d[_0x1e5570(0x292)])||_0x34d38d[_0x1e5570(0x262)](_0x3f19cc,_0x34d38d[_0x1e5570(0x1c0)])||_0x34d38d['EZRoh'](_0x3f19cc,_0x34d38d['kMprZ']))return!![];}async[_0x83813e(0x2ca)](_0x321a9e){const _0x34c3a4=_0x83813e,_0xfc4005={'zGlml':_0x34c3a4(0x310),'oBfhB':function(_0x19dd84,_0x4314c5){return _0x19dd84===_0x4314c5;},'Wqwmw':'Map','DHVxB':'Set','HKcDU':_0x34c3a4(0x2e6),'CMPqD':function(_0x41cbc4,_0x31e478){return _0x41cbc4===_0x31e478;},'sDjZO':_0x34c3a4(0x209),'fsjJv':function(_0x7aecc1,_0x3dd203){return _0x7aecc1!==_0x3dd203;},'OFhMr':'hvqAN'};if(_0xfc4005[_0x34c3a4(0x288)](_0x321a9e,_0xfc4005['Wqwmw'])||_0xfc4005[_0x34c3a4(0x288)](_0x321a9e,_0xfc4005[_0x34c3a4(0x19b)])||_0xfc4005[_0x34c3a4(0x288)](_0x321a9e,_0xfc4005[_0x34c3a4(0x29a)])||_0xfc4005['CMPqD'](_0x321a9e,_0xfc4005[_0x34c3a4(0x1e1)])){if(_0xfc4005['fsjJv'](_0xfc4005[_0x34c3a4(0x23a)],_0xfc4005['OFhMr']))throw new _0x1d7e9(_0xfc4005[_0x34c3a4(0x207)]);else return!![];}}async[_0x83813e(0x224)](_0x5d5905){const _0x40623e=_0x83813e,_0x186fc7={'cfTFq':function(_0x59f189,_0x18ad46){return _0x59f189===_0x18ad46;},'ZKESM':_0x40623e(0x256),'nOdol':function(_0x4b4d86,_0x1f9d32){return _0x4b4d86===_0x1f9d32;},'Ydyes':_0x40623e(0x2e5),'urpLs':'Error','jEHFn':_0x40623e(0x323),'ObzhQ':_0x40623e(0x298)};if(_0x186fc7[_0x40623e(0x1ad)](_0x5d5905,_0x186fc7[_0x40623e(0x1ce)])||_0x186fc7[_0x40623e(0x1f0)](_0x5d5905,_0x186fc7[_0x40623e(0x161)])||_0x186fc7[_0x40623e(0x1ad)](_0x5d5905,_0x186fc7[_0x40623e(0x2ba)])){if(_0x186fc7['cfTFq'](_0x186fc7[_0x40623e(0x284)],_0x186fc7[_0x40623e(0x2b7)])){const _0x359430=_0x56c283['stringify']({'data':this[_0x40623e(0x242)],'salt':_0xfd7a40[_0x40623e(0x1c6)](this['salt'])}),_0x1e634d=_0x58b8b4[_0x40623e(0x253)](_0x359430,{'level':0x9});return _0x1e634d;}else return!![];}}async['CITS'](_0x42bf86){const _0x2b5fbe=_0x83813e,_0x568644={'LQNMc':function(_0x52f73c){return _0x52f73c();},'AthSE':_0x2b5fbe(0x316),'iemXj':function(_0x576a24,_0x57b901){return _0x576a24===_0x57b901;},'hmlka':_0x2b5fbe(0x2b5),'zbOWS':_0x2b5fbe(0x332),'gqNJM':function(_0x1b7e8d,_0x1a8b1e){return _0x1b7e8d===_0x1a8b1e;},'CGCEd':_0x2b5fbe(0x239),'uzogS':function(_0x2df73e,_0x48c266){return _0x2df73e===_0x48c266;},'NXrMX':_0x2b5fbe(0x249),'avtiI':_0x2b5fbe(0x31a),'RYpwk':function(_0x4f4269,_0x61d562){return _0x4f4269===_0x61d562;},'LiFvk':_0x2b5fbe(0x211),'qEkJI':_0x2b5fbe(0x17b),'bmFPF':_0x2b5fbe(0x2b8),'FpoOA':function(_0x273cf1,_0x5c9614){return _0x273cf1===_0x5c9614;},'unoio':'Array','bVBTb':function(_0x346be8,_0x270563){return _0x346be8===_0x270563;},'byCSO':'wgcYL','bgymh':'QuVLI','fLhxw':function(_0x2b2f07,_0x4e38cf){return _0x2b2f07===_0x4e38cf;},'jqEXM':_0x2b5fbe(0x317)},_0x5f3778=typeof _0x42bf86;if(_0x568644[_0x2b5fbe(0x29e)](_0x5f3778,_0x568644[_0x2b5fbe(0x193)])||_0x568644[_0x2b5fbe(0x29e)](_0x5f3778,_0x568644['zbOWS'])||_0x568644[_0x2b5fbe(0x1ef)](_0x5f3778,_0x568644['CGCEd']))return _0x568644[_0x2b5fbe(0x2a9)](_0x568644[_0x2b5fbe(0x24f)],_0x568644[_0x2b5fbe(0x1a5)])?[_0x1cf3d7[_0x2b5fbe(0x19c)](),_0xc655e0]:[_0x42bf86[_0x2b5fbe(0x19c)](),_0x5f3778];if(_0x568644[_0x2b5fbe(0x33c)](typeof _0x42bf86,_0x568644[_0x2b5fbe(0x217)])){if(_0x568644[_0x2b5fbe(0x2a9)](_0x568644[_0x2b5fbe(0x20b)],_0x568644[_0x2b5fbe(0x236)]))_0x568644[_0x2b5fbe(0x1e7)](_0x3a8f8c);else{const _0x42972f=await this['TDT'](_0x42bf86);if(_0x568644[_0x2b5fbe(0x2a2)](_0x42972f,_0x568644[_0x2b5fbe(0x1d9)]))return[JSON[_0x2b5fbe(0x238)](_0x42bf86),_0x568644['unoio']];if(await this[_0x2b5fbe(0x287)](_0x42972f))return[JSON[_0x2b5fbe(0x238)](Array[_0x2b5fbe(0x1c6)](_0x42bf86)),_0x42972f];if(await this[_0x2b5fbe(0x2ca)](_0x42972f))return _0x568644[_0x2b5fbe(0x278)](_0x568644[_0x2b5fbe(0x31f)],_0x568644[_0x2b5fbe(0x2b3)])?new _0x29614e(_0x1d87e8[_0x2b5fbe(0x283)](_0x559672)):[JSON[_0x2b5fbe(0x238)]([..._0x42bf86]),_0x42972f];if(await this['isDRE'](_0x42972f)){if(_0x568644['fLhxw'](_0x568644[_0x2b5fbe(0x25a)],_0x568644[_0x2b5fbe(0x25a)]))return[_0x42bf86['toString'](),_0x42972f];else{const _0x238572=_0x568644[_0x2b5fbe(0x18f)]['split']('|');let _0x3e13ea=0x0;while(!![]){switch(_0x238572[_0x3e13ea++]){case'0':this[_0x2b5fbe(0x242)]=[];continue;case'1':this[_0x2b5fbe(0x296)];continue;case'2':this[_0x2b5fbe(0x1dc)];continue;case'3':this[_0x2b5fbe(0x194)];continue;case'4':this[_0x2b5fbe(0x28b)]();continue;}break;}}}return[JSON[_0x2b5fbe(0x238)](_0x42bf86),typeof _0x42bf86];}}}async[_0x83813e(0x27a)](_0x23b22b,_0x2b00f8){const _0x86502c=_0x83813e,_0x4b986d={'UPxfM':_0x86502c(0x32d),'mKtqS':function(_0x5d1154,_0x24dbcc){return _0x5d1154(_0x24dbcc);},'fMizl':function(_0x566d8f){return _0x566d8f();},'mkCSY':function(_0x239da5,_0x2a9307){return _0x239da5(_0x2a9307);},'IOtGb':function(_0x429daa,_0x262e4b){return _0x429daa+_0x262e4b;},'yggVq':_0x86502c(0x2fc),'ellLR':_0x86502c(0x1f1),'WdqQx':function(_0x582a9e,_0x4e65cf){return _0x582a9e===_0x4e65cf;},'AjVSE':_0x86502c(0x2b5),'zFFwC':function(_0x2f0406,_0x2d8c76){return _0x2f0406===_0x2d8c76;},'KSFxq':_0x86502c(0x332),'JSVSD':function(_0x4c28fd,_0x3b38ba){return _0x4c28fd(_0x3b38ba);},'iKQSc':_0x86502c(0x239),'QREPn':function(_0x46faf3,_0x17fab3){return _0x46faf3!==_0x17fab3;},'Ijzwu':_0x86502c(0x235),'onUwZ':_0x86502c(0x2c0),'hfuZk':function(_0x641e80,_0x3b2795){return _0x641e80===_0x3b2795;},'HHxWc':_0x86502c(0x1d1),'RSQbV':_0x86502c(0x17c),'nRaGW':_0x86502c(0x211),'GTEGJ':_0x86502c(0x1fa),'Ojnzf':'Uint16Array','ZqryJ':function(_0xd5c4f7,_0x5e6bb4){return _0xd5c4f7!==_0x5e6bb4;},'wEPXO':'FXSvs','NiHxj':_0x86502c(0x28c),'zeiKh':_0x86502c(0x1b5),'qqgZE':_0x86502c(0x17e),'Xwbgm':'Float32Array','wmDiR':_0x86502c(0x2b4),'njPwA':_0x86502c(0x311),'PvMJj':function(_0x31ec87,_0x2148d0){return _0x31ec87===_0x2148d0;},'aiknA':_0x86502c(0x22f),'yvzuf':'XvqrH','ethpm':_0x86502c(0x293),'ZGcNs':_0x86502c(0x2e6),'jdiLp':_0x86502c(0x209),'dszKY':function(_0xd1513f,_0x2e8c0d){return _0xd1513f===_0x2e8c0d;},'dFdPC':_0x86502c(0x237),'dVqYp':function(_0x253d4b,_0x24b12b){return _0x253d4b===_0x24b12b;},'JCCCy':'Date','tHkXj':function(_0xf414ef,_0x2cbb4d){return _0xf414ef!==_0x2cbb4d;},'sjKJg':_0x86502c(0x24b),'mllki':_0x86502c(0x1ee),'NFysX':function(_0x11e5f5,_0x48af11){return _0x11e5f5===_0x48af11;},'GXxVa':_0x86502c(0x2e5),'ouufX':function(_0x4c4395,_0x3273ee){return _0x4c4395===_0x3273ee;},'WZTuz':_0x86502c(0x29d),'bYzUQ':function(_0xf9b15b,_0x1ea4ae){return _0xf9b15b===_0x1ea4ae;},'AEhnG':_0x86502c(0x163)};if(_0x4b986d[_0x86502c(0x277)](_0x2b00f8,_0x4b986d[_0x86502c(0x1f7)]))return _0x23b22b;if(_0x4b986d['zFFwC'](_0x2b00f8,_0x4b986d[_0x86502c(0x26b)]))return _0x4b986d[_0x86502c(0x294)](parseFloat,_0x23b22b);if(_0x4b986d['zFFwC'](_0x2b00f8,_0x4b986d[_0x86502c(0x198)]))return _0x4b986d[_0x86502c(0x208)](_0x4b986d[_0x86502c(0x2d7)],_0x4b986d[_0x86502c(0x285)])?_0x4b986d[_0x86502c(0x248)](_0x23b22b,_0x4b986d['HHxWc'])&&_0x4b986d[_0x86502c(0x208)](_0x23b22b,_0x4b986d[_0x86502c(0x15d)]):[_0x3c5882['stringify'](_0x14c802),_0x4b986d[_0x86502c(0x318)]];if(_0x4b986d[_0x86502c(0x2e4)](_0x2b00f8,_0x4b986d['nRaGW'])||_0x4b986d[_0x86502c(0x248)](_0x2b00f8,_0x4b986d[_0x86502c(0x318)]))return JSON[_0x86502c(0x283)](_0x23b22b);if(_0x4b986d[_0x86502c(0x248)](_0x2b00f8,_0x4b986d[_0x86502c(0x2cb)]))return new Uint8Array(JSON[_0x86502c(0x283)](_0x23b22b));if(_0x4b986d[_0x86502c(0x277)](_0x2b00f8,_0x4b986d[_0x86502c(0x229)]))return _0x4b986d['ZqryJ'](_0x4b986d[_0x86502c(0x17d)],_0x4b986d[_0x86502c(0x17d)])?new _0x5e7726(_0x222710['parse'](_0x19b500)):new Uint16Array(JSON[_0x86502c(0x283)](_0x23b22b));if(_0x4b986d[_0x86502c(0x277)](_0x2b00f8,_0x4b986d[_0x86502c(0x1d2)]))return new Uint32Array(JSON[_0x86502c(0x283)](_0x23b22b));if(_0x4b986d[_0x86502c(0x248)](_0x2b00f8,_0x4b986d[_0x86502c(0x23c)]))return new BigInt64Array(JSON[_0x86502c(0x283)](_0x23b22b));if(_0x4b986d[_0x86502c(0x277)](_0x2b00f8,_0x4b986d['qqgZE']))return new BigUint64Array(JSON['parse'](_0x23b22b));if(_0x4b986d[_0x86502c(0x2e4)](_0x2b00f8,_0x4b986d[_0x86502c(0x218)]))return new Float32Array(JSON[_0x86502c(0x283)](_0x23b22b));if(_0x4b986d['hfuZk'](_0x2b00f8,_0x4b986d[_0x86502c(0x2eb)])){if(_0x4b986d[_0x86502c(0x208)](_0x4b986d['njPwA'],_0x4b986d[_0x86502c(0x197)]))ssfnMS['mKtqS'](_0x458943,0x0);else return new Float64Array(JSON[_0x86502c(0x283)](_0x23b22b));}if(_0x4b986d[_0x86502c(0x2a1)](_0x2b00f8,_0x4b986d[_0x86502c(0x1bc)])){if(_0x4b986d['zFFwC'](_0x4b986d[_0x86502c(0x2db)],_0x4b986d[_0x86502c(0x2db)]))return new Map(JSON[_0x86502c(0x283)](_0x23b22b));else{const _0x55a21e=_0x7a2bad[_0x86502c(0x174)](_0x1ea082,arguments);return _0x449b5b=null,_0x55a21e;}}if(_0x4b986d[_0x86502c(0x2e4)](_0x2b00f8,_0x4b986d[_0x86502c(0x1f2)]))return new Set(JSON[_0x86502c(0x283)](_0x23b22b));if(_0x4b986d[_0x86502c(0x2a1)](_0x2b00f8,_0x4b986d[_0x86502c(0x189)]))return new WeakMap(JSON[_0x86502c(0x283)](_0x23b22b));if(_0x4b986d['hfuZk'](_0x2b00f8,_0x4b986d[_0x86502c(0x25f)]))return _0x4b986d['dszKY'](_0x4b986d[_0x86502c(0x2cf)],_0x4b986d['dFdPC'])?new WeakSet(JSON[_0x86502c(0x283)](_0x23b22b)):new _0x5ba867(_0x47bcc0[_0x86502c(0x283)](_0x27da9e));if(_0x4b986d['dVqYp'](_0x2b00f8,_0x4b986d[_0x86502c(0x182)])){if(_0x4b986d[_0x86502c(0x1d5)](_0x4b986d[_0x86502c(0x291)],_0x4b986d['mllki']))return new Date(_0x23b22b);else _0x4b986d[_0x86502c(0x164)](_0x1cb7ed);}if(_0x4b986d['NFysX'](_0x2b00f8,_0x4b986d[_0x86502c(0x1ed)])){if(_0x4b986d[_0x86502c(0x244)](_0x4b986d[_0x86502c(0x2fd)],_0x4b986d[_0x86502c(0x2fd)]))return new RegExp(_0x23b22b);else{let _0x23249d;try{_0x23249d=ssfnMS['mkCSY'](_0x2eda08,ssfnMS['IOtGb'](ssfnMS[_0x86502c(0x30b)](ssfnMS[_0x86502c(0x2d0)],ssfnMS[_0x86502c(0x16b)]),');'))();}catch(_0x204ca7){_0x23249d=_0x1844ed;}return _0x23249d;}}if(_0x4b986d['bYzUQ'](_0x2b00f8,_0x4b986d[_0x86502c(0x15e)]))return new Error(_0x23b22b);}}module[_0x83813e(0x25d)]={'SPD':SPD};function _0x4225ad(_0x2be890){const _0x3b286e=_0x83813e,_0x97b0f3={'JiywW':function(_0x4e7640,_0x1d30fe){return _0x4e7640===_0x1d30fe;},'icyGU':_0x3b286e(0x2b5),'RyjaG':_0x3b286e(0x333),'BBrSx':_0x3b286e(0x250),'XJHoS':function(_0x4dd5b6,_0xe536d9){return _0x4dd5b6!==_0xe536d9;},'kmHjN':function(_0x2fa9c8,_0xa48693){return _0x2fa9c8+_0xa48693;},'erejV':function(_0x55f154,_0x4a88af){return _0x55f154/_0x4a88af;},'vJKJT':_0x3b286e(0x232),'BYKnw':function(_0xe1e270,_0x328b85){return _0xe1e270%_0x328b85;},'tjndJ':_0x3b286e(0x295),'SHkgI':_0x3b286e(0x19e),'bkIYA':_0x3b286e(0x2c1),'KBpFO':_0x3b286e(0x1b7),'mFuZE':_0x3b286e(0x326),'DQmtL':function(_0x10fcfc,_0x17aabc){return _0x10fcfc+_0x17aabc;},'kHisG':_0x3b286e(0x1bb),'urepa':function(_0x5d4aee,_0x296a87){return _0x5d4aee(_0x296a87);},'qUsfV':function(_0x570e8e,_0x364633){return _0x570e8e(_0x364633);}};function _0x1de223(_0x4725af){const _0x245e68=_0x3b286e;if(_0x97b0f3[_0x245e68(0x2b6)](typeof _0x4725af,_0x97b0f3[_0x245e68(0x195)]))return function(_0x13e1c6){}[_0x245e68(0x26e)](_0x97b0f3[_0x245e68(0x20e)])['apply'](_0x97b0f3[_0x245e68(0x233)]);else{if(_0x97b0f3[_0x245e68(0x1a6)](_0x97b0f3[_0x245e68(0x1ba)]('',_0x97b0f3['erejV'](_0x4725af,_0x4725af))[_0x97b0f3[_0x245e68(0x1de)]],0x1)||_0x97b0f3[_0x245e68(0x2b6)](_0x97b0f3[_0x245e68(0x1c5)](_0x4725af,0x14),0x0)){if(_0x97b0f3[_0x245e68(0x1a6)](_0x97b0f3[_0x245e68(0x180)],_0x97b0f3[_0x245e68(0x215)]))(function(){return!![];}['constructor'](_0x97b0f3[_0x245e68(0x1ba)](_0x97b0f3[_0x245e68(0x2ac)],_0x97b0f3[_0x245e68(0x32f)]))[_0x245e68(0x2ec)](_0x97b0f3[_0x245e68(0x1a1)]));else return[_0x350988[_0x245e68(0x19c)](),_0x205d46];}else(function(){return![];}['constructor'](_0x97b0f3['DQmtL'](_0x97b0f3[_0x245e68(0x2ac)],_0x97b0f3[_0x245e68(0x32f)]))[_0x245e68(0x174)](_0x97b0f3[_0x245e68(0x2f4)]));}_0x97b0f3[_0x245e68(0x21c)](_0x1de223,++_0x4725af);}try{if(_0x2be890)return _0x1de223;else _0x97b0f3[_0x3b286e(0x299)](_0x1de223,0x0);}catch(_0x4a2d4d){}}function _0x23f6(){const _0x39cf6c=['kmHjN','stateObject','aiknA','crypto_kx_SEEDBYTES','NqcFk','JiHNN','bdFMY','publicKey','LNwcy','mSLnH','migrateFromFile','BYKnw','from','SbkWJ','UYaiJ','iXtop','fAwwn','AjjIk','Xzpqr','sSGbt','ZKESM','aspmd','hash','true','NiHxj','ijnTw','hcZDV','tHkXj','OsJZx','DymRF','fHvHc','unoio','jRjHQ','table','userKey','JhcqH','vJKJT','mkmht','eQgaa','sDjZO','mrQFg','XirUq','map','kxarx','Uint16Array','LQNMc','MZuda','AxDgZ','bJtkM','tHoCF','__proto__','GXxVa','SdWkA','gqNJM','nOdol','{}.constructor(\x22return\x20this\x22)(\x20)','ethpm','addData','HTPWP','pKfTS','yEQit','AjVSE','dataName','SobKO','Uint8Array','OGoBU','UooGT','FbvrF','uULwx','slice','createHash','maMtS','function\x20*\x5c(\x20*\x5c)','bfPXG','setPassKey','170AMOtpY','2158962RgtFAy','zGlml','QREPn','WeakSet','Okuhh','qEkJI','bhdrp','iESlI','RyjaG','skFYm','zdkaH','object','ttuEd','kOmfK','RebaN','SHkgI','BrbVJ','LiFvk','Xwbgm','NHKhm','DhxiL','JZowV','urepa','YCzuK','ethRl','YHUur','wxawR','ijmDv','odsaV','prototype','isDRE','aVMhg','sOJhn','KkpzE','rOXNg','Ojnzf','tvqzf','ready','gzTBF','wPPem','LkNTi','Map','YfQwy','8KJLNul','length','BBrSx','hWnRp','lJcyu','bmFPF','anzSH','stringify','boolean','OFhMr','warn','zeiKh','tIFEG','nPGOY','hxbOs','xBnVR','yiVLU','data','jAvFD','ouufX','BTXOj','Yrsjz','ftqmB','hfuZk','ZLIXM','BprmL','PprKD','kyzSE','ZOWGD','TLHZO','NXrMX','counter','lRQbY','Jcnqn','deflateSync','crypto_aead_xchacha20poly1305_ietf_decrypt','mZbKy','Date','log','imzCj','migrateFromString','jqEXM','aLJDg','KdorF','exports','Invalid\x20SPD\x20path\x20or\x20passcode.','jdiLp','VpLpU','qgOkN','tUaLY','OAENj','sha3-512','4820296WLEMoM','mtmRZ','vtqSb','QEIFJ','EVFuO','ZRFpy','KSFxq','gqTKA','nonce','constructor','5XWMvve','hex','aLiKG','tUBUb','sYHzG','fLeOH','UrvRq','derivePBK','WdqQx','bVBTb','AMmry','CSTI','cWMfd','JfRsQ','getRandomValues','kVvRx','nfIYH','zpMQa','GDPqh','CgcXA','parse','jEHFn','onUwZ','zqDEM','isNumArr','oBfhB','utf8','HVSgS','init','Uint32Array','iLmrW','KZrts','loadFromString','lydPN','sjKJg','cTARw','Set','JSVSD','SsMUn','keyPair','TxKNb','GoecS','qUsfV','HKcDU','input','DvCPS','PAQew','iemXj','LSDQo','tiKNc','PvMJj','FpoOA','kgKZc','sHQSw','bind','KIhwh','kvIVG','test','uzogS','VEMnd','26iNVuPn','bkIYA','EGVAW','unvvJ','crypto_aead_xchacha20poly1305_ietf_encrypt','KfUAY','lgQUZ','Data\x20integrity\x20check\x20failed\x20for\x20','bgymh','Float64Array','string','JiywW','ObzhQ','hnMOz','zjRWP','urpLs','eWyHF','saveData','writeFileSync','xPwdI','XAYFM','fYeJT','debu','ltRYV','convertPasscodeToPQCKeySalted','sjEjA','mKtWF','IsrFJ','BzbZR','366996zISCmO','lhwxp','isSWM','GTEGJ','dtalo','HdFlQ','forEach','dFdPC','yggVq','7722927rrKzhm','SgaCH','wzlBQ','hArjq','argon2id','\x5c+\x5c+\x20*(?:[a-zA-Z_$][0-9a-zA-Z_$]*)','Ijzwu','loadFromFile','crypto_kx_keypair','PKsqm','yvzuf','jzwru','RQOIF','cAOFQ','mJzeA','nrxoJ','PagVp','HbKUe','nhPEy','zFFwC','RegExp','WeakMap','DOdZq','gJimj','LprjV','Invalid\x20output\x20path\x20or\x20salt.','wmDiR','call','tfXcz','cQlKk','error','digest','OFcsc','MuhZH','wYehM','kHisG','LnwOB','iYWUi','console','kxQIS','BheIY','IMoTZ','libsodium-wrappers','return\x20(function()\x20','WZTuz','ycOom','VAJml','cRmIO','NiIFi','crypto_box_NONCEBYTES','eemwn','dataType','ZgNuE','qmiZw','qORzz','Basrb','YyEeQ','crypto','IOtGb','gHHUA','BEvTb','HwbJq','ArgtR','Invalid\x20passcode\x20or\x20salt.','fdAqD','KPdNm','fMwBC','UirFI','QvblC','0|1|2|3|4','kFqCX','UPxfM','hiVXV','YzzXm','GsORH','tmDEa','MTFHv','AMuSW','byCSO','push','ZlmQG','svdpE','fQGlV','saveToFile','NRzHE','action','vhMHe','vAuDk','IqvlR','ENPxO','joxIm','split','Array','trim','KBpFO','5712056NMwRwW','oTwoZ','number','while\x20(true)\x20{}','NgEzL','RmmJj','pORMP','MXTrL','mmhFP','pqtof','IMCsR','HYEaV','RYpwk','RSQbV','AEhnG','ViZYE','sLZNL','Ydyes','bDtEc','Error','fMizl','KRobD','MCMhq','baMVt','UpaeJ','vfWqD','drYfL','ellLR','VpDGg','update','uXegz','fbHUM','BPFuS','bsTSC','KDCyh','zlib','apply','2|0|1|3|4','hAvpa','SBNDT','Ocoob','pZDkY','crypto_secretbox_open_easy','jIiYr','false','wEPXO','BigUint64Array','ljLCL','tjndJ','crypto_kx_seed_keypair','JCCCy','extractData_OLD','convertPasscodeToPQCKey','zHFaI','sDEWJ','IGokt','zqJZZ','ZGcNs','catch','inflateSync','VjnTE','JQAov','HiAQj','AthSE','znrLg','EAbte','LggJc','hmlka','salt','icyGU','QkeYC','njPwA','iKQSc','csIuD','sbhWJ','DHVxB','toString','acUzx','MvKrY','wcYwT','yWLez','mFuZE','GDeKr','KOCBD','CFydb','avtiI','XJHoS','kyJnR','TDT','uKmdl','BOzfx','Hadys','Float32Array','cfTFq','2179925Zrelpj','plhKS','LQiZq','yBoEN','zAFqt','Invalid\x20passcode.','QttHm','BigInt64Array','IARku','gger','85154CQkssE','gtcJu'];_0x23f6=function(){return _0x39cf6c;};return _0x23f6();}
|
package/obfuscate.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
const javascriptObfuscator = require('javascript-obfuscator');
|
|
4
|
+
|
|
5
|
+
const inputDir = path.join(__dirname, 'src'); // Your source code directory
|
|
6
|
+
const outputDir = path.join(__dirname, 'dist'); // The directory to output obfuscated code
|
|
7
|
+
|
|
8
|
+
// Create output directory if it doesn't exist
|
|
9
|
+
if (!fs.existsSync(outputDir)){
|
|
10
|
+
fs.mkdirSync(outputDir);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// Read the source code from 'src' directory
|
|
14
|
+
fs.readdirSync(inputDir).forEach(file => {
|
|
15
|
+
const filePath = path.join(inputDir, file);
|
|
16
|
+
const outputFilePath = path.join(outputDir, file);
|
|
17
|
+
|
|
18
|
+
// Read the file content
|
|
19
|
+
const fileContent = fs.readFileSync(filePath, 'utf8');
|
|
20
|
+
|
|
21
|
+
// Obfuscate the content of the file
|
|
22
|
+
const obfuscatedCode = javascriptObfuscator.obfuscate(fileContent, {
|
|
23
|
+
compact: true,
|
|
24
|
+
controlFlowFlattening: true, // Flatten control flow to make the code harder to understand
|
|
25
|
+
controlFlowFlatteningThreshold: 1,
|
|
26
|
+
deadCodeInjection: true, // Inject dead code to further obscure logic
|
|
27
|
+
debugProtection: true, // Prevent some debugging features
|
|
28
|
+
disableConsoleOutput: true // Remove console logs
|
|
29
|
+
}).getObfuscatedCode();
|
|
30
|
+
|
|
31
|
+
// Write the obfuscated code to the 'dist' directory
|
|
32
|
+
fs.writeFileSync(outputFilePath, obfuscatedCode, 'utf8');
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
console.log('Obfuscation complete.');
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "spd-lib",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "SPD or Secure Packaged Data is a compress PQC protected file format to store sensitive data localy",
|
|
5
|
-
"main": "index.js",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
8
|
+
"prepublishOnly": "node obfuscate.js"
|
|
8
9
|
},
|
|
9
10
|
"keywords": [
|
|
10
11
|
"security",
|
|
@@ -21,6 +22,10 @@
|
|
|
21
22
|
"author": "ALS-OPSS",
|
|
22
23
|
"license": "ISC",
|
|
23
24
|
"dependencies": {
|
|
24
|
-
"
|
|
25
|
+
"argon2": "^0.41.1",
|
|
26
|
+
"libsodium-wrappers": "^0.7.15"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"javascript-obfuscator": "^4.1.1"
|
|
25
30
|
}
|
|
26
31
|
}
|
|
@@ -2,6 +2,7 @@ const fs = require('fs')
|
|
|
2
2
|
const zlib = require('zlib');
|
|
3
3
|
const sodium = require('libsodium-wrappers');
|
|
4
4
|
const crypto = require('crypto');
|
|
5
|
+
const argon2 = require('argon2');
|
|
5
6
|
|
|
6
7
|
class SPD {
|
|
7
8
|
|
|
@@ -15,7 +16,7 @@ class SPD {
|
|
|
15
16
|
}
|
|
16
17
|
async init() {
|
|
17
18
|
await sodium.ready;
|
|
18
|
-
this.keyPair = sodium.
|
|
19
|
+
this.keyPair = sodium.crypto_kx_keypair()
|
|
19
20
|
}
|
|
20
21
|
async setPassKey(passcode){
|
|
21
22
|
await sodium.ready;
|
|
@@ -26,16 +27,99 @@ this.userKey = userKey;
|
|
|
26
27
|
this.salt = salt;
|
|
27
28
|
}
|
|
28
29
|
|
|
30
|
+
async migrateFromFile(spdPath,passcode)
|
|
31
|
+
{
|
|
32
|
+
|
|
33
|
+
const spd = await SPD.loadFromFile(spdPath,passcode)
|
|
34
|
+
const extractData_OLD = async ()=>{
|
|
35
|
+
return new Promise(async(res,rej)=>{
|
|
36
|
+
try{
|
|
37
|
+
await sodium.ready;
|
|
38
|
+
let extractedFiles = {};
|
|
39
|
+
this.data.forEach(async dat => {
|
|
40
|
+
try{
|
|
41
|
+
const decryptedData = sodium.crypto_secretbox_open_easy(dat.data, dat.nonce, this.userKey);
|
|
42
|
+
const decompressedData = zlib.inflateSync(decryptedData,{level:9});
|
|
43
|
+
const dt = decompressedData.toString('utf8');
|
|
44
|
+
extractedFiles[dat.dataName] = await this.CSTI(dt, dat.dataType);
|
|
45
|
+
}catch{
|
|
46
|
+
rej()
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
res(extractedFiles);
|
|
50
|
+
}catch{
|
|
51
|
+
rej()
|
|
52
|
+
}
|
|
53
|
+
})
|
|
54
|
+
}
|
|
55
|
+
spd.extractData_OLD = extractData_OLD
|
|
56
|
+
const _data = await spd.extractData_OLD()
|
|
57
|
+
const n_spd = new SPD()
|
|
58
|
+
await n_spd.setPassKey(passcode)
|
|
59
|
+
for(let key in _data)
|
|
60
|
+
{
|
|
61
|
+
await n_spd.addData(key,_data[key])
|
|
62
|
+
}
|
|
63
|
+
n_spd.saveToFile(spdPath)
|
|
64
|
+
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
async migrateFromString(spdData,passcode)
|
|
68
|
+
{
|
|
69
|
+
const spd = await SPD.loadFromString(spdData,passcode)
|
|
70
|
+
const extractData_OLD = async ()=>{
|
|
71
|
+
return new Promise(async(res,rej)=>{
|
|
72
|
+
try{
|
|
73
|
+
await sodium.ready;
|
|
74
|
+
let extractedFiles = {};
|
|
75
|
+
this.data.forEach(async dat => {
|
|
76
|
+
try{
|
|
77
|
+
const decryptedData = sodium.crypto_secretbox_open_easy(dat.data, dat.nonce, this.userKey);
|
|
78
|
+
const decompressedData = zlib.inflateSync(decryptedData,{level:9});
|
|
79
|
+
const dt = decompressedData.toString('utf8');
|
|
80
|
+
extractedFiles[dat.dataName] = await this.CSTI(dt, dat.dataType);
|
|
81
|
+
}catch{
|
|
82
|
+
rej()
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
res(extractedFiles);
|
|
86
|
+
}catch{
|
|
87
|
+
rej()
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
}
|
|
91
|
+
spd.extractData_OLD = extractData_OLD
|
|
92
|
+
const _data = await spd.extractData_OLD()
|
|
93
|
+
const n_spd = new SPD()
|
|
94
|
+
await n_spd.setPassKey(passcode)
|
|
95
|
+
for(let key in _data)
|
|
96
|
+
{
|
|
97
|
+
await n_spd.addData(key,_data[key])
|
|
98
|
+
}
|
|
99
|
+
return n_spd.saveData()
|
|
100
|
+
|
|
101
|
+
}
|
|
102
|
+
|
|
29
103
|
async addData(name, data) {
|
|
30
104
|
|
|
31
105
|
|
|
32
106
|
const dmap = await this.CITS(data)
|
|
33
107
|
await sodium.ready;
|
|
34
108
|
const dat = Buffer.from(dmap[0]);
|
|
35
|
-
const compressedData = zlib.deflateSync(dat
|
|
109
|
+
const compressedData = zlib.deflateSync(dat,{
|
|
110
|
+
level:9
|
|
111
|
+
});
|
|
36
112
|
const nonce = sodium.randombytes_buf(sodium.crypto_box_NONCEBYTES);
|
|
37
|
-
const encryptedData = sodium.
|
|
38
|
-
|
|
113
|
+
const encryptedData = sodium.crypto_aead_xchacha20poly1305_ietf_encrypt(
|
|
114
|
+
compressedData,
|
|
115
|
+
null,
|
|
116
|
+
null,
|
|
117
|
+
nonce,
|
|
118
|
+
this.userKey
|
|
119
|
+
)
|
|
120
|
+
//sodium.crypto_secretbox_easy(compressedData, nonce, this.userKey);
|
|
121
|
+
const hash = crypto.createHash('sha3-512').update(encryptedData).digest('hex');
|
|
122
|
+
|
|
39
123
|
this.data.push({ dataName: name, nonce: Array.from(nonce), data: Array.from(encryptedData), hash, dataType: dmap[1] });
|
|
40
124
|
}
|
|
41
125
|
|
|
@@ -45,7 +129,9 @@ this.salt = salt;
|
|
|
45
129
|
}
|
|
46
130
|
|
|
47
131
|
const spdData = JSON.stringify({ data: this.data, salt: Array.from(this.salt) });
|
|
48
|
-
const compressedSpdData = zlib.deflateSync(spdData
|
|
132
|
+
const compressedSpdData = zlib.deflateSync(spdData,{
|
|
133
|
+
level:9
|
|
134
|
+
});
|
|
49
135
|
fs.writeFileSync(outputPath, compressedSpdData, { mode: 0o600 });
|
|
50
136
|
}
|
|
51
137
|
|
|
@@ -58,10 +144,12 @@ this.salt = salt;
|
|
|
58
144
|
}
|
|
59
145
|
|
|
60
146
|
await sodium.ready;
|
|
147
|
+
|
|
61
148
|
const compressedSpdData = fs.readFileSync(spdPath);
|
|
62
|
-
const spdData = zlib.inflateSync(compressedSpdData).toString('utf8');
|
|
63
|
-
const { data, salt } = JSON.parse(spdData);
|
|
149
|
+
const spdData = zlib.inflateSync(compressedSpdData,{level:9}).toString('utf8');
|
|
64
150
|
|
|
151
|
+
const { data, salt } = JSON.parse(spdData);
|
|
152
|
+
|
|
65
153
|
const { pqcKey } = await new SPD().convertPasscodeToPQCKeySalted(passcode, new Uint8Array(salt));
|
|
66
154
|
const pbk = pqcKey.publicKey;
|
|
67
155
|
const spd = new SPD();
|
|
@@ -77,7 +165,9 @@ this.salt = salt;
|
|
|
77
165
|
dataType: dat.dataType
|
|
78
166
|
}));
|
|
79
167
|
spd.data.forEach(dat => {
|
|
80
|
-
const calculatedHash = crypto.createHash('sha256').update(Buffer.from(dat.data)).digest('hex');
|
|
168
|
+
//const calculatedHash = crypto.createHash('sha256').update(Buffer.from(dat.data)).digest('hex');
|
|
169
|
+
const calculatedHash = crypto.createHash('sha3-512').update(Buffer.from(dat.data)).digest('hex');
|
|
170
|
+
|
|
81
171
|
if (calculatedHash !== dat.hash) {
|
|
82
172
|
rej(new Error(`Data integrity check failed for ${dat.dataName}`));
|
|
83
173
|
}
|
|
@@ -96,8 +186,9 @@ this.salt = salt;
|
|
|
96
186
|
let extractedFiles = {};
|
|
97
187
|
this.data.forEach(async dat => {
|
|
98
188
|
try{
|
|
99
|
-
const decryptedData = sodium.
|
|
100
|
-
const decompressedData = zlib.inflateSync(decryptedData);
|
|
189
|
+
const decryptedData = sodium.crypto_aead_xchacha20poly1305_ietf_decrypt(null,dat.data,null, dat.nonce, this.userKey);
|
|
190
|
+
const decompressedData = zlib.inflateSync(decryptedData,{level:9});
|
|
191
|
+
|
|
101
192
|
const dt = decompressedData.toString('utf8');
|
|
102
193
|
extractedFiles[dat.dataName] = await this.CSTI(dt, dat.dataType);
|
|
103
194
|
}catch{
|
|
@@ -118,20 +209,21 @@ this.salt = salt;
|
|
|
118
209
|
throw new Error('Invalid passcode or salt.');
|
|
119
210
|
}
|
|
120
211
|
|
|
121
|
-
return new Promise((resolve, reject) => {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
})
|
|
212
|
+
return new Promise(async(resolve, reject) => {
|
|
213
|
+
argon2.hash(passcode, { salt:Buffer.from(salt), type: argon2.argon2id }).then((data)=>{
|
|
214
|
+
|
|
215
|
+
resolve({ pbk: data, salt: salt });
|
|
216
|
+
}).catch((err)=>{
|
|
217
|
+
console.log(err)
|
|
218
|
+
reject(err);
|
|
219
|
+
})
|
|
220
|
+
|
|
129
221
|
});
|
|
130
222
|
}
|
|
131
223
|
|
|
132
224
|
saveData() {
|
|
133
225
|
const spdData = JSON.stringify({ data: this.data, salt: Array.from(this.salt) });
|
|
134
|
-
const compressedSpdData = zlib.deflateSync(spdData);
|
|
226
|
+
const compressedSpdData = zlib.deflateSync(spdData,{level:9});
|
|
135
227
|
return compressedSpdData;
|
|
136
228
|
}
|
|
137
229
|
|
|
@@ -144,7 +236,7 @@ this.salt = salt;
|
|
|
144
236
|
|
|
145
237
|
await sodium.ready;
|
|
146
238
|
const spdDataBuffer = Buffer.from(spdData, 'base64');
|
|
147
|
-
const spdData2 = zlib.inflateSync(spdDataBuffer).toString('utf8');
|
|
239
|
+
const spdData2 = zlib.inflateSync(spdDataBuffer,{level:9}).toString('utf8');
|
|
148
240
|
const { data, salt } = JSON.parse(spdData2);
|
|
149
241
|
const { pqcKey } = await new SPD().convertPasscodeToPQCKeySalted(passcode, new Uint8Array(salt));
|
|
150
242
|
const pbk = pqcKey.publicKey;
|
|
@@ -161,7 +253,7 @@ this.salt = salt;
|
|
|
161
253
|
dataType: dat.dataType
|
|
162
254
|
}));
|
|
163
255
|
spd.data.forEach(dat => {
|
|
164
|
-
const calculatedHash = crypto.createHash('
|
|
256
|
+
const calculatedHash = crypto.createHash('sha3-512').update(Buffer.from(dat.data)).digest('hex');
|
|
165
257
|
if (calculatedHash !== dat.hash) {
|
|
166
258
|
rej(new Error(`Data integrity check failed for ${dat.dataName}`));
|
|
167
259
|
}
|
|
@@ -179,8 +271,12 @@ this.salt = salt;
|
|
|
179
271
|
}
|
|
180
272
|
|
|
181
273
|
const { pbk } = await SPD.derivePBK(passcode, salt);
|
|
274
|
+
|
|
182
275
|
await sodium.ready;
|
|
276
|
+
|
|
183
277
|
const keyPair = sodium.crypto_kx_seed_keypair(pbk.slice(0, sodium.crypto_kx_SEEDBYTES));
|
|
278
|
+
|
|
279
|
+
|
|
184
280
|
return { pqcKey: { publicKey: keyPair.publicKey }, salt };
|
|
185
281
|
}
|
|
186
282
|
|
|
@@ -190,8 +286,10 @@ this.salt = salt;
|
|
|
190
286
|
}
|
|
191
287
|
|
|
192
288
|
const { pbk, salt } = await SPD.derivePBK(passcode, crypto.getRandomValues(new Uint8Array(16)));
|
|
289
|
+
|
|
193
290
|
await sodium.ready;
|
|
194
291
|
const keyPair = sodium.crypto_kx_seed_keypair(pbk.slice(0, sodium.crypto_kx_SEEDBYTES));
|
|
292
|
+
|
|
195
293
|
return { pqcKey: { publicKey: keyPair.publicKey }, salt };
|
|
196
294
|
}
|
|
197
295
|
async TDT(data) {
|
package/test.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const {SPD} = require('./index.js');
|
|
2
|
+
function data ()
|
|
3
|
+
{
|
|
4
|
+
|
|
5
|
+
return "space"
|
|
6
|
+
}
|
|
7
|
+
(async()=>{
|
|
8
|
+
const spd = new SPD()
|
|
9
|
+
await spd.setPassKey("BKJAnjaksd8asjdlasd0a9sjd")
|
|
10
|
+
await spd.addData("_core",data())
|
|
11
|
+
const a = spd.saveData()
|
|
12
|
+
const s = await SPD.loadFromString(Buffer.from(a).toString('base64'),"BKJAnjaksd8asjdlasd0a9sjd")
|
|
13
|
+
const d = await s.extractData()
|
|
14
|
+
console.log(d)
|
|
15
|
+
})()
|