UNPKG

38.3 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../source/bin.js"],"names":["BigInteger","SecureRandom","Rusha","CryptoJSlib","CryptoJS","inflate","eGCD_","greater","divide_","str2bigInt","equalsInt","isZero","bigInt2str","copy_","copyInt_","rightShift_","sub_","add_","powMod","bpe","one","rushaInstance","bigint","num","toString","bigStringInt","strNum","dHexDump","bytes","arr","i","length","push","console","log","join","bytesToHex","bytesFromHex","hexString","len","start","parseInt","charAt","substr","bytesToBase64","mod3","result","nLen","nUint24","nIdx","String","fromCharCode","uint6ToBase64","replace","nUint6","bytesCmp","bytes1","bytes2","bytesXor","bytesToWords","ArrayBuffer","Uint8Array","words","lib","WordArray","init","bytesFromWords","wordArray","sigBytes","bytesFromBigInt","bigInt","toByteArray","padding","needPadding","bufferConcat","concat","slice","bytesFromLeemonBigInt","str","bytesToArrayBuffer","b","buffer","convertToArrayBuffer","undefined","byteLength","BYTES_PER_ELEMENT","convertToUint8Array","convertToByteArray","Array","isArray","newBytes","bytesFromArrayBuffer","byteView","from","buffer1","buffer2","l1","l2","tmp","set","longToInts","sLong","divRem","divideAndRemainder","intValue","longToBytes","reverse","longFromInts","high","low","shiftLeft","add","intToUint","val","uintToInt","sha1HashSync","hashBytes","rawDigest","sha1BytesSync","sha256HashSync","hashWords","SHA256","rsaEncrypt","publicKey","addPadding","N","modulus","E","exponent","X","encryptedBigInt","modPowInt","encryptedBytes","blockSize","zeroes","nextBytes","aesEncryptSync","keyBytes","ivBytes","encryptedWords","AES","encrypt","iv","pad","NoPadding","mode","IGE","ciphertext","aesDecryptSync","decryptedWords","decrypt","gzipUncompress","nextRandomInt","maxValue","Math","floor","random","pqPrimeFactorization","pqBytes","what","pqPrimeLeemon","ceil","pqPrimeJsbn","it","g","q","x","y","clone","lim","j","a","c","equals","ZERO","and","ONE","compareTo","subtract","shiftRight","z","gcd","f","divide","P","Q","minBits","minLen","bytesModPow","m","xBigInt","yBigInt","mBigInt","resBigInt","e","error","modPow"],"mappings":"AAAA,SAASA,UAAT,EAAqBC,YAArB,QAAyC,MAAzC;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,OAAO,KAAKC,WAAZ,MAA6B,6BAA7B;AACA,MAAM,EAAEC,QAAF,KAAeD,WAArB;;AAEA,SAASE,OAAT,QAAwB,kBAAxB;;AAEA;;AAEA;;AAEA,SAASC,KAAT,EAAgBC,OAAhB,EAAyBC,OAAzB,EAAkCC,UAAlC,EAA8CC,SAA9C,EACEC,MADF,EACUC,UADV,EACsBC,KADtB,EAC6BC,QAD7B,EACuCC,WADvC,EAEEC,IAFF,EAEQC,IAFR,EAEcC,MAFd,EAEsBC,GAFtB,EAE2BC,GAF3B,QAEsC,UAFtC;;AAIA;;AAEA;;AAEA,MAAMC,gBAAgB,IAAInB,KAAJ,CAAU,OAAO,IAAjB,CAAtB;;AAEA,OAAO,SAASoB,MAAT,CAAgBC,GAAhB,EAAqB;AAC1B,SAAO,IAAIvB,UAAJ,CAAeuB,IAAIC,QAAJ,CAAa,EAAb,CAAf,EAAiC,EAAjC,CAAP;AACD;;AAED,OAAO,SAASC,YAAT,CAAsBC,MAAtB,EAA8B;AACnC,SAAO,IAAI1B,UAAJ,CAAe0B,MAAf,EAAuB,EAAvB,CAAP;AACD;;AAED,OAAO,SAASC,QAAT,CAAkBC,KAAlB,EAAyB;AAC9B,QAAMC,MAAM,EAAZ;AACA,OAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIF,MAAMG,MAA1B,EAAkCD,GAAlC,EAAuC;AACrC,QAAIA,KAAK,EAAEA,IAAI,CAAN,CAAT,EAAmB;AACjB,UAAI,EAAEA,IAAI,EAAN,CAAJ,EAAe;AACbD,YAAIG,IAAJ,CAAS,IAAT;AACD,OAFD,MAEO,IAAI,EAAEF,IAAI,CAAN,CAAJ,EAAc;AACnBD,YAAIG,IAAJ,CAAS,IAAT;AACD,OAFM,MAEA;AACLH,YAAIG,IAAJ,CAAS,GAAT;AACD;AACF;AACDH,QAAIG,IAAJ,CAAS,CAACJ,MAAME,CAAN,IAAW,EAAX,GAAgB,GAAhB,GAAsB,EAAvB,IAA6BF,MAAME,CAAN,EAASN,QAAT,CAAkB,EAAlB,CAAtC;AACD;;AAEDS,UAAQC,GAAR,CAAYL,IAAIM,IAAJ,CAAS,EAAT,CAAZ;AACD;;AAED,OAAO,SAASC,UAAT,CAAoBR,QAAQ,EAA5B,EAAgC;AACrC,QAAMC,MAAM,EAAZ;AACA,OAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIF,MAAMG,MAA1B,EAAkCD,GAAlC,EAAuC;AACrCD,QAAIG,IAAJ,CAAS,CAACJ,MAAME,CAAN,IAAW,EAAX,GAAgB,GAAhB,GAAsB,EAAvB,IAA6B,CAACF,MAAME,CAAN,KAAY,CAAb,EAAgBN,QAAhB,CAAyB,EAAzB,CAAtC;AACD;AACD,SAAOK,IAAIM,IAAJ,CAAS,EAAT,CAAP;AACD;;AAED,OAAO,SAASE,YAAT,CAAsBC,SAAtB,EAAiC;AACtC,QAAMC,MAAMD,UAAUP,MAAtB;AACA,MAAIS,QAAQ,CAAZ;AACA,QAAMZ,QAAQ,EAAd;;AAEA,MAAIU,UAAUP,MAAV,GAAmB,CAAvB,EAA0B;AACxBH,UAAMI,IAAN,CAAWS,SAASH,UAAUI,MAAV,CAAiB,CAAjB,CAAT,EAA8B,EAA9B,CAAX;AACAF;AACD;;AAED,OAAK,IAAIV,IAAIU,KAAb,EAAoBV,IAAIS,GAAxB,EAA6BT,KAAK,CAAlC,EAAqC;AACnCF,UAAMI,IAAN,CAAWS,SAASH,UAAUK,MAAV,CAAiBb,CAAjB,EAAoB,CAApB,CAAT,EAAiC,EAAjC,CAAX;AACD;;AAED,SAAOF,KAAP;AACD;;AAED,OAAO,SAASgB,aAAT,CAAuBhB,KAAvB,EAA8B;AACnC,MAAIiB,IAAJ;AACA,MAAIC,SAAS,EAAb;;AAEA,OAAK,IAAIC,OAAOnB,MAAMG,MAAjB,EAAyBiB,UAAU,CAAnC,EAAsCC,OAAO,CAAlD,EAAqDA,OAAOF,IAA5D,EAAkEE,MAAlE,EAA0E;AACxEJ,WAAOI,OAAO,CAAd;AACAD,eAAWpB,MAAMqB,IAAN,MAAgB,OAAOJ,IAAP,GAAc,EAA9B,CAAX;AACA,QAAIA,SAAS,CAAT,IAAcE,OAAOE,IAAP,KAAgB,CAAlC,EAAqC;AACnCH,gBAAUI,OAAOC,YAAP,CACRC,cAAcJ,YAAY,EAAZ,GAAiB,EAA/B,CADQ,EAERI,cAAcJ,YAAY,EAAZ,GAAiB,EAA/B,CAFQ,EAGRI,cAAcJ,YAAY,CAAZ,GAAgB,EAA9B,CAHQ,EAIRI,cAAcJ,UAAU,EAAxB,CAJQ,CAAV;AAMAA,gBAAU,CAAV;AACD;AACF;;AAED,SAAOF,OAAOO,OAAP,CAAe,YAAf,EAA6B,GAA7B,CAAP;AACD;;AAED,OAAO,SAASD,aAAT,CAAuBE,MAAvB,EAA+B;AACpC,SAAOA,SAAS,EAAT,GACHA,SAAS,EADN,GAEHA,SAAS,EAAT,GACEA,SAAS,EADX,GAEEA,SAAS,EAAT,GACEA,SAAS,CADX,GAEEA,WAAW,EAAX,GACE,EADF,GAEEA,WAAW,EAAX,GACE,EADF,GAEE,EAVZ;AAWD;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASC,QAAT,CAAkBC,MAAlB,EAA0BC,MAA1B,EAAkC;AACvC,QAAMlB,MAAMiB,OAAOzB,MAAnB;AACA,MAAIQ,QAAQkB,OAAO1B,MAAnB,EAA2B;AACzB,WAAO,KAAP;AACD;;AAED,OAAK,IAAID,IAAI,CAAb,EAAgBA,IAAIS,GAApB,EAAyBT,GAAzB,EAA8B;AAC5B,QAAI0B,OAAO1B,CAAP,MAAc2B,OAAO3B,CAAP,CAAlB,EACE,OAAO,KAAP;AACH;AACD,SAAO,IAAP;AACD;;AAED,OAAO,SAAS4B,QAAT,CAAkBF,MAAlB,EAA0BC,MAA1B,EAAkC;AACvC,QAAMlB,MAAMiB,OAAOzB,MAAnB;AACA,QAAMH,QAAQ,EAAd;;AAEA,OAAK,IAAIE,IAAI,CAAb,EAAgBA,IAAIS,GAApB,EAAyB,EAAET,CAA3B,EAA8B;AAC5BF,UAAME,CAAN,IAAW0B,OAAO1B,CAAP,IAAY2B,OAAO3B,CAAP,CAAvB;AACD;;AAED,SAAOF,KAAP;AACD;;AAED,OAAO,SAAS+B,YAAT,CAAsB/B,KAAtB,EAA6B;AAClC,MAAIA,iBAAiBgC,WAArB,EAAkC;AAChChC,YAAQ,IAAIiC,UAAJ,CAAejC,KAAf,CAAR;AACD;AACD,QAAMW,MAAMX,MAAMG,MAAlB;AACA,QAAM+B,QAAQ,EAAd;AACA,MAAIhC,CAAJ;AACA,OAAKA,IAAI,CAAT,EAAYA,IAAIS,GAAhB,EAAqBT,GAArB,EAA0B;AACxBgC,UAAMhC,MAAM,CAAZ,KAAkBF,MAAME,CAAN,KAAa,KAAMA,IAAI,CAAL,GAAU,CAA9C;AACD;;AAED,SAAO,IAAI1B,SAAS2D,GAAT,CAAaC,SAAb,CAAuBC,IAA3B,CAAgCH,KAAhC,EAAuCvB,GAAvC,CAAP;AACD;;AAED,OAAO,SAAS2B,cAAT,CAAwBC,SAAxB,EAAmC;AACxC,QAAML,QAAQK,UAAUL,KAAxB;AACA,QAAMM,WAAWD,UAAUC,QAA3B;AACA,QAAMxC,QAAQ,EAAd;;AAEA,OAAK,IAAIE,IAAI,CAAb,EAAgBA,IAAIsC,QAApB,EAA8BtC,GAA9B,EAAmC;AACjCF,UAAMI,IAAN,CAAY8B,MAAMhC,MAAM,CAAZ,MAAoB,KAAMA,IAAI,CAAL,GAAU,CAApC,GAA0C,IAArD;AACD;;AAED,SAAOF,KAAP;AACD;;AAED,OAAO,SAASyC,eAAT,CAAyBC,MAAzB,EAAiC/B,GAAjC,EAAsC;AAC3C,MAAIX,QAAQ0C,OAAOC,WAAP,EAAZ;;AAEA,MAAIhC,OAAOX,MAAMG,MAAN,GAAeQ,GAA1B,EAA+B;AAC7B,UAAMiC,UAAU,EAAhB;AACA,SAAK,IAAI1C,IAAI,CAAR,EAAW2C,cAAclC,MAAMX,MAAMG,MAA1C,EAAkDD,IAAI2C,WAAtD,EAAmE3C,GAAnE,EAAwE;AACtE0C,cAAQ1C,CAAR,IAAa,CAAb;AACD;AACD,QAAIF,iBAAiBgC,WAArB,EAAkC;AAChChC,cAAQ8C,aAAaF,OAAb,EAAsB5C,KAAtB,CAAR;AACD,KAFD,MAEO;AACLA,cAAQ4C,QAAQG,MAAR,CAAe/C,KAAf,CAAR;AACD;AACF,GAVD,MAUO;AACL,WAAO,CAACA,MAAM,CAAN,CAAD,KAAc,CAACW,GAAD,IAAQX,MAAMG,MAAN,GAAeQ,GAArC,CAAP,EAAkD;AAChDX,cAAQA,MAAMgD,KAAN,CAAY,CAAZ,CAAR;AACD;AACF;;AAED,SAAOhD,KAAP;AACD;;AAED,OAAO,SAASiD,qBAAT,CAA+BP,MAA/B,EAAuC/B,GAAvC,EAA4C;AACjD,QAAMuC,MAAMlE,WAAW0D,MAAX,EAAmB,EAAnB,CAAZ;AACA,SAAOjC,aAAayC,GAAb,CAAP;AACD;;AAED,OAAO,SAASC,kBAAT,CAA4BC,CAA5B,EAA+B;AACpC,SAAQ,IAAInB,UAAJ,CAAemB,CAAf,CAAD,CAAoBC,MAA3B;AACD;;AAED,OAAO,SAASC,oBAAT,CAA8BtD,KAA9B,EAAqC;AAC1C;AACA,MAAIA,iBAAiBgC,WAArB,EAAkC;AAChC,WAAOhC,KAAP;AACD;AACD,MAAIA,MAAMqD,MAAN,KAAiBE,SAAjB,IACFvD,MAAMqD,MAAN,CAAaG,UAAb,IAA2BxD,MAAMG,MAAN,GAAeH,MAAMyD,iBADlD,EACqE;AACnE,WAAOzD,MAAMqD,MAAb;AACD;AACD,SAAOF,mBAAmBnD,KAAnB,CAAP;AACD;;AAED,OAAO,SAAS0D,mBAAT,CAA6B1D,KAA7B,EAAoC;AACzC,MAAIA,MAAMqD,MAAN,KAAiBE,SAArB,EAAgC;AAC9B,WAAOvD,KAAP;AACD;AACD,SAAO,IAAIiC,UAAJ,CAAejC,KAAf,CAAP;AACD;;AAED,OAAO,SAAS2D,kBAAT,CAA4B3D,KAA5B,EAAmC;AACxC,MAAI4D,MAAMC,OAAN,CAAc7D,KAAd,CAAJ,EAA0B;AACxB,WAAOA,KAAP;AACD;AACDA,UAAQ0D,oBAAoB1D,KAApB,CAAR;AACA,QAAM8D,WAAW,EAAjB;AACA,OAAK,IAAI5D,IAAI,CAAR,EAAWS,MAAMX,MAAMG,MAA5B,EAAoCD,IAAIS,GAAxC,EAA6CT,GAA7C,EAAkD;AAChD4D,aAAS1D,IAAT,CAAcJ,MAAME,CAAN,CAAd;AACD;AACD,SAAO4D,QAAP;AACD;;AAED,OAAO,SAASC,oBAAT,CAA8BV,MAA9B,EAAsC;AAC3C,QAAMW,WAAW,IAAI/B,UAAJ,CAAeoB,MAAf,CAAjB;AACA,QAAMrD,QAAQ4D,MAAMK,IAAN,CAAYD,QAAZ,CAAd;AACA,SAAOhE,KAAP;AACD;;AAED,OAAO,SAAS8C,YAAT,CAAsBoB,OAAtB,EAA+BC,OAA/B,EAAwC;AAC7C,QAAMC,KAAKF,QAAQV,UAAR,IAAsBU,QAAQ/D,MAAzC;AACA,QAAMkE,KAAKF,QAAQX,UAAR,IAAsBW,QAAQhE,MAAzC;AACA,QAAMmE,MAAM,IAAIrC,UAAJ,CAAemC,KAAKC,EAApB,CAAZ;AACAC,MAAIC,GAAJ,CACEL,mBAAmBlC,WAAnB,GACI,IAAIC,UAAJ,CAAeiC,OAAf,CADJ,GAEIA,OAHN,EAIE,CAJF;AAKAI,MAAIC,GAAJ,CACEJ,mBAAmBnC,WAAnB,GACI,IAAIC,UAAJ,CAAekC,OAAf,CADJ,GAEIA,OAHN,EAIEC,EAJF;;AAMA,SAAOE,IAAIjB,MAAX;AACD;;AAED,OAAO,SAASmB,UAAT,CAAoBC,KAApB,EAA2B;AAChC,QAAMC,SAAS7E,aAAa4E,KAAb,EAAoBE,kBAApB,CAAuCjF,OAAO,WAAP,CAAvC,CAAf;;AAEA,SAAO,CAACgF,OAAO,CAAP,EAAUE,QAAV,EAAD,EAAuBF,OAAO,CAAP,EAAUE,QAAV,EAAvB,CAAP;AACD;;AAED,OAAO,SAASC,WAAT,CAAqBJ,KAArB,EAA4B;AACjC,SAAOnC,eAAe,EAAEJ,OAAOsC,WAAWC,KAAX,CAAT,EAA4BjC,UAAU,CAAtC,EAAf,EAA0DsC,OAA1D,EAAP;AACD;;AAED,OAAO,SAASC,YAAT,CAAsBC,IAAtB,EAA4BC,GAA5B,EAAiC;AACtC,SAAOvF,OAAOsF,IAAP,EACJE,SADI,CACM,EADN,EAEJC,GAFI,CAEAzF,OAAOuF,GAAP,CAFA,EAGJrF,QAHI,CAGK,EAHL,CAAP;AAID;;AAED,OAAO,SAASwF,SAAT,CAAmBC,GAAnB,EAAwB;AAC7BA,QAAMxE,SAASwE,GAAT,CAAN;AACA,MAAIA,MAAM,CAAV,EAAa;AACXA,UAAMA,MAAM,UAAZ;AACD;AACD,SAAOA,GAAP;AACD;;AAED,OAAO,SAASC,SAAT,CAAmBD,GAAnB,EAAwB;AAC7B,MAAIA,MAAM,UAAV,EAAsB;AACpBA,UAAMA,MAAM,UAAZ;AACD;AACD,SAAOA,GAAP;AACD;;AAED,OAAO,SAASE,YAAT,CAAsBvF,KAAtB,EAA6B;AAClC;AACA,QAAMwF,YAAY/F,cAAcgG,SAAd,CAAwBzF,KAAxB,EAA+BqD,MAAjD;AACA;;AAEA,SAAOmC,SAAP;AACD;;AAED,OAAO,SAASE,aAAT,CAAuB1F,KAAvB,EAA8B;AACnC,SAAO+D,qBAAqBwB,aAAavF,KAAb,CAArB,CAAP;AACD;;AAED,OAAO,SAAS2F,cAAT,CAAwB3F,KAAxB,EAA+B;AACpC;AACA,QAAM4F,YAAYpH,SAASqH,MAAT,CAAgB9D,aAAa/B,KAAb,CAAhB,CAAlB;AACA;;AAEA,QAAMwF,YAAYlD,eAAesD,SAAf,CAAlB;;AAEA,SAAOJ,SAAP;AACD;;AAED,OAAO,SAASM,UAAT,CAAoBC,SAApB,EAA+B/F,KAA/B,EAAsC;AAC3CA,UAAQgG,WAAWhG,KAAX,EAAkB,GAAlB,CAAR;;AAEA;AACA,QAAMiG,IAAI,IAAI7H,UAAJ,CAAe2H,UAAUG,OAAzB,EAAkC,EAAlC,CAAV;AACA,QAAMC,IAAI,IAAI/H,UAAJ,CAAe2H,UAAUK,QAAzB,EAAmC,EAAnC,CAAV;AACA,QAAMC,IAAI,IAAIjI,UAAJ,CAAe4B,KAAf,CAAV;AACA,QAAMsG,kBAAkBD,EAAEE,SAAF,CAAYJ,CAAZ,EAAeF,CAAf,CAAxB;AAAA,QACMO,iBAAiB/D,gBAAgB6D,eAAhB,EAAiC,GAAjC,CADvB;AAEE;;AAEF,SAAOE,cAAP;AACD;;AAED,OAAO,SAASR,UAAT,CAAoBhG,KAApB,EAA2ByG,SAA3B,EAAsCC,MAAtC,EAA8C;AACnDD,cAAYA,aAAa,EAAzB;AACA,QAAM9F,MAAMX,MAAMwD,UAAN,IAAoBxD,MAAMG,MAAtC;AACA,QAAM0C,cAAc4D,YAAa9F,MAAM8F,SAAvC;AACA,MAAI5D,cAAc,CAAd,IAAmBA,cAAc4D,SAArC,EAAgD;AAC9C,UAAM7D,UAAU,IAAIgB,KAAJ,CAAUf,WAAV,CAAhB;AACA,QAAI6D,MAAJ,EAAY;AACV,WAAK,IAAIxG,IAAI,CAAb,EAAgBA,IAAI2C,WAApB,EAAiC3C,GAAjC,EAAsC;AACpC0C,gBAAQ1C,CAAR,IAAa,CAAb;AACD;AACF,KAJD,MAIO;AACJ,UAAI7B,YAAJ,EAAD,CAAqBsI,SAArB,CAA+B/D,OAA/B;AACD;;AAED,QAAI5C,iBAAiBgC,WAArB,EAAkC;AAChChC,cAAQ8C,aAAa9C,KAAb,EAAoB4C,OAApB,CAAR;AACD,KAFD,MAEO;AACL5C,cAAQA,MAAM+C,MAAN,CAAaH,OAAb,CAAR;AACD;AACF;;AAED,SAAO5C,KAAP;AACD;;AAED,OAAO,SAAS4G,cAAT,CAAwB5G,KAAxB,EAA+B6G,QAA/B,EAAyCC,OAAzC,EAAkD;AACvD,QAAMnG,MAAMX,MAAMwD,UAAN,IAAoBxD,MAAMG,MAAtC;;AAEA;AACAH,UAAQgG,WAAWhG,KAAX,CAAR;;AAEA,QAAM+G,iBAAiBvI,SAASwI,GAAT,CAAaC,OAAb,CAAqBlF,aAAa/B,KAAb,CAArB,EAA0C+B,aAAa8E,QAAb,CAA1C,EAAkE;AACvFK,QAASnF,aAAa+E,OAAb,CAD8E;AAEvFlE,aAASpE,SAAS2I,GAAT,CAAaC,SAFiE;AAGvFC,UAAS7I,SAAS6I,IAAT,CAAcC;AAHgE,GAAlE,EAIpBC,UAJH;;AAMA,QAAMf,iBAAiBlE,eAAeyE,cAAf,CAAvB;AACA;;AAEA,SAAOP,cAAP;AACD;;AAED,OAAO,SAASgB,cAAT,CAAwBhB,cAAxB,EAAwCK,QAAxC,EAAkDC,OAAlD,EAA2D;;AAEhE;AACA,QAAMW,iBAAiBjJ,SAASwI,GAAT,CAAaU,OAAb,CAAqB,EAAEH,YAAYxF,aAAayE,cAAb,CAAd,EAArB,EAAmEzE,aAAa8E,QAAb,CAAnE,EAA2F;AAChHK,QAASnF,aAAa+E,OAAb,CADuG;AAEhHlE,aAASpE,SAAS2I,GAAT,CAAaC,SAF0F;AAGhHC,UAAS7I,SAAS6I,IAAT,CAAcC;AAHyF,GAA3F,CAAvB;;AAMA,QAAMtH,QAAQsC,eAAemF,cAAf,CAAd;AACA;;AAEA,SAAOzH,KAAP;AACD;;AAED,OAAO,SAAS2H,cAAT,CAAwB3H,KAAxB,EAA+B;AACpC;AACA,QAAMkB,SAASzC,QAAQuB,KAAR,CAAf;AACA;AACA,SAAOkB,MAAP;AACD;;AAED,OAAO,SAAS0G,aAAT,CAAuBC,QAAvB,EAAiC;AACtC,SAAOC,KAAKC,KAAL,CAAWD,KAAKE,MAAL,KAAgBH,QAA3B,CAAP;AACD;;AAED;AACA;;AAEA,OAAO,SAASI,oBAAT,CAA8BC,OAA9B,EAAuC;AAC5C,QAAMC,OAAO,IAAI/J,UAAJ,CAAe8J,OAAf,CAAb;AACA;AACA;AACA,MAAIhH,SAAS,KAAb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACAA,WAASkH,cAAcvJ,WAAWsJ,KAAKvI,QAAL,CAAc,EAAd,CAAX,EAA8B,EAA9B,EAAkCkI,KAAKO,IAAL,CAAU,KAAK9I,GAAf,IAAsB,CAAxD,CAAd,CAAT;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AASA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAO2B,MAAP;AACE;AACH;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,OAAO,SAASoH,WAAT,CAAqBH,IAArB,EAA2B;AAChC,MAAII,KAAK,CAAT;AAAA,MACIC,CADJ;AAEA,OAAK,IAAItI,IAAI,CAAb,EAAgBA,IAAI,CAApB,EAAuBA,GAAvB,EAA4B;AAC1B,UAAMuI,IAAI,CAACb,cAAc,GAAd,IAAqB,EAAtB,IAA4B,EAAtC;AACA,QAAIc,IAAIhJ,OAAOkI,cAAc,UAAd,IAA4B,CAAnC,CAAR;AACA,QAAIe,IAAID,EAAEE,KAAF,EAAR;AACA,UAAMC,MAAM,KAAM3I,IAAI,EAAtB;;AAEA,SAAK,IAAI4I,IAAI,CAAb,EAAgBA,IAAID,GAApB,EAAyBC,GAAzB,EAA8B;AAC5B,QAAEP,EAAF;AACA,UAAIQ,IAAIL,EAAEE,KAAF,EAAR;AACA,UAAIxF,IAAIsF,EAAEE,KAAF,EAAR;AACA,UAAII,IAAItJ,OAAO+I,CAAP,CAAR;;AAEA,aAAO,CAACrF,EAAE6F,MAAF,CAAS7K,WAAW8K,IAApB,CAAR,EAAmC;AACjC,YAAI,CAAC9F,EAAE+F,GAAF,CAAM/K,WAAWgL,GAAjB,EAAsBH,MAAtB,CAA6B7K,WAAW8K,IAAxC,CAAL,EAAoD;AAClDF,cAAIA,EAAE7D,GAAF,CAAM4D,CAAN,CAAJ;AACA,cAAIC,EAAEK,SAAF,CAAYlB,IAAZ,IAAoB,CAAxB,EAA2B;AACzBa,gBAAIA,EAAEM,QAAF,CAAWnB,IAAX,CAAJ;AACD;AACF;AACDY,YAAIA,EAAE5D,GAAF,CAAM4D,CAAN,CAAJ;AACA,YAAIA,EAAEM,SAAF,CAAYlB,IAAZ,IAAoB,CAAxB,EAA2B;AACzBY,cAAIA,EAAEO,QAAF,CAAWnB,IAAX,CAAJ;AACD;AACD/E,YAAIA,EAAEmG,UAAF,CAAa,CAAb,CAAJ;AACD;;AAEDb,UAAIM,EAAEJ,KAAF,EAAJ;AACA,YAAMY,IAAId,EAAEW,SAAF,CAAYV,CAAZ,IAAiB,CAAjB,GAAqBA,EAAEW,QAAF,CAAWZ,CAAX,CAArB,GAAqCA,EAAEY,QAAF,CAAWX,CAAX,CAA/C;AACAH,UAAIgB,EAAEC,GAAF,CAAMtB,IAAN,CAAJ;AACA,UAAI,CAACK,EAAES,MAAF,CAAS7K,WAAWgL,GAApB,CAAL,EAA+B;AAC7B;AACD;AACD,UAAI,CAACN,IAAKA,IAAI,CAAV,KAAiB,CAArB,EAAwB;AACtBH,YAAID,EAAEE,KAAF,EAAJ;AACD;AACF;AACD,QAAIJ,EAAEa,SAAF,CAAYjL,WAAWgL,GAAvB,IAA8B,CAAlC,EAAqC;AACnC;AACD;AACF;;AAED,MAAIM,IAAIvB,KAAKwB,MAAL,CAAYnB,CAAZ,CAAR;AAAA,MAAwBoB,CAAxB;AAAA,MAA2BC,CAA3B;;AAEA,MAAIrB,EAAEa,SAAF,CAAYK,CAAZ,IAAiB,CAArB,EAAwB;AACtBE,QAAIF,CAAJ;AACAG,QAAIrB,CAAJ;AACD,GAHD,MAGO;AACLoB,QAAIpB,CAAJ;AACAqB,QAAIH,CAAJ;AACD;;AAED,SAAO,CAACjH,gBAAgBmH,CAAhB,CAAD,EAAqBnH,gBAAgBoH,CAAhB,CAArB,EAAyCtB,EAAzC,CAAP;AACD;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0EA;;;;;;;;;;;;AAYA,OAAO,SAASH,aAAT,CAAuBD,IAAvB,EAA6B;AAClC,QAAM2B,UAAU,EAAhB;AACA,QAAMC,SAASjC,KAAKO,IAAL,CAAUyB,UAAUvK,GAApB,IAA2B,CAA1C;AACA,MAAIgJ,KAAK,CAAT;AACA,MAAIE,CAAJ,EAAOI,GAAP;AACA,QAAME,IAAI,IAAInF,KAAJ,CAAUmG,MAAV,CAAV;AACA,QAAM3G,IAAI,IAAIQ,KAAJ,CAAUmG,MAAV,CAAV;AACA,QAAMf,IAAI,IAAIpF,KAAJ,CAAUmG,MAAV,CAAV;AACA,QAAMvB,IAAI,IAAI5E,KAAJ,CAAUmG,MAAV,CAAV;AACA,QAAMP,IAAI,IAAI5F,KAAJ,CAAUmG,MAAV,CAAV;AACA,QAAMrB,IAAI,IAAI9E,KAAJ,CAAUmG,MAAV,CAAV;AACA,QAAMpB,IAAI,IAAI/E,KAAJ,CAAUmG,MAAV,CAAV;;AAEA,OAAK,IAAI7J,IAAI,CAAb,EAAgBA,IAAI,CAApB,EAAuBA,GAAvB,EAA4B;AAC1BuI,QAAI,CAACb,cAAc,GAAd,IAAqB,EAAtB,IAA4B,EAAhC;AACA1I,aAASwJ,CAAT,EAAYd,cAAc,UAAd,IAA4B,CAAxC;AACA3I,UAAM0J,CAAN,EAASD,CAAT;AACAG,UAAM,KAAM3I,IAAI,EAAhB;;AAEA,SAAK,IAAI4I,IAAI,CAAb,EAAgBA,IAAID,GAApB,EAAyBC,GAAzB,EAA8B;AAC5B,QAAEP,EAAF;AACAtJ,YAAM8J,CAAN,EAASL,CAAT;AACAzJ,YAAMmE,CAAN,EAASsF,CAAT;AACAxJ,eAAS8J,CAAT,EAAYP,CAAZ;;AAEA,aAAO,CAAC1J,OAAOqE,CAAP,CAAR,EAAmB;AACjB,YAAIA,EAAE,CAAF,IAAO,CAAX,EAAc;AACZ/D,eAAK2J,CAAL,EAAQD,CAAR;AACA,cAAIpK,QAAQqK,CAAR,EAAWb,IAAX,CAAJ,EAAsB;AACpB/I,iBAAK4J,CAAL,EAAQb,IAAR;AACD;AACF;AACD9I,aAAK0J,CAAL,EAAQA,CAAR;AACA,YAAIpK,QAAQoK,CAAR,EAAWZ,IAAX,CAAJ,EAAsB;AACpB/I,eAAK2J,CAAL,EAAQZ,IAAR;AACD;AACDhJ,oBAAYiE,CAAZ,EAAe,CAAf;AACD;;AAEDnE,YAAMyJ,CAAN,EAASM,CAAT;AACA,UAAIrK,QAAQ+J,CAAR,EAAWC,CAAX,CAAJ,EAAmB;AACjB1J,cAAMuK,CAAN,EAASd,CAAT;AACAtJ,aAAKoK,CAAL,EAAQb,CAAR;AACD,OAHD,MAGO;AACL1J,cAAMuK,CAAN,EAASb,CAAT;AACAvJ,aAAKoK,CAAL,EAAQd,CAAR;AACD;AACDhK,YAAM8K,CAAN,EAASrB,IAAT,EAAeK,CAAf,EAAkBO,CAAlB,EAAqB3F,CAArB;AACA,UAAI,CAACtE,UAAU0J,CAAV,EAAa,CAAb,CAAL,EAAsB;AACpB;AACD;AACD,UAAI,CAACM,IAAKA,IAAI,CAAV,MAAkB,CAAtB,EAAyB;AACvB7J,cAAM0J,CAAN,EAASD,CAAT;AACD;AACF;AACD,QAAI/J,QAAQ6J,CAAR,EAAWhJ,GAAX,CAAJ,EAAqB;AACnB;AACD;AACF;;AAEDZ,UAAQuJ,IAAR,EAAcK,CAAd,EAAiBE,CAAjB,EAAoBC,CAApB;;AAEA,QAAM,CAACiB,CAAD,EAAIC,CAAJ,IACJlL,QAAQ6J,CAAR,EAAWE,CAAX,IACI,CAACA,CAAD,EAAIF,CAAJ,CADJ,GAEI,CAACA,CAAD,EAAIE,CAAJ,CAHN;;AAKA;;AAEA,SAAO,CAACzF,sBAAsB2G,CAAtB,CAAD,EAA2B3G,sBAAsB4G,CAAtB,CAA3B,EAAqDtB,EAArD,CAAP;AACD;;AAED,OAAO,SAASyB,WAAT,CAAqBtB,CAArB,EAAwBC,CAAxB,EAA2BsB,CAA3B,EAA8B;AACnC,MAAI;AACF,UAAMC,UAAUrL,WAAW2B,WAAWkI,CAAX,CAAX,EAA0B,EAA1B,CAAhB;AACA,UAAMyB,UAAUtL,WAAW2B,WAAWmI,CAAX,CAAX,EAA0B,EAA1B,CAAhB;AACA,UAAMyB,UAAUvL,WAAW2B,WAAWyJ,CAAX,CAAX,EAA0B,EAA1B,CAAhB;AACA,UAAMI,YAAY/K,OAAO4K,OAAP,EAAgBC,OAAhB,EAAyBC,OAAzB,CAAlB;;AAEA,WAAO3J,aAAazB,WAAWqL,SAAX,EAAsB,EAAtB,CAAb,CAAP;AACD,GAPD,CAOE,OAAOC,CAAP,EAAU;AACVjK,YAAQkK,KAAR,CAAc,eAAd,EAA+BD,CAA/B;AACD;;AAED,SAAO7H,gBAAgB,IAAIrE,UAAJ,CAAesK,CAAf,EAAkB8B,MAAlB,CAAyB,IAAIpM,UAAJ,CAAeuK,CAAf,CAAzB,EAA4C,IAAIvK,UAAJ,CAAe6L,CAAf,CAA5C,CAAhB,EAAgF,GAAhF,CAAP;AACD","file":"bin.js","sourcesContent":["import { BigInteger, SecureRandom } from 'jsbn'\r\nimport Rusha from 'rusha'\r\nimport * as CryptoJSlib from '@goodmind/node-cryptojs-aes'\r\nconst { CryptoJS } = CryptoJSlib\r\n\r\nimport { inflate } from 'pako/lib/inflate'\r\n\r\n// import Int from 'big-integer'\r\n\r\n// import BN from 'bn.js'\r\n\r\nimport { eGCD_, greater, divide_, str2bigInt, equalsInt,\r\n isZero, bigInt2str, copy_, copyInt_, rightShift_,\r\n sub_, add_, powMod, bpe, one } from './leemon'\r\n\r\n// import { bigInt2str } from 'BigInt'\r\n\r\n// const { BigInteger } = jsbn\r\n\r\nconst rushaInstance = new Rusha(1024 * 1024)\r\n\r\nexport function bigint(num) {\r\n return new BigInteger(num.toString(16), 16)\r\n}\r\n\r\nexport function bigStringInt(strNum) {\r\n return new BigInteger(strNum, 10)\r\n}\r\n\r\nexport function dHexDump(bytes) {\r\n const arr = []\r\n for (let i = 0; i < bytes.length; i++) {\r\n if (i && !(i % 2)) {\r\n if (!(i % 16)) {\r\n arr.push('\\n')\r\n } else if (!(i % 4)) {\r\n arr.push(' ')\r\n } else {\r\n arr.push(' ')\r\n }\r\n }\r\n arr.push((bytes[i] < 16 ? '0' : '') + bytes[i].toString(16))\r\n }\r\n\r\n console.log(arr.join(''))\r\n}\r\n\r\nexport function bytesToHex(bytes = []) {\r\n const arr = []\r\n for (let i = 0; i < bytes.length; i++) {\r\n arr.push((bytes[i] < 16 ? '0' : '') + (bytes[i] || 0).toString(16))\r\n }\r\n return arr.join('')\r\n}\r\n\r\nexport function bytesFromHex(hexString) {\r\n const len = hexString.length\r\n let start = 0\r\n const bytes = []\r\n\r\n if (hexString.length % 2) {\r\n bytes.push(parseInt(hexString.charAt(0), 16))\r\n start++\r\n }\r\n\r\n for (let i = start; i < len; i += 2) {\r\n bytes.push(parseInt(hexString.substr(i, 2), 16))\r\n }\r\n\r\n return bytes\r\n}\r\n\r\nexport function bytesToBase64(bytes) {\r\n let mod3\r\n let result = ''\r\n\r\n for (let nLen = bytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; nIdx++) {\r\n mod3 = nIdx % 3\r\n nUint24 |= bytes[nIdx] << (16 >>> mod3 & 24)\r\n if (mod3 === 2 || nLen - nIdx === 1) {\r\n result += String.fromCharCode(\r\n uint6ToBase64(nUint24 >>> 18 & 63),\r\n uint6ToBase64(nUint24 >>> 12 & 63),\r\n uint6ToBase64(nUint24 >>> 6 & 63),\r\n uint6ToBase64(nUint24 & 63)\r\n )\r\n nUint24 = 0\r\n }\r\n }\r\n\r\n return result.replace(/A(?=A$|$)/g, '=')\r\n}\r\n\r\nexport function uint6ToBase64(nUint6) {\r\n return nUint6 < 26\r\n ? nUint6 + 65\r\n : nUint6 < 52\r\n ? nUint6 + 71\r\n : nUint6 < 62\r\n ? nUint6 - 4\r\n : nUint6 === 62\r\n ? 43\r\n : nUint6 === 63\r\n ? 47\r\n : 65\r\n}\r\n\r\n// export function base64ToBlob(base64str, mimeType) {\r\n// const sliceSize = 1024\r\n// const byteCharacters = atob(base64str)\r\n// const bytesLength = byteCharacters.length\r\n// const slicesCount = Math.ceil(bytesLength / sliceSize)\r\n// const byteArrays = new Array(slicesCount)\r\n\r\n// for (let sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {\r\n// const begin = sliceIndex * sliceSize\r\n// const end = Math.min(begin + sliceSize, bytesLength)\r\n\r\n// const bytes = new Array(end - begin)\r\n// for (let offset = begin, i = 0; offset < end; ++i, ++offset) {\r\n// bytes[i] = byteCharacters[offset].charCodeAt(0)\r\n// }\r\n// byteArrays[sliceIndex] = new Uint8Array(bytes)\r\n// }\r\n\r\n// return blobConstruct(byteArrays, mimeType)\r\n// }\r\n\r\n// export function dataUrlToBlob(url) {\r\n// // var name = 'b64blob ' + url.length\r\n// // console.time(name)\r\n// const urlParts = url.split(',')\r\n// const base64str = urlParts[1]\r\n// const mimeType = urlParts[0].split(':')[1].split(';')[0]\r\n// const blob = base64ToBlob(base64str, mimeType)\r\n// // console.timeEnd(name)\r\n// return blob\r\n// }\r\n\r\n// export function blobConstruct(blobParts, mimeType) {\r\n// let blob\r\n// try {\r\n// blob = new Blob(blobParts, { type: mimeType })\r\n// } catch (e) {\r\n// const bb = new BlobBuilder\r\n// angular.forEach(blobParts, function(blobPart) {\r\n// bb.append(blobPart)\r\n// })\r\n// blob = bb.getBlob(mimeType)\r\n// }\r\n// return blob\r\n// }\r\n\r\nexport function bytesCmp(bytes1, bytes2) {\r\n const len = bytes1.length\r\n if (len !== bytes2.length) {\r\n return false\r\n }\r\n\r\n for (let i = 0; i < len; i++) {\r\n if (bytes1[i] !== bytes2[i])\r\n return false\r\n }\r\n return true\r\n}\r\n\r\nexport function bytesXor(bytes1, bytes2) {\r\n const len = bytes1.length\r\n const bytes = []\r\n\r\n for (let i = 0; i < len; ++i) {\r\n bytes[i] = bytes1[i] ^ bytes2[i]\r\n }\r\n\r\n return bytes\r\n}\r\n\r\nexport function bytesToWords(bytes) {\r\n if (bytes instanceof ArrayBuffer) {\r\n bytes = new Uint8Array(bytes)\r\n }\r\n const len = bytes.length\r\n const words = []\r\n let i\r\n for (i = 0; i < len; i++) {\r\n words[i >>> 2] |= bytes[i] << (24 - (i % 4) * 8)\r\n }\r\n\r\n return new CryptoJS.lib.WordArray.init(words, len)\r\n}\r\n\r\nexport function bytesFromWords(wordArray) {\r\n const words = wordArray.words\r\n const sigBytes = wordArray.sigBytes\r\n const bytes = []\r\n\r\n for (let i = 0; i < sigBytes; i++) {\r\n bytes.push((words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)\r\n }\r\n\r\n return bytes\r\n}\r\n\r\nexport function bytesFromBigInt(bigInt, len) {\r\n let bytes = bigInt.toByteArray()\r\n\r\n if (len && bytes.length < len) {\r\n const padding = []\r\n for (let i = 0, needPadding = len - bytes.length; i < needPadding; i++) {\r\n padding[i] = 0\r\n }\r\n if (bytes instanceof ArrayBuffer) {\r\n bytes = bufferConcat(padding, bytes)\r\n } else {\r\n bytes = padding.concat(bytes)\r\n }\r\n } else {\r\n while (!bytes[0] && (!len || bytes.length > len)) {\r\n bytes = bytes.slice(1)\r\n }\r\n }\r\n\r\n return bytes\r\n}\r\n\r\nexport function bytesFromLeemonBigInt(bigInt, len) {\r\n const str = bigInt2str(bigInt, 16)\r\n return bytesFromHex(str)\r\n}\r\n\r\nexport function bytesToArrayBuffer(b) {\r\n return (new Uint8Array(b)).buffer\r\n}\r\n\r\nexport function convertToArrayBuffer(bytes) {\r\n // Be careful with converting subarrays!!\r\n if (bytes instanceof ArrayBuffer) {\r\n return bytes\r\n }\r\n if (bytes.buffer !== undefined &&\r\n bytes.buffer.byteLength == bytes.length * bytes.BYTES_PER_ELEMENT) {\r\n return bytes.buffer\r\n }\r\n return bytesToArrayBuffer(bytes)\r\n}\r\n\r\nexport function convertToUint8Array(bytes) {\r\n if (bytes.buffer !== undefined) {\r\n return bytes\r\n }\r\n return new Uint8Array(bytes)\r\n}\r\n\r\nexport function convertToByteArray(bytes) {\r\n if (Array.isArray(bytes)) {\r\n return bytes\r\n }\r\n bytes = convertToUint8Array(bytes)\r\n const newBytes = []\r\n for (let i = 0, len = bytes.length; i < len; i++) {\r\n newBytes.push(bytes[i])\r\n }\r\n return newBytes\r\n}\r\n\r\nexport function bytesFromArrayBuffer(buffer) {\r\n const byteView = new Uint8Array(buffer)\r\n const bytes = Array.from( byteView )\r\n return bytes\r\n}\r\n\r\nexport function bufferConcat(buffer1, buffer2) {\r\n const l1 = buffer1.byteLength || buffer1.length\r\n const l2 = buffer2.byteLength || buffer2.length\r\n const tmp = new Uint8Array(l1 + l2)\r\n tmp.set(\r\n buffer1 instanceof ArrayBuffer\r\n ? new Uint8Array(buffer1)\r\n : buffer1,\r\n 0)\r\n tmp.set(\r\n buffer2 instanceof ArrayBuffer\r\n ? new Uint8Array(buffer2)\r\n : buffer2,\r\n l1)\r\n\r\n return tmp.buffer\r\n}\r\n\r\nexport function longToInts(sLong) {\r\n const divRem = bigStringInt(sLong).divideAndRemainder(bigint(0x100000000))\r\n\r\n return [divRem[0].intValue(), divRem[1].intValue()]\r\n}\r\n\r\nexport function longToBytes(sLong) {\r\n return bytesFromWords({ words: longToInts(sLong), sigBytes: 8 }).reverse()\r\n}\r\n\r\nexport function longFromInts(high, low) {\r\n return bigint(high)\r\n .shiftLeft(32)\r\n .add(bigint(low))\r\n .toString(10)\r\n}\r\n\r\nexport function intToUint(val) {\r\n val = parseInt(val)\r\n if (val < 0) {\r\n val = val + 4294967296\r\n }\r\n return val\r\n}\r\n\r\nexport function uintToInt(val) {\r\n if (val > 2147483647) {\r\n val = val - 4294967296\r\n }\r\n return val\r\n}\r\n\r\nexport function sha1HashSync(bytes) {\r\n // console.log(dT(), 'SHA-1 hash start', bytes.byteLength || bytes.length)\r\n const hashBytes = rushaInstance.rawDigest(bytes).buffer\r\n // console.log(dT(), 'SHA-1 hash finish')\r\n\r\n return hashBytes\r\n}\r\n\r\nexport function sha1BytesSync(bytes) {\r\n return bytesFromArrayBuffer(sha1HashSync(bytes))\r\n}\r\n\r\nexport function sha256HashSync(bytes) {\r\n // console.log(dT(), 'SHA-2 hash start', bytes.byteLength || bytes.length)\r\n const hashWords = CryptoJS.SHA256(bytesToWords(bytes))\r\n // console.log(dT(), 'SHA-2 hash finish')\r\n\r\n const hashBytes = bytesFromWords(hashWords)\r\n\r\n return hashBytes\r\n}\r\n\r\nexport function rsaEncrypt(publicKey, bytes) {\r\n bytes = addPadding(bytes, 255)\r\n\r\n // console.log('RSA encrypt start')\r\n const N = new BigInteger(publicKey.modulus, 16)\r\n const E = new BigInteger(publicKey.exponent, 16)\r\n const X = new BigInteger(bytes)\r\n const encryptedBigInt = X.modPowInt(E, N),\r\n encryptedBytes = bytesFromBigInt(encryptedBigInt, 256)\r\n // console.log('RSA encrypt finish')\r\n\r\n return encryptedBytes\r\n}\r\n\r\nexport function addPadding(bytes, blockSize, zeroes) {\r\n blockSize = blockSize || 16\r\n const len = bytes.byteLength || bytes.length\r\n const needPadding = blockSize - (len % blockSize)\r\n if (needPadding > 0 && needPadding < blockSize) {\r\n const padding = new Array(needPadding)\r\n if (zeroes) {\r\n for (let i = 0; i < needPadding; i++) {\r\n padding[i] = 0\r\n }\r\n } else {\r\n (new SecureRandom()).nextBytes(padding)\r\n }\r\n\r\n if (bytes instanceof ArrayBuffer) {\r\n bytes = bufferConcat(bytes, padding)\r\n } else {\r\n bytes = bytes.concat(padding)\r\n }\r\n }\r\n\r\n return bytes\r\n}\r\n\r\nexport function aesEncryptSync(bytes, keyBytes, ivBytes) {\r\n const len = bytes.byteLength || bytes.length\r\n\r\n // console.log(dT(), 'AES encrypt start', len/*, bytesToHex(keyBytes), bytesToHex(ivBytes)*/)\r\n bytes = addPadding(bytes)\r\n\r\n const encryptedWords = CryptoJS.AES.encrypt(bytesToWords(bytes), bytesToWords(keyBytes), {\r\n iv : bytesToWords(ivBytes),\r\n padding: CryptoJS.pad.NoPadding,\r\n mode : CryptoJS.mode.IGE\r\n }).ciphertext\r\n\r\n const encryptedBytes = bytesFromWords(encryptedWords)\r\n // console.log(dT(), 'AES encrypt finish')\r\n\r\n return encryptedBytes\r\n}\r\n\r\nexport function aesDecryptSync(encryptedBytes, keyBytes, ivBytes) {\r\n\r\n // console.log(dT(), 'AES decrypt start', encryptedBytes.length)\r\n const decryptedWords = CryptoJS.AES.decrypt({ ciphertext: bytesToWords(encryptedBytes) }, bytesToWords(keyBytes), {\r\n iv : bytesToWords(ivBytes),\r\n padding: CryptoJS.pad.NoPadding,\r\n mode : CryptoJS.mode.IGE\r\n })\r\n\r\n const bytes = bytesFromWords(decryptedWords)\r\n // console.log(dT(), 'AES decrypt finish')\r\n\r\n return bytes\r\n}\r\n\r\nexport function gzipUncompress(bytes) {\r\n // console.log('Gzip uncompress start')\r\n const result = inflate(bytes)\r\n // console.log('Gzip uncompress finish')\r\n return result\r\n}\r\n\r\nexport function nextRandomInt(maxValue) {\r\n return Math.floor(Math.random() * maxValue)\r\n}\r\n\r\n// const bytesToInt = bytes => Int(bytesToHex(bytes), 16)\r\n// const bytesFromInt = int => bytesFromHex(int.toString(16))\r\n\r\nexport function pqPrimeFactorization(pqBytes) {\r\n const what = new BigInteger(pqBytes)\r\n // const whatInt = bytesToInt(pqBytes)\r\n // const whatBn = new BN(bytesToHex(pqBytes), 16)\r\n let result = false\r\n // let intRes = []\r\n // const bnRes = []\r\n // console.log(dT(), 'PQ start', pqBytes, what.toString(16), what.bitLength())\r\n\r\n // try {\r\n // console.time('pq leemon')\r\n // const toHex = bytesToHex(pqBytes)\r\n result = pqPrimeLeemon(str2bigInt(what.toString(16), 16, Math.ceil(64 / bpe) + 1))\r\n // console.timeEnd('pq leemon')\r\n // } catch (e) {\r\n // console.error('Pq leemon Exception', e)\r\n // }\r\n\r\n /*if (result === false && what.bitLength() <= 64) {\r\n // console.time('PQ long')\r\n try {\r\n result = pqPrimeLong(goog.math.Long.fromString(what.toString(16), 16))\r\n } catch (e) {\r\n console.error('Pq long Exception', e)\r\n }\r\n // console.timeEnd('PQ long')\r\n }*/\r\n // console.log(result)\r\n\r\n // if (result === false) {\r\n // console.time('pq BigInt')\r\n // intRes = pqPrimeJsbn(what)\r\n // console.timeEnd('pq BigInt')\r\n\r\n // console.time('pq bn')\r\n // bnRes = pqPrimeBN(whatBn)\r\n // console.timeEnd('pq bn')\r\n // }\r\n // console.log(...result, ...bnRes)\r\n // console.log(dT(), 'PQ finish')\r\n\r\n return result\r\n //intRes//result//bnRes\r\n}\r\n\r\n/*export function pqPrimeBN(what) {\r\n let it = 0,\r\n g\r\n const nOne = new BN(1)\r\n for (let i = 0; i < 3; i++) {\r\n const q = (nextRandomInt(128) & 15) + 17\r\n let x = new BN(nextRandomInt(1000000000) + 1)\r\n let y = x.clone()\r\n const lim = 1 << (i + 18)\r\n\r\n for (let j = 1; j < lim; j++) {\r\n ++it\r\n let a = x.clone()\r\n let b = x.clone()\r\n let c = new BN(q)\r\n\r\n while (!b.isZero()) {\r\n if (!b.and(nOne).isZero()) {\r\n c = c.add(a)\r\n if (c.gt(what)) {\r\n c = c.sub(what)\r\n }\r\n }\r\n a = a.add(a)\r\n if (a.gt(what)) {\r\n a = a.sub(what)\r\n }\r\n b = b.shrn(1)\r\n }\r\n\r\n x = c.clone()\r\n const z = x.lt(y)\r\n ? y.sub(x)\r\n : x.sub(y)\r\n g = z.gcd(what)\r\n if (!g.eq(nOne)) {\r\n break\r\n }\r\n if ((j & (j - 1)) == 0) {\r\n y = x.clone()\r\n }\r\n }\r\n if (g.gt(nOne)) {\r\n break\r\n }\r\n }\r\n\r\n let f = what.div(g), P, Q\r\n\r\n if (g.gt(f)) {\r\n P = f\r\n Q = g\r\n } else {\r\n P = g\r\n Q = f\r\n }\r\n\r\n return [P.toArray(), Q.toArray(), it]\r\n}*/\r\n\r\nexport function pqPrimeJsbn(what) {\r\n let it = 0,\r\n g\r\n for (let i = 0; i < 3; i++) {\r\n const q = (nextRandomInt(128) & 15) + 17\r\n let x = bigint(nextRandomInt(1000000000) + 1)\r\n let y = x.clone()\r\n const lim = 1 << (i + 18)\r\n\r\n for (let j = 1; j < lim; j++) {\r\n ++it\r\n let a = x.clone()\r\n let b = x.clone()\r\n let c = bigint(q)\r\n\r\n while (!b.equals(BigInteger.ZERO)) {\r\n if (!b.and(BigInteger.ONE).equals(BigInteger.ZERO)) {\r\n c = c.add(a)\r\n if (c.compareTo(what) > 0) {\r\n c = c.subtract(what)\r\n }\r\n }\r\n a = a.add(a)\r\n if (a.compareTo(what) > 0) {\r\n a = a.subtract(what)\r\n }\r\n b = b.shiftRight(1)\r\n }\r\n\r\n x = c.clone()\r\n const z = x.compareTo(y) < 0 ? y.subtract(x) : x.subtract(y)\r\n g = z.gcd(what)\r\n if (!g.equals(BigInteger.ONE)) {\r\n break\r\n }\r\n if ((j & (j - 1)) == 0) {\r\n y = x.clone()\r\n }\r\n }\r\n if (g.compareTo(BigInteger.ONE) > 0) {\r\n break\r\n }\r\n }\r\n\r\n let f = what.divide(g), P, Q\r\n\r\n if (g.compareTo(f) > 0) {\r\n P = f\r\n Q = g\r\n } else {\r\n P = g\r\n Q = f\r\n }\r\n\r\n return [bytesFromBigInt(P), bytesFromBigInt(Q), it]\r\n}\r\n\r\n/*export function pqPrimeBigInteger(what) {\r\n let it = 0,\r\n g\r\n for (let i = 0; i < 3; i++) {\r\n const q = (nextRandomInt(128) & 15) + 17\r\n let x = Int(nextRandomInt(1000000000) + 1)\r\n let y = Int(x)\r\n const lim = 1 << (i + 18)\r\n\r\n for (let j = 1; j < lim; j++) {\r\n ++it\r\n let a = Int(x)\r\n let b = Int(x)\r\n let c = Int(q)\r\n\r\n while (!b.isZero()) {\r\n if (!b.and(Int.one).isZero()) {\r\n c = c.add(a)\r\n if (c.greater(what))\r\n c = c.subtract(what)\r\n }\r\n a = a.add(a)\r\n if (a.greater(what))\r\n a = a.subtract(what)\r\n b = b.shiftRight(1)\r\n }\r\n\r\n x = Int(c)\r\n const z = x.lesser(y)\r\n ? y.subtract(x)\r\n : x.subtract(y)\r\n g = Int.gcd(z, what)\r\n if (g.notEquals(Int.one))\r\n break\r\n if ((j & (j - 1)) == 0)\r\n y = Int(x)\r\n }\r\n if (g.greater(Int.one))\r\n break\r\n }\r\n\r\n const f = what.divide(g)\r\n let P, Q\r\n\r\n if (g.greater(f)) {\r\n P = f\r\n Q = g\r\n } else {\r\n P = g\r\n Q = f\r\n }\r\n\r\n return [bytesFromInt(P), bytesFromInt(Q), it]\r\n}*/\r\n\r\n/*export function gcdLong(a, b) {\r\n while (a.notEquals(goog.math.Long.ZERO) && b.notEquals(goog.math.Long.ZERO)) {\r\n while (b.and(goog.math.Long.ONE).equals(goog.math.Long.ZERO)) {\r\n b = b.shiftRight(1)\r\n }\r\n while (a.and(goog.math.Long.ONE).equals(goog.math.Long.ZERO)) {\r\n a = a.shiftRight(1)\r\n }\r\n if (a.compare(b) > 0) {\r\n a = a.subtract(b)\r\n } else {\r\n b = b.subtract(a)\r\n }\r\n }\r\n return b.equals(goog.math.Long.ZERO) ? a : b\r\n}\r\n\r\nexport function pqPrimeLong(what) {\r\n let it = 0,\r\n g\r\n for (let i = 0; i < 3; i++) {\r\n const q = goog.math.Long.fromInt((nextRandomInt(128) & 15) + 17)\r\n let x = goog.math.Long.fromInt(nextRandomInt(1000000000) + 1)\r\n let y = x\r\n const lim = 1 << (i + 18)\r\n\r\n for (let j = 1; j < lim; j++) {\r\n ++it\r\n let a = x\r\n let b = x\r\n let c = q\r\n\r\n while (b.notEquals(goog.math.Long.ZERO)) {\r\n if (b.and(goog.math.Long.ONE).notEquals(goog.math.Long.ZERO)) {\r\n c = c.add(a)\r\n if (c.compare(what) > 0) {\r\n c = c.subtract(what)\r\n }\r\n }\r\n a = a.add(a)\r\n if (a.compare(what) > 0) {\r\n a = a.subtract(what)\r\n }\r\n b = b.shiftRight(1)\r\n }\r\n\r\n x = c\r\n const z = x.compare(y) < 0 ? y.subtract(x) : x.subtract(y)\r\n g = gcdLong(z, what)\r\n if (g.notEquals(goog.math.Long.ONE)) {\r\n break\r\n }\r\n if ((j & (j - 1)) == 0) {\r\n y = x\r\n }\r\n }\r\n if (g.compare(goog.math.Long.ONE) > 0) {\r\n break\r\n }\r\n }\r\n\r\n let f = what.div(g), P, Q\r\n\r\n if (g.compare(f) > 0) {\r\n P = f\r\n Q = g\r\n } else {\r\n P = g\r\n Q = f\r\n }\r\n\r\n return [bytesFromHex(P.toString(16)), bytesFromHex(Q.toString(16)), it]\r\n}*/\r\n\r\n/*//is bigint x equal to integer y?\r\n//y must have less than bpe bits\r\nfunction equalsInt(x,y) {\r\n var i;\r\n if (x[0]!=y)\r\n return 0;\r\n for (i=1;i<x.length;i++)\r\n if (x[i])\r\n return 0;\r\n return 1;\r\n}*/\r\n\r\nexport function pqPrimeLeemon(what) {\r\n const minBits = 64\r\n const minLen = Math.ceil(minBits / bpe) + 1\r\n let it = 0\r\n let q, lim\r\n const a = new Array(minLen)\r\n const b = new Array(minLen)\r\n const c = new Array(minLen)\r\n const g = new Array(minLen)\r\n const z = new Array(minLen)\r\n const x = new Array(minLen)\r\n const y = new Array(minLen)\r\n\r\n for (let i = 0; i < 3; i++) {\r\n q = (nextRandomInt(128) & 15) + 17\r\n copyInt_(x, nextRandomInt(1000000000) + 1)\r\n copy_(y, x)\r\n lim = 1 << (i + 18)\r\n\r\n for (let j = 1; j < lim; j++) {\r\n ++it\r\n copy_(a, x)\r\n copy_(b, x)\r\n copyInt_(c, q)\r\n\r\n while (!isZero(b)) {\r\n if (b[0] & 1) {\r\n add_(c, a)\r\n if (greater(c, what)) {\r\n sub_(c, what)\r\n }\r\n }\r\n add_(a, a)\r\n if (greater(a, what)) {\r\n sub_(a, what)\r\n }\r\n rightShift_(b, 1)\r\n }\r\n\r\n copy_(x, c)\r\n if (greater(x, y)) {\r\n copy_(z, x)\r\n sub_(z, y)\r\n } else {\r\n copy_(z, y)\r\n sub_(z, x)\r\n }\r\n eGCD_(z, what, g, a, b)\r\n if (!equalsInt(g, 1)) {\r\n break\r\n }\r\n if ((j & (j - 1)) === 0) {\r\n copy_(y, x)\r\n }\r\n }\r\n if (greater(g, one)) {\r\n break\r\n }\r\n }\r\n\r\n divide_(what, g, x, y)\r\n\r\n const [P, Q] =\r\n greater(g, x)\r\n ? [x, g]\r\n : [g, x]\r\n\r\n // console.log(dT(), 'done', bigInt2str(what, 10), bigInt2str(P, 10), bigInt2str(Q, 10))\r\n\r\n return [bytesFromLeemonBigInt(P), bytesFromLeemonBigInt(Q), it]\r\n}\r\n\r\nexport function bytesModPow(x, y, m) {\r\n try {\r\n const xBigInt = str2bigInt(bytesToHex(x), 16)\r\n const yBigInt = str2bigInt(bytesToHex(y), 16)\r\n const mBigInt = str2bigInt(bytesToHex(m), 16)\r\n const resBigInt = powMod(xBigInt, yBigInt, mBigInt)\r\n\r\n return bytesFromHex(bigInt2str(resBigInt, 16))\r\n } catch (e) {\r\n console.error('mod pow error', e)\r\n }\r\n\r\n return bytesFromBigInt(new BigInteger(x).modPow(new BigInteger(y), new BigInteger(m)), 256)\r\n}\r\n\r\n"]}
\No newline at end of file