UNPKG

24 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/bin.js"],"names":["bigint","bigStringInt","bytesToHex","bytesFromHex","bytesCmp","bytesXor","bytesToWords","bytesFromWords","bytesFromLeemonBigInt","bytesToArrayBuffer","convertToArrayBuffer","convertToUint8Array","convertToByteArray","bytesFromArrayBuffer","bufferConcat","longToInts","longToBytes","lshift32","intToUint","uintToInt","sha1HashSync","sha1BytesSync","sha256HashSync","rsaEncrypt","addPadding","aesEncryptSync","aesDecryptSync","gzipUncompress","nextRandomInt","pqPrimeFactorization","pqPrimeLeemon","bytesModPow","CryptoJSlib","CryptoJS","rushaInstance","num","toString","strNum","strDecToHex","str","bytes","arr","i","length","push","join","hexString","len","start","parseInt","charAt","substr","bytes1","bytes2","ArrayBuffer","Uint8Array","words","lib","WordArray","init","wordArray","sigBytes","bigInt","b","buffer","undefined","byteLength","BYTES_PER_ELEMENT","Array","isArray","newBytes","byteView","from","buffer1","buffer2","l1","l2","tmp","set","dividerLem","sLong","lemNum","div","rem","resL","reverse","high","low","highNum","res","val","hashBytes","rawDigest","hashWords","SHA256","publicKey","N","modulus","E","exponent","X","encryptedBigInt","encryptedBytes","blockSize","zeroes","needPadding","padding","nextBytes","concat","keyBytes","ivBytes","encryptedWords","AES","encrypt","iv","pad","NoPadding","mode","IGE","ciphertext","decryptedWords","decrypt","result","maxValue","Math","floor","random","pqBytes","minSize","ceil","hex","lWhat","what","minBits","minLen","it","q","lim","a","c","g","z","x","y","j","P","Q","m","xBigInt","yBigInt","mBigInt","resBigInt"],"mappings":"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","file":"bin.js","sourcesContent":["import { toLower } from 'ramda'\r\nimport { BigInteger } from 'jsbn'\r\nimport Rusha from 'rusha'\r\nimport * as CryptoJSlib from '@goodmind/node-cryptojs-aes'\r\nconst { CryptoJS } = CryptoJSlib\r\nimport { inflate } from 'pako/lib/inflate'\r\n\r\n// import Timer from 'hirestime' //TODO remove in prod!\r\n\r\nimport random from './service/secure-random'\r\n\r\n\r\nimport { eGCD_, greater, divide_, str2bigInt, equalsInt,\r\n isZero, bigInt2str, copy_, copyInt_, rightShift_, addInt_,\r\n leftShift_, sub_, add_, powMod, bpe, one, int2bigInt } from './vendor/leemon'\r\n\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\n// export const rShift32 = str => {\r\n// const num = str2bigInt(str, 10, 0)\r\n// rightShift_(num, 32)\r\n// return bigInt2str(num, 10)\r\n// }\r\nexport const strDecToHex = str => toLower(\r\n bigInt2str(\r\n str2bigInt(str, 10, 0), 16\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 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\n\r\nexport function bytesFromLeemonBigInt(bigInt) {\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 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 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 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\n// const dividerBig = bigint(0x100000000)\r\nconst dividerLem = str2bigInt('100000000', 16, 4)\r\n\r\n// const printTimers = (timeL, timeB, a, b, n) => setTimeout(\r\n// () => console.log(`Timer L ${timeL} B ${timeB}`, ...a, ...b, n || ''),\r\n// 100)\r\n\r\nexport function longToInts(sLong) {\r\n /*const bigTime = Timer()\r\n const divRem = bigStringInt(sLong).divideAndRemainder(dividerBig)\r\n const divIntB = divRem[0].intValue()\r\n const remIntB = divRem[1].intValue()\r\n const resB = [\r\n intToUint(divIntB),\r\n intToUint(remIntB)\r\n ]\r\n const timeB = bigTime()*/\r\n\r\n // const lemTime = Timer()\r\n const lemNum = str2bigInt(sLong, 10, 6)\r\n const div = new Array(lemNum.length)\r\n const rem = new Array(lemNum.length)\r\n divide_(lemNum, dividerLem, div, rem)\r\n const resL = [\r\n ~~bigInt2str(div, 10),\r\n ~~bigInt2str(rem, 10)\r\n ]\r\n // const timeL = lemTime()\r\n\r\n // printTimers(timeL, timeB, resL, resB)\r\n return resL\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 lshift32(high, low) {\r\n const highNum = int2bigInt(high, 96, 0)\r\n leftShift_(highNum, 32)\r\n\r\n addInt_(highNum, low)\r\n const res = bigInt2str(highNum, 10)\r\n return res\r\n}\r\n\r\n// export function longFromLem(high, low) {\r\n// const highNum = int2bigInt(high, 96, 0)\r\n// leftShift_(highNum, 32)\r\n\r\n// addInt_(highNum, low)\r\n// const res = bigInt2str(highNum, 10)\r\n// return res\r\n// }\r\n\r\nexport function intToUint(val) {\r\n val = parseInt(val) //TODO PERF parseInt is a perfomance issue\r\n if (val < 0)\r\n val = val + 4294967296\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 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 const N = str2bigInt(publicKey.modulus, 16, 256)\r\n const E = str2bigInt(publicKey.exponent, 16, 256)\r\n const X = str2bigInt(bytesToHex(bytes), 16, 256)\r\n const encryptedBigInt = powMod(X, E, N),\r\n encryptedBytes = bytesFromHex(bigInt2str(encryptedBigInt, 16))\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 } else\r\n random.nextBytes(padding)\r\n\r\n bytes = bytes instanceof ArrayBuffer\r\n ? bufferConcat(bytes, padding)\r\n : bytes.concat(padding)\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\r\nexport function pqPrimeFactorization(pqBytes) {\r\n const minSize = Math.ceil(64 / bpe) + 1\r\n\r\n // const what = new BigInteger(pqBytes)\r\n const hex = bytesToHex(pqBytes)\r\n const lWhat = str2bigInt(hex, 16, minSize)\r\n const result = pqPrimeLeemon(lWhat)\r\n return result\r\n}\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 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}\r\n\r\n"]}
\No newline at end of file