@loaders.gl/crypto 3.1.0-alpha.4 → 3.1.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +5 -0
- package/dist/dist.min.js +2 -2
- package/dist/dist.min.js.map +7 -1
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/index.js +11 -11
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/algorithms/crc32.js +20 -26
- package/dist/es5/lib/algorithms/crc32.js.map +1 -1
- package/dist/es5/lib/algorithms/crc32c.js +21 -27
- package/dist/es5/lib/algorithms/crc32c.js.map +1 -1
- package/dist/es5/lib/algorithms/md5-wasm.js +25 -36
- package/dist/es5/lib/algorithms/md5-wasm.js.map +1 -1
- package/dist/es5/lib/crc32-hash.js +39 -185
- package/dist/es5/lib/crc32-hash.js.map +1 -1
- package/dist/es5/lib/crc32c-hash.js +38 -184
- package/dist/es5/lib/crc32c-hash.js.map +1 -1
- package/dist/es5/lib/crypto-hash.js +49 -225
- package/dist/es5/lib/crypto-hash.js.map +1 -1
- package/dist/es5/lib/hash.js +21 -175
- package/dist/es5/lib/hash.js.map +1 -1
- package/dist/es5/lib/md5-hash.js +13 -71
- package/dist/es5/lib/md5-hash.js.map +1 -1
- package/dist/es5/lib/node-hash.js +33 -181
- package/dist/es5/lib/node-hash.js.map +1 -1
- package/dist/es5/lib/sha256-hash.js +7 -33
- package/dist/es5/lib/sha256-hash.js.map +1 -1
- package/dist/es5/lib/utils/base64-utils.js +13 -13
- package/dist/es5/lib/utils/base64-utils.js.map +1 -1
- package/dist/es5/lib/utils/digest-utils.js +4 -5
- package/dist/es5/lib/utils/digest-utils.js.map +1 -1
- package/dist/es5/workers/worker.js +17 -55
- package/dist/es5/workers/worker.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/algorithms/crc32.js +3 -0
- package/dist/esm/lib/algorithms/crc32.js.map +1 -1
- package/dist/esm/lib/algorithms/crc32c.js +5 -0
- package/dist/esm/lib/algorithms/crc32c.js.map +1 -1
- package/dist/esm/lib/algorithms/md5-wasm.js.map +1 -1
- package/dist/esm/lib/md5-hash.js.map +1 -1
- package/dist/esm/lib/utils/base64-utils.js +1 -1
- package/dist/esm/lib/utils/base64-utils.js.map +1 -1
- package/dist/esm/lib/utils/digest-utils.js +5 -4
- package/dist/esm/lib/utils/digest-utils.js.map +1 -1
- package/dist/esm/workers/worker.js +1 -1
- package/dist/esm/workers/worker.js.map +1 -1
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/lib/algorithms/crc32.d.ts +10 -0
- package/dist/lib/algorithms/crc32.d.ts.map +1 -0
- package/dist/lib/algorithms/crc32.js +30 -0
- package/dist/lib/algorithms/crc32c.d.ts +11 -0
- package/dist/lib/algorithms/crc32c.d.ts.map +1 -0
- package/dist/lib/algorithms/crc32c.js +38 -0
- package/dist/lib/algorithms/md5-wasm.d.ts +2 -0
- package/dist/lib/algorithms/md5-wasm.d.ts.map +1 -0
- package/dist/lib/algorithms/md5-wasm.js +435 -0
- package/dist/lib/crc32-hash.d.ts +18 -0
- package/dist/lib/crc32-hash.d.ts.map +1 -0
- package/dist/lib/crc32-hash.js +47 -0
- package/dist/lib/crc32c-hash.d.ts +22 -0
- package/dist/lib/crc32c-hash.d.ts.map +1 -0
- package/dist/lib/crc32c-hash.js +51 -0
- package/dist/lib/crypto-hash.d.ts +32 -0
- package/dist/lib/crypto-hash.d.ts.map +1 -0
- package/dist/lib/crypto-hash.js +61 -0
- package/dist/lib/hash.d.ts +22 -0
- package/dist/lib/hash.d.ts.map +1 -0
- package/dist/lib/hash.js +29 -0
- package/dist/lib/md5-hash.d.ts +15 -0
- package/dist/lib/md5-hash.d.ts.map +1 -0
- package/dist/lib/md5-hash.js +32 -0
- package/dist/lib/node-hash.d.ts +28 -0
- package/dist/lib/node-hash.d.ts.map +1 -0
- package/dist/lib/node-hash.js +42 -0
- package/dist/lib/sha256-hash.d.ts +19 -0
- package/dist/lib/sha256-hash.d.ts.map +1 -0
- package/dist/lib/sha256-hash.js +14 -0
- package/dist/lib/utils/base64-utils.d.ts +6 -0
- package/dist/lib/utils/base64-utils.d.ts.map +1 -0
- package/dist/lib/utils/base64-utils.js +67 -0
- package/dist/lib/utils/digest-utils.d.ts +9 -0
- package/dist/lib/utils/digest-utils.d.ts.map +1 -0
- package/dist/lib/utils/digest-utils.js +27 -0
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/worker.js +2 -5069
- package/dist/worker.js.map +7 -1
- package/dist/workers/worker.d.ts +4 -0
- package/dist/workers/worker.d.ts.map +1 -0
- package/dist/workers/worker.js +23 -0
- package/package.json +7 -7
- package/src/lib/algorithms/{crc32.js → crc32.ts} +2 -0
- package/src/lib/algorithms/{crc32c.js → crc32c.ts} +3 -0
- package/src/lib/algorithms/{md5-wasm.js → md5-wasm.ts} +2 -2
- package/src/lib/md5-hash.ts +1 -0
- package/src/lib/utils/{base64-utils.js → base64-utils.ts} +3 -2
- package/src/lib/utils/digest-utils.ts +24 -0
- package/dist/es5/lib/utils/base64-utils.d.ts +0 -5
- package/dist/es5/lib/utils/digest-utils.d.ts +0 -6
- package/dist/esm/lib/utils/base64-utils.d.ts +0 -5
- package/dist/esm/lib/utils/digest-utils.d.ts +0 -6
- package/src/lib/utils/base64-utils.d.ts +0 -5
- package/src/lib/utils/digest-utils.d.ts +0 -6
- package/src/lib/utils/digest-utils.js +0 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/algorithms/md5-wasm.js"],"names":["atb","atob","Buffer","nodeATOB","identity","wasmB64","wasm","WebAssembly","str2AB","buffer","crypt","makeCrypt","biteSize","bounder","Math","floor","upperLimit","parmTypeErrStr","tooBigErrStr","console","log","md5WASM","data","mem","memView","importObj","imports","len","buff","thenFun","catchFun","result","endTime","md5JS","makeMD5JS","md5WA","makeMD5WA","returnObj","startTime","Date","getTime","fun","getThen","constructor","Uint8Array","ArrayBuffer","getCatch","TypeError","length","Error","Memory","initial","Uint32Array","instantiate","then","giterdone","obj","instance","exports","r","res","Boolean","err","loop","loops","getA","setA","getB","setB","getC","setC","getD","setD","getX","setX","message","m00","m01","m02","m03","m04","m05","m06","m07","m08","m09","m10","m11","m12","m13","m14","m15","aa","bb","cc","dd","m","k","qwerty","md5Used","a","b","c","d","i","l","bytesToWordsNewer","____","endian","s","t","n","bytes","words","j","b0","b1","b2","b3","mView","options","digestbytes","wordsToBytes","asBytes","bytesToHex","bytesToWords","str","buffView","charCodeAt","from","toString","x","base64map","rotl","Number","push","hex","join"],"mappings":"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","sourcesContent":["/* !\n * MD5 WebAssembly\n * https://github.com/briantbutton/md5-wasm\n * (c) 2020 Brian Todd Button\n * Released under the MIT license\n */\n/* eslint-disable */\n// @ts-nocheck\n\n// *-*=* *=*-* *-*=* *=*-* *-*=* *=*-* *-*=* *=*-* *-*=* *=*-* *-*=* *=*-*\n// This contains two functions designed to achieve the same thing\n// -> A WebAssembly function for larger files\n// -> A JavaScript function for the others\n//\nconst atb = typeof atob === 'function' ? atob : typeof Buffer === 'function' ? nodeATOB : identity,\n wasmB64 = atb(\n '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'\n ),\n wasm = WebAssembly && atb !== identity ? str2AB(wasmB64).buffer : false,\n crypt = makeCrypt(),\n biteSize = 240 * 16 * 16,\n bounder = Math.floor(biteSize * 16 * 1.066666667),\n upperLimit = 268435456 - 65536,\n parmTypeErrStr = 'Parameter must be Buffer, ArrayBuffer or Uint8Array',\n tooBigErrStr = 'Parameter exceeds max size of 255.9 Mbytes';\n\nif (!wasm) {\n console.log(\n 'WebAssembly not available or WASM module could not be decoded; md5WASM will fall back to JavaScript'\n );\n}\n\n// - - - - - - - - - - - - - - - - - - - - - - - - - - -\n// This returns a Promise-like object (I was farting around, so sue me)\n// which supports '.catch' and '.then'\nexport default function md5WASM(data) {\n var mem, memView, importObj, imports, len, buff, thenFun, catchFun, result, endTime;\n const md5JS = makeMD5JS(),\n md5WA = makeMD5WA(),\n returnObj = {},\n startTime = new Date().getTime();\n\n returnObj['then'] = function (fun) {\n thenFun = fun;\n getThen();\n return returnObj;\n };\n returnObj['catch'] = function (fun) {\n catchFun = fun;\n return returnObj;\n };\n\n // Sift the incoming parameter and the environment\n // If we are good, set buff\n if (true) {\n if (data && typeof data === 'object') {\n if (typeof Buffer === 'function' && data.constructor === Buffer) {\n buff = data;\n } else {\n if (data.constructor === Uint8Array || data.constructor === ArrayBuffer) {\n buff = data.constructor === ArrayBuffer ? new Uint8Array(data) : data;\n } else {\n getCatch(new TypeError(parmTypeErrStr));\n }\n }\n } else {\n getCatch(new TypeError(parmTypeErrStr));\n }\n }\n\n // - - - - - - - - - - - - - - - - - - - - - - - - - -\n // Make some choices based on the size of the incoming data\n // ~ Use WebAssembly or just JavaScript\n // ~ If Webassemly, allocate appropriate memory\n //\n if (buff) {\n len = buff.length;\n if (wasm && len > bounder) {\n if (len > upperLimit) {\n getCatch(new Error(tooBigErrStr));\n } else {\n mem = new WebAssembly.Memory({\n initial: len > 32000000 ? (len > 64000000 ? (len > 128000000 ? 4096 : 2048) : 1024) : 512\n });\n memView = new Uint32Array(mem.buffer);\n imports = {mem: mem, log: console.log};\n importObj = {imports};\n WebAssembly.instantiate(wasm, importObj).then(giterdone);\n }\n } else {\n getThen(md5JS(buff));\n }\n }\n return returnObj;\n\n function giterdone(obj) {\n getThen(md5WA(buff, obj.instance.exports, memView));\n }\n function getThen(r) {\n var res = Boolean(r) ? r : result;\n if (Boolean(r)) {\n endTime = new Date().getTime();\n }\n if (typeof thenFun === 'function') {\n if (Boolean(res)) {\n thenFun(res, endTime - startTime);\n thenFun = catchFun = null;\n }\n } else {\n if (Boolean(r)) {\n result = r;\n }\n }\n }\n function getCatch(err) {\n if (typeof catchFun === 'function') {\n catchFun(err);\n }\n }\n}\n\nfunction makeMD5WA() {\n var loop, loops;\n var getA, setA, getB, setB, getC, setC, getD, setD, getX, setX, memView;\n\n var md5WA = function (message) {\n var m00,\n m01,\n m02,\n m03,\n m04,\n m05,\n m06,\n m07,\n m08,\n m09,\n m10,\n m11,\n m12,\n m13,\n m14,\n m15,\n aa,\n bb,\n cc,\n dd,\n m,\n k;\n var qwerty = new Date().getTime();\n var md5Used = 0;\n\n var a = 1732584193,\n b = -271733879,\n c = -1732584194,\n d = 271733878,\n i = 0,\n l = message.length * 8,\n len;\n\n len = bytesToWordsNewer(message, memView);\n memView[l >>> 5] |= 0x80 << l % 32;\n memView[(((l + 64) >>> 9) << 4) + 14] = l;\n len = (((l + 64) >>> 9) << 4) + 15;\n m = memView;\n\n // console.log(\"first loop took \"+((new Date().getTime())-qwerty)+\"ms\");\n\n while (i < len) {\n if (len > i + bounder) {\n setA(a);\n setB(b);\n setC(c);\n setD(d);\n loops(biteSize);\n i = i + biteSize * 16;\n a = getA();\n b = getB();\n c = getC();\n d = getD();\n md5Used++;\n } else {\n aa = a;\n bb = b;\n cc = c;\n dd = d;\n m00 = m[i + 0] >>> 0;\n m01 = m[i + 1] >>> 0;\n m02 = m[i + 2] >>> 0;\n m03 = m[i + 3] >>> 0;\n m04 = m[i + 4] >>> 0;\n m05 = m[i + 5] >>> 0;\n m06 = m[i + 6] >>> 0;\n m07 = m[i + 7] >>> 0;\n m08 = m[i + 8] >>> 0;\n m09 = m[i + 9] >>> 0;\n m10 = m[i + 10] >>> 0;\n m11 = m[i + 11] >>> 0;\n m12 = m[i + 12] >>> 0;\n m13 = m[i + 13] >>> 0;\n m14 = m[i + 14] >>> 0;\n m15 = m[i + 15] >>> 0;\n\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m00 - 680876936) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m01 - 389564586) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m02 + 606105819) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m03 - 1044525330) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m04 - 176418897) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m05 + 1200080426) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m06 - 1473231341) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m07 - 45705983) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m08 + 1770035416) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m09 - 1958414417) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m10 - 42063) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m11 - 1990404162) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m12 + 1804603682) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m13 - 40341101) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m14 - 1502002290) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m15 + 1236535329) + c;\n\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m01 - 165796510) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m06 - 1069501632) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m11 + 643717713) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m00 - 373897302) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m05 - 701558691) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m10 + 38016083) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m15 - 660478335) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m04 - 405537848) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m09 + 568446438) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m14 - 1019803690) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m03 - 187363961) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m08 + 1163531501) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m13 - 1444681467) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m02 - 51403784) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m07 + 1735328473) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m12 - 1926607734) + c;\n\n a = ____(4, 28, a + (b ^ c ^ d) + m05 - 378558) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m08 - 2022574463) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m11 + 1839030562) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m14 - 35309556) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m01 - 1530992060) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m04 + 1272893353) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m07 - 155497632) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m10 - 1094730640) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m13 + 681279174) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m00 - 358537222) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m03 - 722521979) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m06 + 76029189) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m09 - 640364487) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m12 - 421815835) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m15 + 530742520) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m02 - 995338651) + c;\n\n a = ____(6, 26, a + (c ^ (b | ~d)) + m00 - 198630844) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m07 + 1126891415) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m14 - 1416354905) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m05 - 57434055) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m12 + 1700485571) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m03 - 1894986606) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m10 - 1051523) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m01 - 2054922799) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m08 + 1873313359) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m15 - 30611744) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m06 - 1560198380) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m13 + 1309151649) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m04 - 145523070) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m11 - 1120210379) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m02 + 718787259) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m09 - 343485551) + c;\n\n i = i + 16;\n a = (a + aa) >>> 0;\n b = (b + bb) >>> 0;\n c = (c + cc) >>> 0;\n d = (d + dd) >>> 0;\n }\n }\n\n // console.log(\"md5WA, elapsed=\"+((new Date().getTime())-qwerty)+(md5Used?\", WebAssembly called \"+md5Used+\" times\":\", WebAssembly not called\"));\n\n return crypt.endian([a, b, c, d]);\n\n function ____(s, t, n) {\n return (n << s) | (n >>> t);\n }\n\n // Convert a byte array to big-endian 32-bit words\n function bytesToWordsNewer(bytes, words) {\n var i = -1,\n l = Math.floor((bytes.length - 1) / 4),\n j = 0,\n b0,\n b1,\n b2,\n b3;\n while (l - 8 > i++) {\n j = i << 2;\n words[i] = bytes[j + 0] | (bytes[j + 1] << 8) | (bytes[j + 2] << 16) | (bytes[j + 3] << 24);\n }\n i--;\n while (l > i++) {\n j = i << 2;\n b0 = typeof bytes[j + 0] === 'undefined' ? 0 : bytes[j + 0];\n b1 = typeof bytes[j + 1] === 'undefined' ? 0 : bytes[j + 1];\n b2 = typeof bytes[j + 2] === 'undefined' ? 0 : bytes[j + 2];\n b3 = typeof bytes[j + 3] === 'undefined' ? 0 : bytes[j + 3];\n words[i] = b0 | (b1 << 8) | (b2 << 16) | (b3 << 24);\n }\n return l + 1;\n }\n };\n\n return function (message, exports, mView, options) {\n var digestbytes;\n loops = exports.loops;\n loop = exports.loop;\n getA = exports.getA;\n getB = exports.getB;\n getC = exports.getC;\n getD = exports.getD;\n getX = exports.getX;\n setA = exports.setA;\n setB = exports.setB;\n setC = exports.setC;\n setD = exports.setD;\n setX = exports.setX;\n memView = mView;\n digestbytes = crypt.wordsToBytes(md5WA(message));\n return options && options.asBytes ? digestbytes : crypt.bytesToHex(digestbytes);\n };\n}\n\nfunction makeMD5JS() {\n var md5JS = function (message, options) {\n var m00,\n m01,\n m02,\n m03,\n m04,\n m05,\n m06,\n m07,\n m08,\n m09,\n m10,\n m11,\n m12,\n m13,\n m14,\n m15,\n aa,\n bb,\n cc,\n dd,\n m;\n var qwerty = new Date().getTime();\n\n // console.log(\"md5 start\");\n\n var a = 1732584193,\n b = -271733879,\n c = -1732584194,\n d = 271733878,\n l = message.length * 8;\n\n m = crypt.bytesToWords(message);\n\n // Swap endian\n for (var j = 0; j < m.length; j++) {\n m[j] =\n (((m[j] << 8) | (m[j] >>> 24)) & 0x00ff00ff) | (((m[j] << 24) | (m[j] >>> 8)) & 0xff00ff00);\n }\n\n // Padding\n m[l >>> 5] |= 0x80 << l % 32;\n m[(((l + 64) >>> 9) << 4) + 14] = l;\n\n for (var i = 0; i < m.length; i += 16) {\n aa = a;\n bb = b;\n cc = c;\n dd = d;\n m00 = m[i + 0] >>> 0;\n m01 = m[i + 1] >>> 0;\n m02 = m[i + 2] >>> 0;\n m03 = m[i + 3] >>> 0;\n m04 = m[i + 4] >>> 0;\n m05 = m[i + 5] >>> 0;\n m06 = m[i + 6] >>> 0;\n m07 = m[i + 7] >>> 0;\n m08 = m[i + 8] >>> 0;\n m09 = m[i + 9] >>> 0;\n m10 = m[i + 10] >>> 0;\n m11 = m[i + 11] >>> 0;\n m12 = m[i + 12] >>> 0;\n m13 = m[i + 13] >>> 0;\n m14 = m[i + 14] >>> 0;\n m15 = m[i + 15] >>> 0;\n\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m00 - 680876936) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m01 - 389564586) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m02 + 606105819) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m03 - 1044525330) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m04 - 176418897) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m05 + 1200080426) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m06 - 1473231341) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m07 - 45705983) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m08 + 1770035416) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m09 - 1958414417) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m10 - 42063) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m11 - 1990404162) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m12 + 1804603682) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m13 - 40341101) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m14 - 1502002290) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m15 + 1236535329) + c;\n\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m01 - 165796510) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m06 - 1069501632) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m11 + 643717713) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m00 - 373897302) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m05 - 701558691) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m10 + 38016083) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m15 - 660478335) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m04 - 405537848) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m09 + 568446438) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m14 - 1019803690) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m03 - 187363961) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m08 + 1163531501) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m13 - 1444681467) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m02 - 51403784) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m07 + 1735328473) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m12 - 1926607734) + c;\n\n a = ____(4, 28, a + (b ^ c ^ d) + m05 - 378558) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m08 - 2022574463) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m11 + 1839030562) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m14 - 35309556) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m01 - 1530992060) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m04 + 1272893353) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m07 - 155497632) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m10 - 1094730640) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m13 + 681279174) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m00 - 358537222) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m03 - 722521979) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m06 + 76029189) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m09 - 640364487) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m12 - 421815835) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m15 + 530742520) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m02 - 995338651) + c;\n\n a = ____(6, 26, a + (c ^ (b | ~d)) + m00 - 198630844) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m07 + 1126891415) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m14 - 1416354905) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m05 - 57434055) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m12 + 1700485571) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m03 - 1894986606) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m10 - 1051523) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m01 - 2054922799) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m08 + 1873313359) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m15 - 30611744) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m06 - 1560198380) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m13 + 1309151649) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m04 - 145523070) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m11 - 1120210379) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m02 + 718787259) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m09 - 343485551) + c;\n\n a = (a + aa) >>> 0;\n b = (b + bb) >>> 0;\n c = (c + cc) >>> 0;\n d = (d + dd) >>> 0;\n }\n\n // console.log(\"md5JS, elapsed=\"+((new Date().getTime())-qwerty));\n\n return crypt.endian([a, b, c, d]);\n\n function ____(s, t, n) {\n return (n << s) | (n >>> t);\n }\n };\n\n return function (message, options) {\n var digestbytes = crypt.wordsToBytes(md5JS(message, options)),\n result = options && options.asBytes ? digestbytes : crypt.bytesToHex(digestbytes);\n return result;\n };\n}\nfunction str2AB(str) {\n var l,\n buff,\n buffView,\n i = -1;\n l = str.length - 1;\n buff = new ArrayBuffer(str.length);\n buffView = new Uint8Array(buff);\n while (l > i++) {\n buffView[i] = str.charCodeAt(i);\n }\n return buffView;\n}\nfunction nodeATOB(str) {\n return Buffer.from(str, 'base64').toString('binary');\n}\nfunction identity(x) {\n return x;\n}\n\nfunction makeCrypt() {\n var base64map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n return {\n rotl: function (n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n endian: function (n) {\n if (n.constructor == Number) {\n return (crypt.rotl(n, 8) & 0x00ff00ff) | (crypt.rotl(n, 24) & 0xff00ff00);\n }\n for (var i = 0; i < n.length; i++) n[i] = crypt.endian(n[i]);\n return n;\n },\n\n bytesToWords: function (bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - (b % 32));\n return words;\n },\n\n wordsToBytes: function (words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - (b % 32))) & 0xff);\n return bytes;\n },\n\n bytesToHex: function (bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xf).toString(16));\n }\n return hex.join('');\n }\n };\n}\n"],"file":"md5-wasm.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/algorithms/md5-wasm.ts"],"names":["atb","atob","Buffer","nodeATOB","identity","wasmB64","wasm","WebAssembly","str2AB","buffer","crypt","makeCrypt","biteSize","bounder","Math","floor","upperLimit","parmTypeErrStr","tooBigErrStr","console","log","md5WASM","data","mem","memView","importObj","imports","len","buff","thenFun","catchFun","result","endTime","md5JS","makeMD5JS","md5WA","makeMD5WA","returnObj","startTime","Date","getTime","fun","getThen","constructor","Uint8Array","ArrayBuffer","getCatch","TypeError","length","Error","Memory","initial","Uint32Array","instantiate","then","giterdone","obj","instance","exports","r","res","Boolean","err","loop","loops","getA","setA","getB","setB","getC","setC","getD","setD","getX","setX","message","m00","m01","m02","m03","m04","m05","m06","m07","m08","m09","m10","m11","m12","m13","m14","m15","aa","bb","cc","dd","m","k","qwerty","md5Used","a","b","c","d","i","l","bytesToWordsNewer","____","endian","s","t","n","bytes","words","j","b0","b1","b2","b3","mView","options","digestbytes","wordsToBytes","asBytes","bytesToHex","bytesToWords","str","buffView","charCodeAt","from","toString","x","base64map","rotl","Number","push","hex","join"],"mappings":"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","sourcesContent":["/* eslint-disable */\n// @ts-nocheck\n/* !\n * MD5 WebAssembly\n * https://github.com/briantbutton/md5-wasm\n * (c) 2020 Brian Todd Button\n * Released under the MIT license\n */\n\n// *-*=* *=*-* *-*=* *=*-* *-*=* *=*-* *-*=* *=*-* *-*=* *=*-* *-*=* *=*-*\n// This contains two functions designed to achieve the same thing\n// -> A WebAssembly function for larger files\n// -> A JavaScript function for the others\n//\nconst atb = typeof atob === 'function' ? atob : typeof Buffer === 'function' ? nodeATOB : identity,\n wasmB64 = atb(\n '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'\n ),\n wasm = WebAssembly && atb !== identity ? str2AB(wasmB64).buffer : false,\n crypt = makeCrypt(),\n biteSize = 240 * 16 * 16,\n bounder = Math.floor(biteSize * 16 * 1.066666667),\n upperLimit = 268435456 - 65536,\n parmTypeErrStr = 'Parameter must be Buffer, ArrayBuffer or Uint8Array',\n tooBigErrStr = 'Parameter exceeds max size of 255.9 Mbytes';\n\nif (!wasm) {\n console.log(\n 'WebAssembly not available or WASM module could not be decoded; md5WASM will fall back to JavaScript'\n );\n}\n\n// - - - - - - - - - - - - - - - - - - - - - - - - - - -\n// This returns a Promise-like object (I was farting around, so sue me)\n// which supports '.catch' and '.then'\nexport default function md5WASM(data) {\n var mem, memView, importObj, imports, len, buff, thenFun, catchFun, result, endTime;\n const md5JS = makeMD5JS(),\n md5WA = makeMD5WA(),\n returnObj = {},\n startTime = new Date().getTime();\n\n returnObj['then'] = function (fun) {\n thenFun = fun;\n getThen();\n return returnObj;\n };\n returnObj['catch'] = function (fun) {\n catchFun = fun;\n return returnObj;\n };\n\n // Sift the incoming parameter and the environment\n // If we are good, set buff\n if (true) {\n if (data && typeof data === 'object') {\n if (typeof Buffer === 'function' && data.constructor === Buffer) {\n buff = data;\n } else {\n if (data.constructor === Uint8Array || data.constructor === ArrayBuffer) {\n buff = data.constructor === ArrayBuffer ? new Uint8Array(data) : data;\n } else {\n getCatch(new TypeError(parmTypeErrStr));\n }\n }\n } else {\n getCatch(new TypeError(parmTypeErrStr));\n }\n }\n\n // - - - - - - - - - - - - - - - - - - - - - - - - - -\n // Make some choices based on the size of the incoming data\n // ~ Use WebAssembly or just JavaScript\n // ~ If Webassemly, allocate appropriate memory\n //\n if (buff) {\n len = buff.length;\n if (wasm && len > bounder) {\n if (len > upperLimit) {\n getCatch(new Error(tooBigErrStr));\n } else {\n mem = new WebAssembly.Memory({\n initial: len > 32000000 ? (len > 64000000 ? (len > 128000000 ? 4096 : 2048) : 1024) : 512\n });\n memView = new Uint32Array(mem.buffer);\n imports = {mem: mem, log: console.log};\n importObj = {imports};\n WebAssembly.instantiate(wasm, importObj).then(giterdone);\n }\n } else {\n getThen(md5JS(buff));\n }\n }\n return returnObj;\n\n function giterdone(obj) {\n getThen(md5WA(buff, obj.instance.exports, memView));\n }\n function getThen(r) {\n var res = Boolean(r) ? r : result;\n if (Boolean(r)) {\n endTime = new Date().getTime();\n }\n if (typeof thenFun === 'function') {\n if (Boolean(res)) {\n thenFun(res, endTime - startTime);\n thenFun = catchFun = null;\n }\n } else {\n if (Boolean(r)) {\n result = r;\n }\n }\n }\n function getCatch(err) {\n if (typeof catchFun === 'function') {\n catchFun(err);\n }\n }\n}\n\nfunction makeMD5WA() {\n var loop, loops;\n var getA, setA, getB, setB, getC, setC, getD, setD, getX, setX, memView;\n\n var md5WA = function (message) {\n var m00,\n m01,\n m02,\n m03,\n m04,\n m05,\n m06,\n m07,\n m08,\n m09,\n m10,\n m11,\n m12,\n m13,\n m14,\n m15,\n aa,\n bb,\n cc,\n dd,\n m,\n k;\n var qwerty = new Date().getTime();\n var md5Used = 0;\n\n var a = 1732584193,\n b = -271733879,\n c = -1732584194,\n d = 271733878,\n i = 0,\n l = message.length * 8,\n len;\n\n len = bytesToWordsNewer(message, memView);\n memView[l >>> 5] |= 0x80 << l % 32;\n memView[(((l + 64) >>> 9) << 4) + 14] = l;\n len = (((l + 64) >>> 9) << 4) + 15;\n m = memView;\n\n // console.log(\"first loop took \"+((new Date().getTime())-qwerty)+\"ms\");\n\n while (i < len) {\n if (len > i + bounder) {\n setA(a);\n setB(b);\n setC(c);\n setD(d);\n loops(biteSize);\n i = i + biteSize * 16;\n a = getA();\n b = getB();\n c = getC();\n d = getD();\n md5Used++;\n } else {\n aa = a;\n bb = b;\n cc = c;\n dd = d;\n m00 = m[i + 0] >>> 0;\n m01 = m[i + 1] >>> 0;\n m02 = m[i + 2] >>> 0;\n m03 = m[i + 3] >>> 0;\n m04 = m[i + 4] >>> 0;\n m05 = m[i + 5] >>> 0;\n m06 = m[i + 6] >>> 0;\n m07 = m[i + 7] >>> 0;\n m08 = m[i + 8] >>> 0;\n m09 = m[i + 9] >>> 0;\n m10 = m[i + 10] >>> 0;\n m11 = m[i + 11] >>> 0;\n m12 = m[i + 12] >>> 0;\n m13 = m[i + 13] >>> 0;\n m14 = m[i + 14] >>> 0;\n m15 = m[i + 15] >>> 0;\n\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m00 - 680876936) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m01 - 389564586) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m02 + 606105819) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m03 - 1044525330) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m04 - 176418897) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m05 + 1200080426) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m06 - 1473231341) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m07 - 45705983) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m08 + 1770035416) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m09 - 1958414417) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m10 - 42063) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m11 - 1990404162) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m12 + 1804603682) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m13 - 40341101) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m14 - 1502002290) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m15 + 1236535329) + c;\n\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m01 - 165796510) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m06 - 1069501632) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m11 + 643717713) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m00 - 373897302) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m05 - 701558691) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m10 + 38016083) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m15 - 660478335) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m04 - 405537848) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m09 + 568446438) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m14 - 1019803690) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m03 - 187363961) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m08 + 1163531501) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m13 - 1444681467) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m02 - 51403784) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m07 + 1735328473) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m12 - 1926607734) + c;\n\n a = ____(4, 28, a + (b ^ c ^ d) + m05 - 378558) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m08 - 2022574463) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m11 + 1839030562) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m14 - 35309556) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m01 - 1530992060) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m04 + 1272893353) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m07 - 155497632) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m10 - 1094730640) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m13 + 681279174) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m00 - 358537222) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m03 - 722521979) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m06 + 76029189) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m09 - 640364487) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m12 - 421815835) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m15 + 530742520) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m02 - 995338651) + c;\n\n a = ____(6, 26, a + (c ^ (b | ~d)) + m00 - 198630844) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m07 + 1126891415) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m14 - 1416354905) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m05 - 57434055) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m12 + 1700485571) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m03 - 1894986606) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m10 - 1051523) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m01 - 2054922799) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m08 + 1873313359) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m15 - 30611744) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m06 - 1560198380) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m13 + 1309151649) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m04 - 145523070) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m11 - 1120210379) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m02 + 718787259) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m09 - 343485551) + c;\n\n i = i + 16;\n a = (a + aa) >>> 0;\n b = (b + bb) >>> 0;\n c = (c + cc) >>> 0;\n d = (d + dd) >>> 0;\n }\n }\n\n // console.log(\"md5WA, elapsed=\"+((new Date().getTime())-qwerty)+(md5Used?\", WebAssembly called \"+md5Used+\" times\":\", WebAssembly not called\"));\n\n return crypt.endian([a, b, c, d]);\n\n function ____(s, t, n) {\n return (n << s) | (n >>> t);\n }\n\n // Convert a byte array to big-endian 32-bit words\n function bytesToWordsNewer(bytes, words) {\n var i = -1,\n l = Math.floor((bytes.length - 1) / 4),\n j = 0,\n b0,\n b1,\n b2,\n b3;\n while (l - 8 > i++) {\n j = i << 2;\n words[i] = bytes[j + 0] | (bytes[j + 1] << 8) | (bytes[j + 2] << 16) | (bytes[j + 3] << 24);\n }\n i--;\n while (l > i++) {\n j = i << 2;\n b0 = typeof bytes[j + 0] === 'undefined' ? 0 : bytes[j + 0];\n b1 = typeof bytes[j + 1] === 'undefined' ? 0 : bytes[j + 1];\n b2 = typeof bytes[j + 2] === 'undefined' ? 0 : bytes[j + 2];\n b3 = typeof bytes[j + 3] === 'undefined' ? 0 : bytes[j + 3];\n words[i] = b0 | (b1 << 8) | (b2 << 16) | (b3 << 24);\n }\n return l + 1;\n }\n };\n\n return function (message, exports, mView, options) {\n var digestbytes;\n loops = exports.loops;\n loop = exports.loop;\n getA = exports.getA;\n getB = exports.getB;\n getC = exports.getC;\n getD = exports.getD;\n getX = exports.getX;\n setA = exports.setA;\n setB = exports.setB;\n setC = exports.setC;\n setD = exports.setD;\n setX = exports.setX;\n memView = mView;\n digestbytes = crypt.wordsToBytes(md5WA(message));\n return options && options.asBytes ? digestbytes : crypt.bytesToHex(digestbytes);\n };\n}\n\nfunction makeMD5JS() {\n var md5JS = function (message, options) {\n var m00,\n m01,\n m02,\n m03,\n m04,\n m05,\n m06,\n m07,\n m08,\n m09,\n m10,\n m11,\n m12,\n m13,\n m14,\n m15,\n aa,\n bb,\n cc,\n dd,\n m;\n var qwerty = new Date().getTime();\n\n // console.log(\"md5 start\");\n\n var a = 1732584193,\n b = -271733879,\n c = -1732584194,\n d = 271733878,\n l = message.length * 8;\n\n m = crypt.bytesToWords(message);\n\n // Swap endian\n for (var j = 0; j < m.length; j++) {\n m[j] =\n (((m[j] << 8) | (m[j] >>> 24)) & 0x00ff00ff) | (((m[j] << 24) | (m[j] >>> 8)) & 0xff00ff00);\n }\n\n // Padding\n m[l >>> 5] |= 0x80 << l % 32;\n m[(((l + 64) >>> 9) << 4) + 14] = l;\n\n for (var i = 0; i < m.length; i += 16) {\n aa = a;\n bb = b;\n cc = c;\n dd = d;\n m00 = m[i + 0] >>> 0;\n m01 = m[i + 1] >>> 0;\n m02 = m[i + 2] >>> 0;\n m03 = m[i + 3] >>> 0;\n m04 = m[i + 4] >>> 0;\n m05 = m[i + 5] >>> 0;\n m06 = m[i + 6] >>> 0;\n m07 = m[i + 7] >>> 0;\n m08 = m[i + 8] >>> 0;\n m09 = m[i + 9] >>> 0;\n m10 = m[i + 10] >>> 0;\n m11 = m[i + 11] >>> 0;\n m12 = m[i + 12] >>> 0;\n m13 = m[i + 13] >>> 0;\n m14 = m[i + 14] >>> 0;\n m15 = m[i + 15] >>> 0;\n\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m00 - 680876936) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m01 - 389564586) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m02 + 606105819) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m03 - 1044525330) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m04 - 176418897) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m05 + 1200080426) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m06 - 1473231341) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m07 - 45705983) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m08 + 1770035416) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m09 - 1958414417) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m10 - 42063) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m11 - 1990404162) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m12 + 1804603682) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m13 - 40341101) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m14 - 1502002290) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m15 + 1236535329) + c;\n\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m01 - 165796510) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m06 - 1069501632) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m11 + 643717713) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m00 - 373897302) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m05 - 701558691) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m10 + 38016083) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m15 - 660478335) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m04 - 405537848) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m09 + 568446438) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m14 - 1019803690) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m03 - 187363961) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m08 + 1163531501) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m13 - 1444681467) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m02 - 51403784) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m07 + 1735328473) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m12 - 1926607734) + c;\n\n a = ____(4, 28, a + (b ^ c ^ d) + m05 - 378558) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m08 - 2022574463) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m11 + 1839030562) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m14 - 35309556) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m01 - 1530992060) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m04 + 1272893353) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m07 - 155497632) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m10 - 1094730640) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m13 + 681279174) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m00 - 358537222) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m03 - 722521979) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m06 + 76029189) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m09 - 640364487) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m12 - 421815835) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m15 + 530742520) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m02 - 995338651) + c;\n\n a = ____(6, 26, a + (c ^ (b | ~d)) + m00 - 198630844) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m07 + 1126891415) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m14 - 1416354905) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m05 - 57434055) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m12 + 1700485571) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m03 - 1894986606) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m10 - 1051523) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m01 - 2054922799) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m08 + 1873313359) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m15 - 30611744) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m06 - 1560198380) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m13 + 1309151649) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m04 - 145523070) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m11 - 1120210379) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m02 + 718787259) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m09 - 343485551) + c;\n\n a = (a + aa) >>> 0;\n b = (b + bb) >>> 0;\n c = (c + cc) >>> 0;\n d = (d + dd) >>> 0;\n }\n\n // console.log(\"md5JS, elapsed=\"+((new Date().getTime())-qwerty));\n\n return crypt.endian([a, b, c, d]);\n\n function ____(s, t, n) {\n return (n << s) | (n >>> t);\n }\n };\n\n return function (message, options) {\n var digestbytes = crypt.wordsToBytes(md5JS(message, options)),\n result = options && options.asBytes ? digestbytes : crypt.bytesToHex(digestbytes);\n return result;\n };\n}\nfunction str2AB(str) {\n var l,\n buff,\n buffView,\n i = -1;\n l = str.length - 1;\n buff = new ArrayBuffer(str.length);\n buffView = new Uint8Array(buff);\n while (l > i++) {\n buffView[i] = str.charCodeAt(i);\n }\n return buffView;\n}\nfunction nodeATOB(str) {\n return Buffer.from(str, 'base64').toString('binary');\n}\nfunction identity(x) {\n return x;\n}\n\nfunction makeCrypt() {\n var base64map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n return {\n rotl: function (n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n endian: function (n) {\n if (n.constructor == Number) {\n return (crypt.rotl(n, 8) & 0x00ff00ff) | (crypt.rotl(n, 24) & 0xff00ff00);\n }\n for (var i = 0; i < n.length; i++) n[i] = crypt.endian(n[i]);\n return n;\n },\n\n bytesToWords: function (bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - (b % 32));\n return words;\n },\n\n wordsToBytes: function (words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - (b % 32))) & 0xff);\n return bytes;\n },\n\n bytesToHex: function (bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xf).toString(16));\n }\n return hex.join('');\n }\n };\n}\n"],"file":"md5-wasm.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/md5-hash.ts"],"names":["Hash","md5WASM","hexToBase64","MD5Hash","constructor","options","hash","input","md5Promise","Promise","resolve","reject","then","catch","hex"],"mappings":";AACA,SAAQA,IAAR,QAAmB,QAAnB;AACA,OAAOC,OAAP,MAAoB,uBAApB;AACA,SAAQC,WAAR,QAA0B,sBAA1B;AAKA,OAAO,MAAMC,OAAN,SAAsBH,IAAtB,CAA2B;AAIhCI,EAAAA,WAAW,CAACC,OAAO,GAAG,EAAX,EAAe;AACxB;;AADwB,kCAHV,KAGU;;AAAA;;AAExB,SAAKA,OAAL,GAAeA,OAAf;AACD;;AAMS,QAAJC,IAAI,CAACC,KAAD,EAAsC;AAC9C,UAAMC,UAAU,GAAG,IAAIC,OAAJ,CAAoB,CAACC,OAAD,EAAUC,MAAV,
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/md5-hash.ts"],"names":["Hash","md5WASM","hexToBase64","MD5Hash","constructor","options","hash","input","md5Promise","Promise","resolve","reject","then","catch","hex"],"mappings":";AACA,SAAQA,IAAR,QAAmB,QAAnB;AACA,OAAOC,OAAP,MAAoB,uBAApB;AACA,SAAQC,WAAR,QAA0B,sBAA1B;AAKA,OAAO,MAAMC,OAAN,SAAsBH,IAAtB,CAA2B;AAIhCI,EAAAA,WAAW,CAACC,OAAO,GAAG,EAAX,EAAe;AACxB;;AADwB,kCAHV,KAGU;;AAAA;;AAExB,SAAKA,OAAL,GAAeA,OAAf;AACD;;AAMS,QAAJC,IAAI,CAACC,KAAD,EAAsC;AAC9C,UAAMC,UAAU,GAAG,IAAIC,OAAJ,CAAoB,CAACC,OAAD,EAAUC,MAAV,KAErCV,OAAO,CAACM,KAAD,CAAP,CAAeK,IAAf,CAAoBF,OAApB,EAA6BG,KAA7B,CAAmCF,MAAnC,CAFiB,CAAnB;AAIA,UAAMG,GAAG,GAAG,MAAMN,UAAlB;AACA,WAAON,WAAW,CAACY,GAAD,CAAlB;AACD;;AApB+B","sourcesContent":["// Fork of https://github.com/briantbutton/md5-wasm under MIT license\nimport {Hash} from './hash';\nimport md5WASM from './algorithms/md5-wasm';\nimport {hexToBase64} from './utils/digest-utils';\n\n/**\n * A transform that calculates MD5 hashes, passing data through\n */\nexport class MD5Hash extends Hash {\n readonly name = 'md5';\n readonly options;\n\n constructor(options = {}) {\n super();\n this.options = options;\n }\n\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n async hash(input: ArrayBuffer): Promise<string> {\n const md5Promise = new Promise<string>((resolve, reject) =>\n // @ts-expect-error\n md5WASM(input).then(resolve).catch(reject)\n );\n const hex = await md5Promise;\n return hexToBase64(hex);\n }\n}\n"],"file":"md5-hash.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/utils/base64-utils.
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/utils/base64-utils.ts"],"names":["toBase64","string","i","length","charCodeAt","out","groupsOfSix","undefined","j","btoaLookup","idx","String","fromCharCode"],"mappings":"AAIA,OAAO,SAASA,QAAT,CAAkBC,MAAlB,EAAiD;AAEtDA,EAAAA,MAAM,aAAMA,MAAN,CAAN;;AAGA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,MAAM,CAACE,MAA3B,EAAmCD,CAAC,EAApC,EAAwC;AACtC,QAAID,MAAM,CAACG,UAAP,CAAkBF,CAAlB,IAAuB,GAA3B,EAAgC;AAC9B,aAAO,IAAP;AACD;AACF;;AACD,MAAIG,GAAG,GAAG,EAAV;;AACA,OAAK,IAAIH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,MAAM,CAACE,MAA3B,EAAmCD,CAAC,IAAI,CAAxC,EAA2C;AAEzC,UAAMI,WAAmC,GAAG,CAACC,SAAD,EAAYA,SAAZ,EAAuBA,SAAvB,EAAkCA,SAAlC,CAA5C;AACAD,IAAAA,WAAW,CAAC,CAAD,CAAX,GAAiBL,MAAM,CAACG,UAAP,CAAkBF,CAAlB,KAAwB,CAAzC;AACAI,IAAAA,WAAW,CAAC,CAAD,CAAX,GAAiB,CAACL,MAAM,CAACG,UAAP,CAAkBF,CAAlB,IAAuB,IAAxB,KAAiC,CAAlD;;AACA,QAAID,MAAM,CAACE,MAAP,GAAgBD,CAAC,GAAG,CAAxB,EAA2B;AACzBI,MAAAA,WAAW,CAAC,CAAD,CAAX,IAAkBL,MAAM,CAACG,UAAP,CAAkBF,CAAC,GAAG,CAAtB,KAA4B,CAA9C;AACAI,MAAAA,WAAW,CAAC,CAAD,CAAX,GAAiB,CAACL,MAAM,CAACG,UAAP,CAAkBF,CAAC,GAAG,CAAtB,IAA2B,IAA5B,KAAqC,CAAtD;AACD;;AACD,QAAID,MAAM,CAACE,MAAP,GAAgBD,CAAC,GAAG,CAAxB,EAA2B;AAEzBI,MAAAA,WAAW,CAAC,CAAD,CAAX,IAAkBL,MAAM,CAACG,UAAP,CAAkBF,CAAC,GAAG,CAAtB,KAA4B,CAA9C;AACAI,MAAAA,WAAW,CAAC,CAAD,CAAX,GAAiBL,MAAM,CAACG,UAAP,CAAkBF,CAAC,GAAG,CAAtB,IAA2B,IAA5C;AACD;;AACD,SAAK,IAAIM,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,WAAW,CAACH,MAAhC,EAAwCK,CAAC,EAAzC,EAA6C;AAC3C,UAAI,OAAOF,WAAW,CAACE,CAAD,CAAlB,KAA0B,WAA9B,EAA2C;AACzCH,QAAAA,GAAG,IAAI,GAAP;AACD,OAFD,MAEO;AACLA,QAAAA,GAAG,IAAII,UAAU,CAACH,WAAW,CAACE,CAAD,CAAZ,CAAjB;AACD;AACF;AACF;;AACD,SAAOH,GAAP;AACD;;AAMD,SAASI,UAAT,CAAoBC,GAApB,EAAyB;AACvB,MAAIA,GAAG,GAAG,EAAV,EAAc;AACZ,WAAOC,MAAM,CAACC,YAAP,CAAoBF,GAAG,GAAG,IAAIN,UAAJ,CAAe,CAAf,CAA1B,CAAP;AACD;;AACD,MAAIM,GAAG,GAAG,EAAV,EAAc;AACZ,WAAOC,MAAM,CAACC,YAAP,CAAoBF,GAAG,GAAG,EAAN,GAAW,IAAIN,UAAJ,CAAe,CAAf,CAA/B,CAAP;AACD;;AACD,MAAIM,GAAG,GAAG,EAAV,EAAc;AACZ,WAAOC,MAAM,CAACC,YAAP,CAAoBF,GAAG,GAAG,EAAN,GAAW,IAAIN,UAAJ,CAAe,CAAf,CAA/B,CAAP;AACD;;AACD,MAAIM,GAAG,KAAK,EAAZ,EAAgB;AACd,WAAO,GAAP;AACD;;AACD,MAAIA,GAAG,KAAK,EAAZ,EAAgB;AACd,WAAO,GAAP;AACD;;AAED,SAAOH,SAAP;AACD","sourcesContent":["/**\n * `btoa()` polyfill as defined by the HTML and Infra specs, which mostly just references\n * RFC 4648.\n */\nexport function toBase64(string: string): string | null {\n // String conversion as required by Web IDL.\n string = `${string}`;\n // \"The btoa() method must throw an \"InvalidCharacterError\" DOMException if\n // data contains any character whose code point is greater than U+00FF.\"\n for (let i = 0; i < string.length; i++) {\n if (string.charCodeAt(i) > 255) {\n return null;\n }\n }\n let out = '';\n for (let i = 0; i < string.length; i += 3) {\n /** @type {Array[4]} */\n const groupsOfSix: (number | undefined)[] = [undefined, undefined, undefined, undefined];\n groupsOfSix[0] = string.charCodeAt(i) >> 2;\n groupsOfSix[1] = (string.charCodeAt(i) & 0x03) << 4;\n if (string.length > i + 1) {\n groupsOfSix[1] |= string.charCodeAt(i + 1) >> 4;\n groupsOfSix[2] = (string.charCodeAt(i + 1) & 0x0f) << 2;\n }\n if (string.length > i + 2) {\n // @ts-expect-error\n groupsOfSix[2] |= string.charCodeAt(i + 2) >> 6;\n groupsOfSix[3] = string.charCodeAt(i + 2) & 0x3f;\n }\n for (let j = 0; j < groupsOfSix.length; j++) {\n if (typeof groupsOfSix[j] === 'undefined') {\n out += '=';\n } else {\n out += btoaLookup(groupsOfSix[j]);\n }\n }\n }\n return out;\n}\n\n/**\n * Lookup table for btoa(), which converts a six-bit number into the\n * corresponding ASCII character.\n */\nfunction btoaLookup(idx) {\n if (idx < 26) {\n return String.fromCharCode(idx + 'A'.charCodeAt(0));\n }\n if (idx < 52) {\n return String.fromCharCode(idx - 26 + 'a'.charCodeAt(0));\n }\n if (idx < 62) {\n return String.fromCharCode(idx - 52 + '0'.charCodeAt(0));\n }\n if (idx === 62) {\n return '+';\n }\n if (idx === 63) {\n return '/';\n }\n // Throw INVALID_CHARACTER_ERR exception here -- won't be hit in the teststring.\n return undefined;\n}\n"],"file":"base64-utils.js"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { toBase64 } from './base64-utils';
|
|
2
2
|
export function toHex(cipher) {
|
|
3
3
|
const hexString = cipher.toString(16);
|
|
4
|
-
return hexString === '0' ?
|
|
4
|
+
return hexString === '0' ? "0".concat(hexString) : hexString;
|
|
5
5
|
}
|
|
6
6
|
export function hexToBase64(hexstring) {
|
|
7
7
|
if (hexstring.length % 2 !== 0) {
|
|
8
|
-
hexstring =
|
|
8
|
+
hexstring = "0".concat(hexstring);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
const
|
|
12
|
-
|
|
11
|
+
const matches = hexstring.match(/\w{2}/g) || [];
|
|
12
|
+
const string = matches.map(a => String.fromCharCode(parseInt(a, 16))).join('');
|
|
13
|
+
return toBase64(string) || '';
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=digest-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/utils/digest-utils.
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/utils/digest-utils.ts"],"names":["toBase64","toHex","cipher","hexString","toString","hexToBase64","hexstring","length","matches","match","string","map","a","String","fromCharCode","parseInt","join"],"mappings":"AAAA,SAAQA,QAAR,QAAuB,gBAAvB;AAKA,OAAO,SAASC,KAAT,CAAeC,MAAf,EAAuC;AAC5C,QAAMC,SAAS,GAAGD,MAAM,CAACE,QAAP,CAAgB,EAAhB,CAAlB;AACA,SAAOD,SAAS,KAAK,GAAd,cAAwBA,SAAxB,IAAsCA,SAA7C;AACD;AAKD,OAAO,SAASE,WAAT,CAAqBC,SAArB,EAAgD;AAGrD,MAAIA,SAAS,CAACC,MAAV,GAAmB,CAAnB,KAAyB,CAA7B,EAAgC;AAC9BD,IAAAA,SAAS,cAAOA,SAAP,CAAT;AACD;;AACD,QAAME,OAAO,GAAGF,SAAS,CAACG,KAAV,CAAgB,QAAhB,KAA6B,EAA7C;AACA,QAAMC,MAAM,GAAGF,OAAO,CAACG,GAAR,CAAaC,CAAD,IAAOC,MAAM,CAACC,YAAP,CAAoBC,QAAQ,CAACH,CAAD,EAAI,EAAJ,CAA5B,CAAnB,EAAyDI,IAAzD,CAA8D,EAA9D,CAAf;AAEA,SAAOhB,QAAQ,CAACU,MAAD,CAAR,IAAoB,EAA3B;AACD","sourcesContent":["import {toBase64} from './base64-utils';\n\n/**\n *\n */\nexport function toHex(cipher: number): string {\n const hexString = cipher.toString(16);\n return hexString === '0' ? `0${hexString}` : hexString;\n}\n\n/**\n * @see https://stackoverflow.com/questions/23190056/hex-to-base64-converter-for-javascript\n */\nexport function hexToBase64(hexstring: string): string {\n // Add leading zero to keep even count of digits\n // eg. f85d741 => 0f85d741\n if (hexstring.length % 2 !== 0) {\n hexstring = `0${hexstring}`;\n }\n const matches = hexstring.match(/\\w{2}/g) || [];\n const string = matches.map((a) => String.fromCharCode(parseInt(a, 16))).join('');\n // TODO - define how to handle failures\n return toBase64(string) || '';\n}\n"],"file":"digest-utils.js"}
|
|
@@ -19,7 +19,7 @@ createWorker(async (data, options = {}) => {
|
|
|
19
19
|
return await new MD5Hash(options).hash(data);
|
|
20
20
|
|
|
21
21
|
default:
|
|
22
|
-
throw new Error(
|
|
22
|
+
throw new Error("invalid option: ".concat(operation));
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
//# sourceMappingURL=worker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/workers/worker.ts"],"names":["createWorker","CRC32Hash","CRC32CHash","MD5Hash","data","options","operation","hash","Error"],"mappings":"AAAA,SAAQA,YAAR,QAA2B,0BAA3B;AACA,SAAQC,SAAR,QAAwB,mBAAxB;AACA,SAAQC,UAAR,QAAyB,oBAAzB;AACA,SAAQC,OAAR,QAAsB,iBAAtB;AAGA,SAAQF,SAAR,EAAmBC,UAAnB;AAEAF,YAAY,CAAC,OAAOI,IAAP,EAAaC,OAAO,GAAG,EAAvB,KAA8B;AAEzC,QAAM;AAACC,IAAAA;AAAD,MAAcD,OAApB;;AAEA,UAAQC,SAAR;AACE,SAAK,OAAL;AACE,aAAO,MAAM,IAAIL,SAAJ,CAAcI,OAAd,EAAuBE,IAAvB,CAA4BH,IAA5B,CAAb;;AACF,SAAK,QAAL;AACE,aAAO,MAAM,IAAIF,UAAJ,CAAeG,OAAf,EAAwBE,IAAxB,CAA6BH,IAA7B,CAAb;;AACF,SAAK,KAAL;AACE,aAAO,MAAM,IAAID,OAAJ,CAAYE,OAAZ,EAAqBE,IAArB,CAA0BH,IAA1B,CAAb;;AACF;AACE,YAAM,IAAII,KAAJ,
|
|
1
|
+
{"version":3,"sources":["../../../src/workers/worker.ts"],"names":["createWorker","CRC32Hash","CRC32CHash","MD5Hash","data","options","operation","hash","Error"],"mappings":"AAAA,SAAQA,YAAR,QAA2B,0BAA3B;AACA,SAAQC,SAAR,QAAwB,mBAAxB;AACA,SAAQC,UAAR,QAAyB,oBAAzB;AACA,SAAQC,OAAR,QAAsB,iBAAtB;AAGA,SAAQF,SAAR,EAAmBC,UAAnB;AAEAF,YAAY,CAAC,OAAOI,IAAP,EAAaC,OAAO,GAAG,EAAvB,KAA8B;AAEzC,QAAM;AAACC,IAAAA;AAAD,MAAcD,OAApB;;AAEA,UAAQC,SAAR;AACE,SAAK,OAAL;AACE,aAAO,MAAM,IAAIL,SAAJ,CAAcI,OAAd,EAAuBE,IAAvB,CAA4BH,IAA5B,CAAb;;AACF,SAAK,QAAL;AACE,aAAO,MAAM,IAAIF,UAAJ,CAAeG,OAAf,EAAwBE,IAAxB,CAA6BH,IAA7B,CAAb;;AACF,SAAK,KAAL;AACE,aAAO,MAAM,IAAID,OAAJ,CAAYE,OAAZ,EAAqBE,IAArB,CAA0BH,IAA1B,CAAb;;AACF;AACE,YAAM,IAAII,KAAJ,2BAA6BF,SAA7B,EAAN;AARJ;AAUD,CAdW,CAAZ","sourcesContent":["import {createWorker} from '@loaders.gl/worker-utils';\nimport {CRC32Hash} from '../lib/crc32-hash';\nimport {CRC32CHash} from '../lib/crc32c-hash';\nimport {MD5Hash} from '../lib/md5-hash';\n\n// Assuming we can bundle as module\nexport {CRC32Hash, CRC32CHash};\n\ncreateWorker(async (data, options = {}) => {\n // @ts-ignore\n const {operation} = options;\n\n switch (operation) {\n case 'crc32':\n return await new CRC32Hash(options).hash(data);\n case 'crc32c':\n return await new CRC32CHash(options).hash(data);\n case 'md5':\n return await new MD5Hash(options).hash(data);\n default:\n throw new Error(`invalid option: ${operation}`);\n }\n});\n"],"file":"worker.js"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export { CRC32Hash } from './lib/crc32-hash';
|
|
2
|
+
export { CRC32CHash } from './lib/crc32c-hash';
|
|
3
|
+
export { MD5Hash } from './lib/md5-hash';
|
|
4
|
+
export { SHA256Hash } from './lib/sha256-hash';
|
|
5
|
+
export { CryptoHash } from './lib/crypto-hash';
|
|
6
|
+
export { NodeHash } from './lib/node-hash';
|
|
7
|
+
export { hexToBase64 as _hexToBase64, toHex as _toHex } from './lib/utils/digest-utils';
|
|
8
|
+
/**
|
|
9
|
+
* Small, fast worker for CRC32, CRC32c and MD5 Hashes
|
|
10
|
+
*/
|
|
11
|
+
export declare const CryptoWorker: {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
module: string;
|
|
15
|
+
version: any;
|
|
16
|
+
options: {
|
|
17
|
+
crypto: {};
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Large worker for full complement of Cryptographic Hashes
|
|
22
|
+
* bundles the full crypto.js library
|
|
23
|
+
*/
|
|
24
|
+
export declare const CryptoJSWorker: {
|
|
25
|
+
id: string;
|
|
26
|
+
name: string;
|
|
27
|
+
module: string;
|
|
28
|
+
version: any;
|
|
29
|
+
options: {
|
|
30
|
+
cryptojs: {};
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAC,WAAW,IAAI,YAAY,EAAE,KAAK,IAAI,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAMtF;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;CAQxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;CAQ1B,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// import type {WorkerObject} from '@loaders.gl/worker-utils';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.CryptoJSWorker = exports.CryptoWorker = exports._toHex = exports._hexToBase64 = exports.NodeHash = exports.CryptoHash = exports.SHA256Hash = exports.MD5Hash = exports.CRC32CHash = exports.CRC32Hash = void 0;
|
|
5
|
+
var crc32_hash_1 = require("./lib/crc32-hash");
|
|
6
|
+
Object.defineProperty(exports, "CRC32Hash", { enumerable: true, get: function () { return crc32_hash_1.CRC32Hash; } });
|
|
7
|
+
var crc32c_hash_1 = require("./lib/crc32c-hash");
|
|
8
|
+
Object.defineProperty(exports, "CRC32CHash", { enumerable: true, get: function () { return crc32c_hash_1.CRC32CHash; } });
|
|
9
|
+
var md5_hash_1 = require("./lib/md5-hash");
|
|
10
|
+
Object.defineProperty(exports, "MD5Hash", { enumerable: true, get: function () { return md5_hash_1.MD5Hash; } });
|
|
11
|
+
var sha256_hash_1 = require("./lib/sha256-hash");
|
|
12
|
+
Object.defineProperty(exports, "SHA256Hash", { enumerable: true, get: function () { return sha256_hash_1.SHA256Hash; } });
|
|
13
|
+
var crypto_hash_1 = require("./lib/crypto-hash");
|
|
14
|
+
Object.defineProperty(exports, "CryptoHash", { enumerable: true, get: function () { return crypto_hash_1.CryptoHash; } });
|
|
15
|
+
var node_hash_1 = require("./lib/node-hash");
|
|
16
|
+
Object.defineProperty(exports, "NodeHash", { enumerable: true, get: function () { return node_hash_1.NodeHash; } });
|
|
17
|
+
var digest_utils_1 = require("./lib/utils/digest-utils");
|
|
18
|
+
Object.defineProperty(exports, "_hexToBase64", { enumerable: true, get: function () { return digest_utils_1.hexToBase64; } });
|
|
19
|
+
Object.defineProperty(exports, "_toHex", { enumerable: true, get: function () { return digest_utils_1.toHex; } });
|
|
20
|
+
// __VERSION__ is injected by babel-plugin-version-inline
|
|
21
|
+
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
22
|
+
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
|
|
23
|
+
/**
|
|
24
|
+
* Small, fast worker for CRC32, CRC32c and MD5 Hashes
|
|
25
|
+
*/
|
|
26
|
+
exports.CryptoWorker = {
|
|
27
|
+
id: 'crypto',
|
|
28
|
+
name: 'CRC32, CRC32c and MD5 Hashes',
|
|
29
|
+
module: 'crypto',
|
|
30
|
+
version: VERSION,
|
|
31
|
+
options: {
|
|
32
|
+
crypto: {}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Large worker for full complement of Cryptographic Hashes
|
|
37
|
+
* bundles the full crypto.js library
|
|
38
|
+
*/
|
|
39
|
+
exports.CryptoJSWorker = {
|
|
40
|
+
id: 'cryptojs',
|
|
41
|
+
name: 'Cryptographic Hashes',
|
|
42
|
+
module: 'crypto',
|
|
43
|
+
version: VERSION,
|
|
44
|
+
options: {
|
|
45
|
+
cryptojs: {}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crc32.d.ts","sourceRoot":"","sources":["../../../src/lib/algorithms/crc32.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,GAAG,EAAE,MAAM,CAAC;;IAMZ,MAAM,CAAC,WAAW,KAAA;IAUlB,QAAQ;CAIT"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Inspired by https://gist.github.com/wqli78/1330293/6d85cc967f32cccfcbad94ae7d088a3dcfc14bd9
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the CRC32 checksum of a string.
|
|
6
|
+
*/
|
|
7
|
+
class CRC32 {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.crc = ~0;
|
|
10
|
+
}
|
|
11
|
+
update(arrayBuffer) {
|
|
12
|
+
const CRC32_TABLE = getCRC32Table();
|
|
13
|
+
const byteArray = new Uint8Array(arrayBuffer);
|
|
14
|
+
for (let i = 0; i < byteArray.byteLength; i++) {
|
|
15
|
+
this.crc = (this.crc >>> 8) ^ CRC32_TABLE[(this.crc ^ byteArray[i]) & 0xff];
|
|
16
|
+
// strings: crc = (crc >>> 8) ^ CRC32TAB[(crc ^ str.charCodeAt(i)) & 0xff];
|
|
17
|
+
}
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
finalize() {
|
|
21
|
+
this.crc = Math.abs(this.crc ^ -1);
|
|
22
|
+
return this.crc;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.default = CRC32;
|
|
26
|
+
// Note: Using a typed array here doubles the speed of the cipher
|
|
27
|
+
const CRC32TAB = Uint32Array.of(0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d);
|
|
28
|
+
function getCRC32Table() {
|
|
29
|
+
return CRC32TAB;
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crc32c.d.ts","sourceRoot":"","sources":["../../../src/lib/algorithms/crc32c.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,OAAO,MAAC;IACR,GAAG,EAAE,MAAM,CAAC;gBAEA,OAAO,KAAK;IAKxB,MAAM,CAAC,WAAW,KAAA;IASlB,QAAQ;CAIT"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// From: https://gist.github.com/wqli78/1330293/6d85cc967f32cccfcbad94ae7d088a3dcfc14bd9
|
|
3
|
+
// CRC32 doesn't appear to be supported natively by crypto-js
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
// import {toBuffer} from '@loaders.gl/loader-utils';
|
|
6
|
+
// import {calculate as sse4calculate} from 'sse4_crc32';
|
|
7
|
+
/**
|
|
8
|
+
* Calculates the CRC32C checksum of a string.
|
|
9
|
+
*/
|
|
10
|
+
class CRC32C {
|
|
11
|
+
constructor(options = {}) {
|
|
12
|
+
this.options = options;
|
|
13
|
+
this.crc = ~0;
|
|
14
|
+
}
|
|
15
|
+
update(arrayBuffer) {
|
|
16
|
+
const byteArray = new Uint8Array(arrayBuffer);
|
|
17
|
+
const CRC32_TABLE = getCRC32Table();
|
|
18
|
+
for (let i = 0; i < byteArray.length; i++) {
|
|
19
|
+
this.crc = CRC32_TABLE[(this.crc ^ byteArray[i]) & 0xff] ^ (this.crc >>> 8);
|
|
20
|
+
}
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
finalize() {
|
|
24
|
+
this.crc = (this.crc ^ -1) >>> 0;
|
|
25
|
+
return this.crc;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.default = CRC32C;
|
|
29
|
+
/**
|
|
30
|
+
* This code is a manual javascript translation of c code generated by
|
|
31
|
+
* pycrc 0.7.1 (http://www.tty1.net/pycrc/). Command line used:
|
|
32
|
+
* './pycrc.py --model=crc-32c --generate c --algorithm=table-driven'
|
|
33
|
+
*/
|
|
34
|
+
// Note: Using a typed array here doubles the speed of the cipher
|
|
35
|
+
const CRC32C_TABLE = Int32Array.of(0x00000000, 0xf26b8303, 0xe13b70f7, 0x1350f3f4, 0xc79a971f, 0x35f1141c, 0x26a1e7e8, 0xd4ca64eb, 0x8ad958cf, 0x78b2dbcc, 0x6be22838, 0x9989ab3b, 0x4d43cfd0, 0xbf284cd3, 0xac78bf27, 0x5e133c24, 0x105ec76f, 0xe235446c, 0xf165b798, 0x030e349b, 0xd7c45070, 0x25afd373, 0x36ff2087, 0xc494a384, 0x9a879fa0, 0x68ec1ca3, 0x7bbcef57, 0x89d76c54, 0x5d1d08bf, 0xaf768bbc, 0xbc267848, 0x4e4dfb4b, 0x20bd8ede, 0xd2d60ddd, 0xc186fe29, 0x33ed7d2a, 0xe72719c1, 0x154c9ac2, 0x061c6936, 0xf477ea35, 0xaa64d611, 0x580f5512, 0x4b5fa6e6, 0xb93425e5, 0x6dfe410e, 0x9f95c20d, 0x8cc531f9, 0x7eaeb2fa, 0x30e349b1, 0xc288cab2, 0xd1d83946, 0x23b3ba45, 0xf779deae, 0x05125dad, 0x1642ae59, 0xe4292d5a, 0xba3a117e, 0x4851927d, 0x5b016189, 0xa96ae28a, 0x7da08661, 0x8fcb0562, 0x9c9bf696, 0x6ef07595, 0x417b1dbc, 0xb3109ebf, 0xa0406d4b, 0x522bee48, 0x86e18aa3, 0x748a09a0, 0x67dafa54, 0x95b17957, 0xcba24573, 0x39c9c670, 0x2a993584, 0xd8f2b687, 0x0c38d26c, 0xfe53516f, 0xed03a29b, 0x1f682198, 0x5125dad3, 0xa34e59d0, 0xb01eaa24, 0x42752927, 0x96bf4dcc, 0x64d4cecf, 0x77843d3b, 0x85efbe38, 0xdbfc821c, 0x2997011f, 0x3ac7f2eb, 0xc8ac71e8, 0x1c661503, 0xee0d9600, 0xfd5d65f4, 0x0f36e6f7, 0x61c69362, 0x93ad1061, 0x80fde395, 0x72966096, 0xa65c047d, 0x5437877e, 0x4767748a, 0xb50cf789, 0xeb1fcbad, 0x197448ae, 0x0a24bb5a, 0xf84f3859, 0x2c855cb2, 0xdeeedfb1, 0xcdbe2c45, 0x3fd5af46, 0x7198540d, 0x83f3d70e, 0x90a324fa, 0x62c8a7f9, 0xb602c312, 0x44694011, 0x5739b3e5, 0xa55230e6, 0xfb410cc2, 0x092a8fc1, 0x1a7a7c35, 0xe811ff36, 0x3cdb9bdd, 0xceb018de, 0xdde0eb2a, 0x2f8b6829, 0x82f63b78, 0x709db87b, 0x63cd4b8f, 0x91a6c88c, 0x456cac67, 0xb7072f64, 0xa457dc90, 0x563c5f93, 0x082f63b7, 0xfa44e0b4, 0xe9141340, 0x1b7f9043, 0xcfb5f4a8, 0x3dde77ab, 0x2e8e845f, 0xdce5075c, 0x92a8fc17, 0x60c37f14, 0x73938ce0, 0x81f80fe3, 0x55326b08, 0xa759e80b, 0xb4091bff, 0x466298fc, 0x1871a4d8, 0xea1a27db, 0xf94ad42f, 0x0b21572c, 0xdfeb33c7, 0x2d80b0c4, 0x3ed04330, 0xccbbc033, 0xa24bb5a6, 0x502036a5, 0x4370c551, 0xb11b4652, 0x65d122b9, 0x97baa1ba, 0x84ea524e, 0x7681d14d, 0x2892ed69, 0xdaf96e6a, 0xc9a99d9e, 0x3bc21e9d, 0xef087a76, 0x1d63f975, 0x0e330a81, 0xfc588982, 0xb21572c9, 0x407ef1ca, 0x532e023e, 0xa145813d, 0x758fe5d6, 0x87e466d5, 0x94b49521, 0x66df1622, 0x38cc2a06, 0xcaa7a905, 0xd9f75af1, 0x2b9cd9f2, 0xff56bd19, 0x0d3d3e1a, 0x1e6dcdee, 0xec064eed, 0xc38d26c4, 0x31e6a5c7, 0x22b65633, 0xd0ddd530, 0x0417b1db, 0xf67c32d8, 0xe52cc12c, 0x1747422f, 0x49547e0b, 0xbb3ffd08, 0xa86f0efc, 0x5a048dff, 0x8ecee914, 0x7ca56a17, 0x6ff599e3, 0x9d9e1ae0, 0xd3d3e1ab, 0x21b862a8, 0x32e8915c, 0xc083125f, 0x144976b4, 0xe622f5b7, 0xf5720643, 0x07198540, 0x590ab964, 0xab613a67, 0xb831c993, 0x4a5a4a90, 0x9e902e7b, 0x6cfbad78, 0x7fab5e8c, 0x8dc0dd8f, 0xe330a81a, 0x115b2b19, 0x020bd8ed, 0xf0605bee, 0x24aa3f05, 0xd6c1bc06, 0xc5914ff2, 0x37faccf1, 0x69e9f0d5, 0x9b8273d6, 0x88d28022, 0x7ab90321, 0xae7367ca, 0x5c18e4c9, 0x4f48173d, 0xbd23943e, 0xf36e6f75, 0x0105ec76, 0x12551f82, 0xe03e9c81, 0x34f4f86a, 0xc69f7b69, 0xd5cf889d, 0x27a40b9e, 0x79b737ba, 0x8bdcb4b9, 0x988c474d, 0x6ae7c44e, 0xbe2da0a5, 0x4c4623a6, 0x5f16d052, 0xad7d5351);
|
|
36
|
+
function getCRC32Table() {
|
|
37
|
+
return CRC32C_TABLE;
|
|
38
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"md5-wasm.d.ts","sourceRoot":"","sources":["../../../src/lib/algorithms/md5-wasm.ts"],"names":[],"mappings":"AAmCA,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,IAAI,KAAA,MAoFnC"}
|