UNPKG

superchats

Version:

SuperChats is a premium library with unique features that control Whatsapp functions. With Superchats you can build service bots, multiservice chats or any system that uses whatsapp

1 lines 22.1 kB
'use strict';const a51_0x5689ca=a51_0x2aa6;(function(_0x11c335,_0x21350d){const _0x30e6f6=a51_0x2aa6,_0x52afcb=_0x11c335();while(!![]){try{const _0x57cc1f=parseInt(_0x30e6f6(0xb9))/0x1*(-parseInt(_0x30e6f6(0xe5))/0x2)+-parseInt(_0x30e6f6(0x13c))/0x3+parseInt(_0x30e6f6(0x104))/0x4+-parseInt(_0x30e6f6(0xd6))/0x5*(-parseInt(_0x30e6f6(0x109))/0x6)+parseInt(_0x30e6f6(0x114))/0x7+-parseInt(_0x30e6f6(0xf0))/0x8+parseInt(_0x30e6f6(0x11a))/0x9*(parseInt(_0x30e6f6(0x10a))/0xa);if(_0x57cc1f===_0x21350d)break;else _0x52afcb['push'](_0x52afcb['shift']());}catch(_0x3f4f58){_0x52afcb['push'](_0x52afcb['shift']());}}}(a51_0x7f65,0x4f5d0));var __createBinding=this&&this[a51_0x5689ca(0x125)]||(Object[a51_0x5689ca(0xcf)]?function(_0x3cdbee,_0x13d3e6,_0x304567,_0x1c310e){const _0x1f57bb=a51_0x5689ca;if(_0x1c310e===undefined)_0x1c310e=_0x304567;var _0x1b1608=Object[_0x1f57bb(0xdf)](_0x13d3e6,_0x304567);(!_0x1b1608||(_0x1f57bb(0xd3)in _0x1b1608?!_0x13d3e6[_0x1f57bb(0x115)]:_0x1b1608[_0x1f57bb(0x112)]||_0x1b1608[_0x1f57bb(0x10e)]))&&(_0x1b1608={'enumerable':!![],'get':function(){return _0x13d3e6[_0x304567];}}),Object[_0x1f57bb(0xe4)](_0x3cdbee,_0x1c310e,_0x1b1608);}:function(_0x5f3626,_0x5602a4,_0x205ad2,_0x281975){if(_0x281975===undefined)_0x281975=_0x205ad2;_0x5f3626[_0x281975]=_0x5602a4[_0x205ad2];}),__setModuleDefault=this&&this[a51_0x5689ca(0x131)]||(Object['create']?function(_0x386d8a,_0x2ec221){const _0x37e4a4=a51_0x5689ca;Object[_0x37e4a4(0xe4)](_0x386d8a,_0x37e4a4(0x117),{'enumerable':!![],'value':_0x2ec221});}:function(_0x29f9a3,_0x25c332){_0x29f9a3['default']=_0x25c332;}),__importStar=this&&this[a51_0x5689ca(0x13a)]||function(_0xe0b5e8){const _0x3cf329=a51_0x5689ca;if(_0xe0b5e8&&_0xe0b5e8['__esModule'])return _0xe0b5e8;var _0x1e7ae9={};if(_0xe0b5e8!=null){for(var _0x54f7cc in _0xe0b5e8)if(_0x54f7cc!=='default'&&Object[_0x3cf329(0xb6)][_0x3cf329(0x12c)][_0x3cf329(0x129)](_0xe0b5e8,_0x54f7cc))__createBinding(_0x1e7ae9,_0xe0b5e8,_0x54f7cc);}return __setModuleDefault(_0x1e7ae9,_0xe0b5e8),_0x1e7ae9;};Object['defineProperty'](exports,a51_0x5689ca(0x115),{'value':!![]}),exports[a51_0x5689ca(0x111)]=void 0x0;const types_1=require(a51_0x5689ca(0xc1)),session_types_1=require('./session-types'),signal_protocol_address_1=require(a51_0x5689ca(0x113)),libsignal_protocol_protobuf_ts_1=require('@privacyresearch/libsignal-protocol-protobuf-ts'),base64=__importStar(require(a51_0x5689ca(0x12d))),util=__importStar(require(a51_0x5689ca(0x101))),Internal=__importStar(require('./internal')),session_record_1=require(a51_0x5689ca(0xef)),session_lock_1=require(a51_0x5689ca(0xfe)),session_builder_1=require(a51_0x5689ca(0x12e)),helpers_1=require('./helpers');class SessionCipher{constructor(_0x44ed64,_0x3be0ca){const _0x28fe83=a51_0x5689ca;this['encryptJob']=async _0x5011b4=>{const _0x37a97e=a51_0x2aa6;if(!(_0x5011b4 instanceof ArrayBuffer))throw new Error('Expected\x20buffer\x20to\x20be\x20an\x20ArrayBuffer');const _0x47ae8e=this[_0x37a97e(0xd8)]['toString'](),_0x298186=libsignal_protocol_protobuf_ts_1[_0x37a97e(0xf6)][_0x37a97e(0x119)]({}),[_0x87719b,_0x507897,_0x3c1666]=await this[_0x37a97e(0xfa)](_0x47ae8e);if(!_0x3c1666)throw new Error(_0x37a97e(0x10b)+_0x47ae8e);if(!_0x87719b)throw new Error('cannot\x20encrypt\x20without\x20identity\x20key');const {session:_0x307a95,chain:_0x1832bf}=await this['prepareChain'](_0x47ae8e,_0x3c1666,_0x298186),_0x62e51f=await Internal[_0x37a97e(0xd0)](_0x1832bf['messageKeys'][_0x1832bf[_0x37a97e(0xf5)]['counter']],new ArrayBuffer(0x20),_0x37a97e(0xd1));delete _0x1832bf['messageKeys'][_0x1832bf[_0x37a97e(0xf5)][_0x37a97e(0xb8)]],_0x298186[_0x37a97e(0xb8)]=_0x1832bf['chainKey']['counter'],_0x298186[_0x37a97e(0xcc)]=_0x307a95['currentRatchet']['previousCounter'];const _0x4ace44=await Internal[_0x37a97e(0xbd)][_0x37a97e(0x120)](_0x62e51f[0x0],_0x5011b4,_0x62e51f[0x2][_0x37a97e(0x126)](0x0,0x10));_0x298186[_0x37a97e(0x11c)]=new Uint8Array(_0x4ace44);const _0x521e14=libsignal_protocol_protobuf_ts_1[_0x37a97e(0xf6)][_0x37a97e(0xda)](_0x298186)[_0x37a97e(0x106)](),_0x300d65=new Uint8Array(_0x521e14[_0x37a97e(0xd5)]+0x21*0x2+0x1);_0x300d65[_0x37a97e(0x100)](new Uint8Array(_0x87719b[_0x37a97e(0x11d)])),_0x300d65['set'](new Uint8Array(_0x307a95['indexInfo'][_0x37a97e(0x127)]),0x21),_0x300d65[0x21*0x2]=0x3<<0x4|0x3,_0x300d65[_0x37a97e(0x100)](new Uint8Array(_0x521e14),0x21*0x2+0x1);const _0x588dbe=await Internal[_0x37a97e(0xbd)][_0x37a97e(0xc4)](_0x62e51f[0x1],_0x300d65[_0x37a97e(0xd7)]),_0x31615f=new Uint8Array(_0x521e14[_0x37a97e(0xd5)]+0x9);_0x31615f[0x0]=0x3<<0x4|0x3,_0x31615f['set'](new Uint8Array(_0x521e14),0x1),_0x31615f['set'](new Uint8Array(_0x588dbe,0x0,0x8),_0x521e14[_0x37a97e(0xd5)]+0x1);const _0x26658e=await this[_0x37a97e(0xf8)]['isTrustedIdentity'](this[_0x37a97e(0xd8)][_0x37a97e(0x144)](),_0x307a95[_0x37a97e(0xee)][_0x37a97e(0x127)],types_1[_0x37a97e(0xf9)]['SENDING']);if(!_0x26658e)throw new Error(_0x37a97e(0x13e));this[_0x37a97e(0xf8)][_0x37a97e(0x143)](this[_0x37a97e(0xd8)][_0x37a97e(0xc5)](),_0x307a95['indexInfo'][_0x37a97e(0x127)]),_0x3c1666['updateSessionState'](_0x307a95),await this[_0x37a97e(0xf8)]['storeSession'](_0x47ae8e,_0x3c1666[_0x37a97e(0xf2)]());if(_0x307a95[_0x37a97e(0x137)]!==undefined){const _0xd77bcd=libsignal_protocol_protobuf_ts_1[_0x37a97e(0x135)]['fromJSON']({});_0xd77bcd[_0x37a97e(0xd9)]=new Uint8Array(_0x87719b[_0x37a97e(0x11d)]),_0xd77bcd[_0x37a97e(0xfb)]=_0x507897,_0xd77bcd[_0x37a97e(0xdb)]=new Uint8Array(_0x307a95['pendingPreKey'][_0x37a97e(0xdb)]);_0x307a95['pendingPreKey'][_0x37a97e(0x141)]&&(_0xd77bcd[_0x37a97e(0x141)]=_0x307a95['pendingPreKey'][_0x37a97e(0x141)]);_0xd77bcd[_0x37a97e(0x130)]=_0x307a95[_0x37a97e(0x137)][_0x37a97e(0x13b)],_0xd77bcd['message']=_0x31615f;const _0x3973d1=libsignal_protocol_protobuf_ts_1[_0x37a97e(0x135)][_0x37a97e(0xda)](_0xd77bcd)[_0x37a97e(0x106)](),_0x2f25ef=String[_0x37a97e(0x145)](0x3<<0x4|0x3)+util[_0x37a97e(0x13f)](_0x3973d1);return{'type':0x3,'body':_0x2f25ef,'registrationId':_0x307a95[_0x37a97e(0xfb)]};}else return{'type':0x1,'body':util[_0x37a97e(0x13f)](_0x31615f),'registrationId':_0x307a95[_0x37a97e(0xfb)]};},this[_0x28fe83(0xfa)]=_0x17ad35=>{const _0x53b502=_0x28fe83;return Promise[_0x53b502(0xc6)]([this[_0x53b502(0xf8)][_0x53b502(0xdd)](),this[_0x53b502(0xf8)][_0x53b502(0x139)](),this['getRecord'](_0x17ad35)]);},this['prepareChain']=async(_0x34d6f4,_0x40cd31,_0x32e0cf)=>{const _0x4374c8=_0x28fe83,_0x4d437d=_0x40cd31[_0x4374c8(0xf1)]();if(!_0x4d437d)throw new Error(_0x4374c8(0x124)+_0x34d6f4);if(!_0x4d437d[_0x4374c8(0xde)][_0x4374c8(0xea)])throw new Error(_0x4374c8(0xf7));_0x32e0cf[_0x4374c8(0xf3)]=new Uint8Array(_0x4d437d['currentRatchet'][_0x4374c8(0xea)][_0x4374c8(0x11d)]);const _0x4e2ede=base64[_0x4374c8(0x122)](_0x32e0cf[_0x4374c8(0xf3)]),_0xf63946=_0x4d437d[_0x4374c8(0x10d)][_0x4e2ede];if((_0xf63946===null||_0xf63946===void 0x0?void 0x0:_0xf63946['chainType'])===session_types_1[_0x4374c8(0x11b)][_0x4374c8(0x10c)])throw new Error(_0x4374c8(0x107));return await this[_0x4374c8(0x121)](_0xf63946,_0xf63946[_0x4374c8(0xf5)][_0x4374c8(0xb8)]+0x1),{'session':_0x4d437d,'chain':_0xf63946};},this[_0x28fe83(0x121)]=async(_0x1a29bb,_0x2a5f20)=>{const _0x2f68ae=_0x28fe83;if(_0x1a29bb[_0x2f68ae(0xf5)][_0x2f68ae(0xb8)]>=_0x2a5f20)return Promise[_0x2f68ae(0x105)]();if(_0x2a5f20-_0x1a29bb[_0x2f68ae(0xf5)]['counter']>0x7d0)throw new Error('Over\x202000\x20messages\x20into\x20the\x20future!');if(_0x1a29bb[_0x2f68ae(0xf5)]['key']===undefined)throw new Error(_0x2f68ae(0xff));const _0x74065f=_0x1a29bb['chainKey'][_0x2f68ae(0x148)];if(!_0x74065f)throw new Error('chain\x20key\x20is\x20missing');const _0x34d733=new Uint8Array(0x1);_0x34d733[0x0]=0x1;const _0x42793a=await Internal[_0x2f68ae(0xbd)]['sign'](_0x74065f,_0x34d733[_0x2f68ae(0xd7)]);_0x34d733[0x0]=0x2;const _0x1427b3=await Internal[_0x2f68ae(0xbd)]['sign'](_0x74065f,_0x34d733['buffer']);_0x1a29bb[_0x2f68ae(0x10f)][_0x1a29bb['chainKey']['counter']+0x1]=_0x42793a,_0x1a29bb[_0x2f68ae(0xf5)][_0x2f68ae(0x148)]=_0x1427b3,_0x1a29bb[_0x2f68ae(0xf5)][_0x2f68ae(0xb8)]+=0x1,await this[_0x2f68ae(0x121)](_0x1a29bb,_0x2a5f20);},this[_0x28fe83(0xf8)]=_0x44ed64,this['remoteAddress']=typeof _0x3be0ca===_0x28fe83(0x14b)?signal_protocol_address_1[_0x28fe83(0x14a)]['fromString'](_0x3be0ca):_0x3be0ca;}async[a51_0x5689ca(0x103)](_0x349ee1){const _0x4ac33=a51_0x5689ca,_0x1be371=await this[_0x4ac33(0xf8)]['loadSession'](_0x349ee1);if(_0x1be371===undefined)return undefined;return session_record_1[_0x4ac33(0xce)]['deserialize'](_0x1be371);}[a51_0x5689ca(0x120)](_0x3cc0be){const _0x11a357=a51_0x5689ca;return session_lock_1['SessionLock'][_0x11a357(0xbf)](this[_0x11a357(0xd8)][_0x11a357(0xc5)](),()=>this[_0x11a357(0x12a)](_0x3cc0be));}async['calculateRatchet'](_0x2462bb,_0x15fa41,_0x5c1242){const _0x5ca207=a51_0x5689ca,_0x10ffd4=_0x2462bb[_0x5ca207(0xde)];if(!_0x10ffd4[_0x5ca207(0xea)])throw new Error(_0x5ca207(0xdc));const _0x1cc911=await Internal[_0x5ca207(0xbd)][_0x5ca207(0xba)](_0x15fa41,_0x10ffd4[_0x5ca207(0xea)][_0x5ca207(0xc0)]),_0x4a8833=await Internal['HKDF'](_0x1cc911,_0x10ffd4[_0x5ca207(0xd2)],_0x5ca207(0x12b));let _0x2efac7;_0x5c1242?_0x2efac7=_0x10ffd4[_0x5ca207(0xea)][_0x5ca207(0x11d)]:_0x2efac7=_0x15fa41,_0x2462bb[_0x5ca207(0x10d)][base64[_0x5ca207(0x122)](new Uint8Array(_0x2efac7))]={'messageKeys':{},'chainKey':{'counter':-0x1,'key':_0x4a8833[0x1]},'chainType':_0x5c1242?session_types_1[_0x5ca207(0x11b)][_0x5ca207(0xc3)]:session_types_1['ChainType'][_0x5ca207(0x10c)]},_0x10ffd4['rootKey']=_0x4a8833[0x0];}async['decryptPreKeyWhisperMessage'](_0xf570de,_0x5cc1be){const _0x53a233=a51_0x5689ca;_0x5cc1be=_0x5cc1be||_0x53a233(0xca);if(_0x5cc1be!==_0x53a233(0xca))throw new Error('unsupported\x20encoding:\x20'+_0x5cc1be);const _0x4106a4=typeof _0xf570de===_0x53a233(0x14b)?util[_0x53a233(0x102)](_0xf570de):_0xf570de,_0x1de703=new Uint8Array(_0x4106a4),_0x292820=_0x1de703[0x0],_0x578125=_0x1de703['slice'](0x1);if((_0x292820&0xf)>0x3||_0x292820>>0x4<0x3)throw new Error(_0x53a233(0xe2));const _0x4afd0e=this['remoteAddress']['toString'](),_0x2330c2=async()=>{const _0x3f1565=_0x53a233;let _0x4361c3=await this['getRecord'](_0x4afd0e);const _0x57ad34=libsignal_protocol_protobuf_ts_1[_0x3f1565(0x135)]['decode'](_0x578125);if(!_0x4361c3){if(_0x57ad34[_0x3f1565(0xfb)]===undefined)throw new Error('No\x20registrationId');_0x4361c3=new session_record_1[(_0x3f1565(0xce))]();}const _0x410a83=new session_builder_1[(_0x3f1565(0x140))](this[_0x3f1565(0xf8)],this['remoteAddress']),_0xb710fd=await _0x410a83['processV3'](_0x4361c3,_0x57ad34),_0x436c96=_0x4361c3[_0x3f1565(0xe9)]((0x0,helpers_1[_0x3f1565(0xf4)])(_0x57ad34[_0x3f1565(0xdb)]));if(!_0x436c96)throw new Error(_0x3f1565(0xcb)+base64[_0x3f1565(0x122)](_0x57ad34['baseKey'])+',\x20'+_0x57ad34[_0x3f1565(0xdb)][_0x3f1565(0xd5)]);const _0x365617=await this[_0x3f1565(0x133)](_0x57ad34[_0x3f1565(0xe1)],_0x436c96);return _0x4361c3[_0x3f1565(0xeb)](_0x436c96),await this['storage'][_0x3f1565(0x136)](_0x4afd0e,_0x4361c3[_0x3f1565(0xf2)]()),_0xb710fd!==undefined&&_0xb710fd!==null&&await this[_0x3f1565(0xf8)][_0x3f1565(0x11f)](_0xb710fd),_0x365617;};return session_lock_1[_0x53a233(0x108)]['queueJobForNumber'](_0x4afd0e,_0x2330c2);}async[a51_0x5689ca(0xcd)](_0x1a2162,_0x2f2fbf,_0x27ba47){const _0x110b30=a51_0x5689ca;if(_0x2f2fbf[_0x110b30(0x123)]===0x0)return Promise[_0x110b30(0x118)](_0x27ba47[0x0]);const _0x2e9249=_0x2f2fbf[_0x110b30(0x110)]();if(!_0x2e9249)return Promise[_0x110b30(0x118)](_0x27ba47[0x0]);try{const _0x3b5d37=await this['doDecryptWhisperMessage'](_0x1a2162,_0x2e9249);return{'plaintext':_0x3b5d37,'session':_0x2e9249};}catch(_0x420958){if(_0x420958[_0x110b30(0x147)]===_0x110b30(0xe0))return Promise[_0x110b30(0x118)](_0x420958);return _0x27ba47[_0x110b30(0x12f)](_0x420958),this[_0x110b30(0xcd)](_0x1a2162,_0x2f2fbf,_0x27ba47);}}[a51_0x5689ca(0x132)](_0x5380b8,_0x536e34){const _0x412571=a51_0x5689ca;_0x536e34=_0x536e34||_0x412571(0xca);if(_0x536e34!==_0x412571(0xca))throw new Error('unsupported\x20encoding:\x20'+_0x536e34);const _0x1f9496=typeof _0x5380b8===_0x412571(0x14b)?util[_0x412571(0x102)](_0x5380b8):_0x5380b8,_0x519835=this['remoteAddress'][_0x412571(0xc5)](),_0x880ca7=async()=>{const _0x22f46c=_0x412571;var _0x2fbe4e;const _0x21aa75=await this[_0x22f46c(0x103)](_0x519835);if(!_0x21aa75)throw new Error('No\x20record\x20for\x20device\x20'+_0x519835);const _0x133a94=[],_0x237eb2=await this['decryptWithSessionList'](_0x1f9496,_0x21aa75['getSessions'](),_0x133a94);_0x237eb2[_0x22f46c(0x134)][_0x22f46c(0xee)]['baseKey']!==((_0x2fbe4e=_0x21aa75[_0x22f46c(0xf1)]())===null||_0x2fbe4e===void 0x0?void 0x0:_0x2fbe4e[_0x22f46c(0xee)]['baseKey'])&&(_0x21aa75[_0x22f46c(0xc8)](),_0x21aa75[_0x22f46c(0xc9)](_0x237eb2[_0x22f46c(0x134)]));const _0x4642c2=await this[_0x22f46c(0xf8)][_0x22f46c(0xe6)](this[_0x22f46c(0xd8)][_0x22f46c(0x144)](),_0x237eb2['session']['indexInfo'][_0x22f46c(0x127)],types_1[_0x22f46c(0xf9)][_0x22f46c(0x10c)]);if(!_0x4642c2)throw new Error('Identity\x20key\x20changed');return await this[_0x22f46c(0xf8)]['saveIdentity'](_0x519835,_0x237eb2[_0x22f46c(0x134)][_0x22f46c(0xee)]['remoteIdentityKey']),_0x21aa75[_0x22f46c(0xeb)](_0x237eb2[_0x22f46c(0x134)]),await this['storage']['storeSession'](_0x519835,_0x21aa75[_0x22f46c(0xf2)]()),_0x237eb2[_0x22f46c(0xfd)];};return session_lock_1[_0x412571(0x108)][_0x412571(0xbf)](_0x519835,_0x880ca7);}async[a51_0x5689ca(0x133)](_0x2d7b46,_0x2b8823){const _0x342841=a51_0x5689ca,_0x5cb42e=new Uint8Array(_0x2d7b46)[0x0];if((_0x5cb42e&0xf)>0x3||_0x5cb42e>>0x4<0x3)throw new Error('Incompatible\x20version\x20number\x20on\x20WhisperMessage\x20'+_0x5cb42e);const _0x16d573=_0x2d7b46[_0x342841(0x126)](0x1,_0x2d7b46[_0x342841(0xd5)]-0x8),_0x228f6b=_0x2d7b46[_0x342841(0x126)](_0x2d7b46[_0x342841(0xd5)]-0x8,_0x2d7b46[_0x342841(0xd5)]),_0xd08ead=libsignal_protocol_protobuf_ts_1[_0x342841(0xf6)][_0x342841(0xd4)](new Uint8Array(_0x16d573)),_0x431d65=(0x0,helpers_1[_0x342841(0xf4)])(_0xd08ead[_0x342841(0xf3)]);if(_0x2b8823===undefined)return Promise[_0x342841(0x118)](new Error(_0x342841(0x149)+this['remoteAddress'][_0x342841(0xc5)]()));if(_0x2b8823[_0x342841(0xee)][_0x342841(0x146)]!=-0x1){}await this[_0x342841(0xbc)](_0x2b8823,_0x431d65,_0xd08ead['previousCounter']);const _0x16ef7e=_0x2b8823[_0x342841(0x10d)][base64[_0x342841(0x122)](_0xd08ead[_0x342841(0xf3)])];!_0x16ef7e&&console['warn'](_0x342841(0xc7),{'key':base64['fromByteArray'](_0xd08ead['ephemeralKey']),'session':_0x2b8823});if((_0x16ef7e===null||_0x16ef7e===void 0x0?void 0x0:_0x16ef7e[_0x342841(0xfc)])===session_types_1['ChainType'][_0x342841(0xc3)])throw new Error('Tried\x20to\x20decrypt\x20on\x20a\x20sending\x20chain');await this[_0x342841(0x121)](_0x16ef7e,_0xd08ead['counter']);const _0x306d64=_0x16ef7e['messageKeys'][_0xd08ead[_0x342841(0xb8)]];if(_0x306d64===undefined){const _0x662b3a=new Error(_0x342841(0xb7));_0x662b3a[_0x342841(0x147)]=_0x342841(0xe0);throw _0x662b3a;}delete _0x16ef7e['messageKeys'][_0xd08ead[_0x342841(0xb8)]];const _0x1261b6=await Internal['HKDF'](_0x306d64,new ArrayBuffer(0x20),_0x342841(0xd1)),_0x387811=await this[_0x342841(0xf8)][_0x342841(0xdd)]();if(!_0x387811)throw new Error(_0x342841(0x138));const _0x4624b0=new Uint8Array(_0x16d573['byteLength']+0x21*0x2+0x1);_0x4624b0[_0x342841(0x100)](new Uint8Array(_0x2b8823[_0x342841(0xee)][_0x342841(0x127)])),_0x4624b0[_0x342841(0x100)](new Uint8Array(_0x387811[_0x342841(0x11d)]),0x21),_0x4624b0[0x21*0x2]=0x3<<0x4|0x3,_0x4624b0[_0x342841(0x100)](new Uint8Array(_0x16d573),0x21*0x2+0x1),await Internal[_0x342841(0xec)](_0x4624b0[_0x342841(0xd7)],_0x1261b6[0x1],_0x228f6b,0x8);const _0xcb887f=await Internal[_0x342841(0xbd)][_0x342841(0x11e)](_0x1261b6[0x0],(0x0,helpers_1[_0x342841(0xf4)])(_0xd08ead['ciphertext']),_0x1261b6[0x2][_0x342841(0x126)](0x0,0x10));return delete _0x2b8823['pendingPreKey'],_0xcb887f;}async[a51_0x5689ca(0xbc)](_0x351069,_0x45fb27,_0x203fb4){const _0x361b58=a51_0x5689ca,_0x5c6422=base64[_0x361b58(0x122)](new Uint8Array(_0x45fb27));if(_0x351069[_0x361b58(0x10d)][_0x5c6422]!==undefined)return Promise['resolve']();const _0x269953=_0x351069['currentRatchet'];if(!_0x269953[_0x361b58(0xea)])throw new Error('attempting\x20to\x20step\x20reatchet\x20without\x20ephemeral\x20key');const _0x3a2a21=_0x351069['chains'][base64[_0x361b58(0x122)](new Uint8Array(_0x269953['lastRemoteEphemeralKey']))];_0x3a2a21!==undefined&&await this['fillMessageKeys'](_0x3a2a21,_0x203fb4)[_0x361b58(0xbe)](function(){const _0x5232ee=_0x361b58;delete _0x3a2a21[_0x5232ee(0xf5)][_0x5232ee(0x148)],_0x351069[_0x5232ee(0xe7)][_0x351069[_0x5232ee(0xe7)][_0x5232ee(0x123)]]={'added':Date[_0x5232ee(0x116)](),'ephemeralKey':_0x269953[_0x5232ee(0xe8)]};});await this[_0x361b58(0x13d)](_0x351069,_0x45fb27,![]);const _0xeb04aa=base64[_0x361b58(0x122)](new Uint8Array(_0x269953[_0x361b58(0xea)][_0x361b58(0x11d)]));_0x351069[_0x361b58(0x10d)][_0xeb04aa]!==undefined&&(_0x269953[_0x361b58(0xcc)]=_0x351069[_0x361b58(0x10d)][_0xeb04aa][_0x361b58(0xf5)][_0x361b58(0xb8)],delete _0x351069['chains'][_0xeb04aa]);const _0x427b71=await Internal[_0x361b58(0xbd)][_0x361b58(0xe3)]();_0x269953['ephemeralKeyPair']=_0x427b71,await this[_0x361b58(0x13d)](_0x351069,_0x45fb27,!![]),_0x269953['lastRemoteEphemeralKey']=_0x45fb27;}[a51_0x5689ca(0xed)](){const _0x392499=a51_0x5689ca;return session_lock_1[_0x392499(0x108)]['queueJobForNumber'](this['remoteAddress'][_0x392499(0xc5)](),async()=>{const _0x3133dd=_0x392499,_0x144f51=await this[_0x3133dd(0x103)](this['remoteAddress']['toString']());if(_0x144f51===undefined)return undefined;const _0x1b85c3=_0x144f51[_0x3133dd(0xf1)]();if(_0x1b85c3===undefined)return undefined;return _0x1b85c3[_0x3133dd(0xfb)];});}[a51_0x5689ca(0x128)](){const _0x3307c4=a51_0x5689ca,_0xae84b3=async()=>{const _0x1af232=a51_0x2aa6,_0x3d855c=await this['getRecord'](this['remoteAddress'][_0x1af232(0xc5)]());if(_0x3d855c===undefined)return![];return _0x3d855c[_0x1af232(0xc2)]();};return session_lock_1['SessionLock'][_0x3307c4(0xbf)](this[_0x3307c4(0xd8)]['toString'](),_0xae84b3);}[a51_0x5689ca(0x142)](){const _0x4bf453=a51_0x5689ca,_0x38de3d=this[_0x4bf453(0xd8)]['toString'](),_0x4a5953=async()=>{const _0x2ee559=_0x4bf453,_0xac9bd6=await this[_0x2ee559(0x103)](this[_0x2ee559(0xd8)][_0x2ee559(0xc5)]());if(_0xac9bd6===undefined||_0xac9bd6[_0x2ee559(0xf1)]()===undefined)return;return _0xac9bd6[_0x2ee559(0xc8)](),this['storage']['storeSession'](_0x38de3d,_0xac9bd6[_0x2ee559(0xf2)]());};return session_lock_1[_0x4bf453(0x108)]['queueJobForNumber'](_0x38de3d,_0x4a5953);}[a51_0x5689ca(0xbb)](){const _0x21fea5=a51_0x5689ca,_0x4dd297=this[_0x21fea5(0xd8)][_0x21fea5(0xc5)](),_0x39ad80=async()=>{const _0x464b0c=_0x21fea5,_0x1cdae8=await this['getRecord'](this[_0x464b0c(0xd8)]['toString']());if(_0x1cdae8===undefined)return;return _0x1cdae8['deleteAllSessions'](),this['storage'][_0x464b0c(0x136)](_0x4dd297,_0x1cdae8[_0x464b0c(0xf2)]());};return session_lock_1[_0x21fea5(0x108)][_0x21fea5(0xbf)](_0x4dd297,_0x39ad80);}}function a51_0x2aa6(_0x5588a4,_0x275297){const _0x7f65af=a51_0x7f65();return a51_0x2aa6=function(_0x2aa679,_0x2dbfcb){_0x2aa679=_0x2aa679-0xb6;let _0xc04b2a=_0x7f65af[_0x2aa679];return _0xc04b2a;},a51_0x2aa6(_0x5588a4,_0x275297);}exports[a51_0x5689ca(0x111)]=SessionCipher;function a51_0x7f65(){const _0x2c8b6f=['queueJobForNumber','privKey','./types','haveOpenSession','SENDING','sign','toString','all','no\x20chain\x20found\x20for\x20key','archiveCurrentState','promoteState','binary','unable\x20to\x20find\x20session\x20for\x20base\x20key\x20','previousCounter','decryptWithSessionList','SessionRecord','create','HKDF','WhisperMessageKeys','rootKey','get','decode','byteLength','4645CQkTko','buffer','remoteAddress','identityKey','encode','baseKey','currentRatchet\x20has\x20no\x20ephemeral\x20key.\x20Cannot\x20calculateRatchet.','getIdentityKeyPair','currentRatchet','getOwnPropertyDescriptor','MessageCounterError','message','Incompatible\x20version\x20number\x20on\x20PreKeyWhisperMessage','createKeyPair','defineProperty','1956cefkQq','isTrustedIdentity','oldRatchetList','lastRemoteEphemeralKey','getSessionByBaseKey','ephemeralKeyPair','updateSessionState','verifyMAC','getRemoteRegistrationId','indexInfo','./session-record','3746264NhObdn','getOpenSession','serialize','ephemeralKey','uint8ArrayToArrayBuffer','chainKey','WhisperMessage','ratchet\x20missing\x20ephemeralKeyPair','storage','Direction','loadKeysAndRecord','registrationId','chainType','plaintext','./session-lock','Got\x20invalid\x20request\x20to\x20extend\x20chain\x20after\x20it\x20was\x20already\x20closed','set','./helpers','binaryStringToArrayBuffer','getRecord','1991776nlvlQs','resolve','finish','Tried\x20to\x20encrypt\x20on\x20a\x20receiving\x20chain','SessionLock','1614NPjesC','20lGLNaN','No\x20record\x20for\x20','RECEIVING','chains','configurable','messageKeys','pop','SessionCipher','writable','./signal-protocol-address','166586CLxhSA','__esModule','now','default','reject','fromJSON','3806802sjCYmE','ChainType','ciphertext','pubKey','decrypt','removePreKey','encrypt','fillMessageKeys','fromByteArray','length','No\x20session\x20to\x20encrypt\x20message\x20for\x20','__createBinding','slice','remoteIdentityKey','hasOpenSession','call','encryptJob','WhisperRatchet','hasOwnProperty','base64-js','./session-builder','push','signedPreKeyId','__setModuleDefault','decryptWhisperMessage','doDecryptWhisperMessage','session','PreKeyWhisperMessage','storeSession','pendingPreKey','Our\x20identity\x20key\x20is\x20missing.\x20Cannot\x20decrypt.','getLocalRegistrationId','__importStar','signedKeyId','1413558SnYRYj','calculateRatchet','Identity\x20key\x20changed','uint8ArrayToString','SessionBuilder','preKeyId','closeOpenSessionForDevice','saveIdentity','getName','fromCharCode','closed','name','key','No\x20session\x20found\x20to\x20decrypt\x20message\x20from\x20','SignalProtocolAddress','string','prototype','Message\x20key\x20not\x20found.\x20The\x20counter\x20was\x20repeated\x20or\x20the\x20key\x20was\x20not\x20filled.','counter','361OnNnlM','ECDHE','deleteAllSessionsForDevice','maybeStepRatchet','crypto','then'];a51_0x7f65=function(){return _0x2c8b6f;};return a51_0x7f65();}