UNPKG

38.1 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../source/bin.js"],"names":["bigint","bigStringInt","dHexDump","bytesToHex","bytesFromHex","bytesToBase64","uint6ToBase64","bytesCmp","bytesXor","bytesToWords","bytesFromWords","bytesFromBigInt","bytesFromLeemonBigInt","bytesToArrayBuffer","convertToArrayBuffer","convertToUint8Array","convertToByteArray","bytesFromArrayBuffer","bufferConcat","longToInts","longToBytes","longFromInts","intToUint","uintToInt","sha1HashSync","sha1BytesSync","sha256HashSync","rsaEncrypt","addPadding","aesEncryptSync","aesDecryptSync","gzipUncompress","nextRandomInt","pqPrimeFactorization","pqPrimeJsbn","pqPrimeLeemon","bytesModPow","CryptoJSlib","CryptoJS","rushaInstance","num","toString","strNum","bytes","arr","i","length","push","console","log","join","hexString","len","start","parseInt","charAt","substr","mod3","result","nLen","nUint24","nIdx","String","fromCharCode","replace","nUint6","bytes1","bytes2","ArrayBuffer","Uint8Array","words","lib","WordArray","init","wordArray","sigBytes","bigInt","toByteArray","padding","needPadding","concat","slice","str","b","buffer","undefined","byteLength","BYTES_PER_ELEMENT","Array","isArray","newBytes","byteView","from","buffer1","buffer2","l1","l2","tmp","set","sLong","divRem","divideAndRemainder","intValue","reverse","high","low","shiftLeft","add","val","hashBytes","rawDigest","hashWords","SHA256","publicKey","N","modulus","E","exponent","X","encryptedBigInt","modPowInt","encryptedBytes","blockSize","zeroes","nextBytes","keyBytes","ivBytes","encryptedWords","AES","encrypt","iv","pad","NoPadding","mode","IGE","ciphertext","decryptedWords","decrypt","maxValue","Math","floor","random","pqBytes","what","ceil","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","m","xBigInt","yBigInt","mBigInt","resBigInt","e","error","modPow"],"mappings":"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","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