summaryrefslogtreecommitdiff
path: root/src/node_modules/md5
diff options
context:
space:
mode:
Diffstat (limited to 'src/node_modules/md5')
-rw-r--r--src/node_modules/md5/.travis.yml7
-rw-r--r--src/node_modules/md5/LICENSE27
-rw-r--r--src/node_modules/md5/README.md111
-rw-r--r--src/node_modules/md5/demo/index.html48
-rw-r--r--src/node_modules/md5/dist/md5.min.js7
-rw-r--r--src/node_modules/md5/md5.js160
-rw-r--r--src/node_modules/md5/package.json38
-rw-r--r--src/node_modules/md5/test.js75
-rw-r--r--src/node_modules/md5/webpack.config.js13
9 files changed, 486 insertions, 0 deletions
diff --git a/src/node_modules/md5/.travis.yml b/src/node_modules/md5/.travis.yml
new file mode 100644
index 0000000..1acffbe
--- /dev/null
+++ b/src/node_modules/md5/.travis.yml
@@ -0,0 +1,7 @@
+language: node_js
+node_js:
+ - 0.12
+ - 4
+ - 5
+ - 6
+ - 7
diff --git a/src/node_modules/md5/LICENSE b/src/node_modules/md5/LICENSE
new file mode 100644
index 0000000..f476d11
--- /dev/null
+++ b/src/node_modules/md5/LICENSE
@@ -0,0 +1,27 @@
+Copyright © 2011-2012, Paul Vorbach.
+Copyright © 2009, Jeff Mott.
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+ list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+* Neither the name Crypto-JS nor the names of its contributors may be used to
+ endorse or promote products derived from this software without specific prior
+ written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/src/node_modules/md5/README.md b/src/node_modules/md5/README.md
new file mode 100644
index 0000000..5e21908
--- /dev/null
+++ b/src/node_modules/md5/README.md
@@ -0,0 +1,111 @@
+# MD5
+
+[![build status](https://secure.travis-ci.org/pvorb/node-md5.png)](http://travis-ci.org/pvorb/node-md5) [![info badge](https://img.shields.io/npm/dt/md5.svg)](http://npm-stat.com/charts.html?package=md5)
+
+a JavaScript function for hashing messages with MD5.
+
+node-md5 is being sponsored by the following tool; please help to support us by taking a look and signing up to a free trial
+<a href="https://tracking.gitads.io/?repo=node-md5"><img src="https://images.gitads.io/node-md5" alt="GitAds"/></a>
+
+## Installation
+
+You can use this package on the server side as well as the client side.
+
+### [Node.js](http://nodejs.org/):
+
+~~~
+npm install md5
+~~~
+
+
+## API
+
+~~~ javascript
+md5(message)
+~~~
+
+ * `message` -- `String`, `Buffer`, `Array` or `Uint8Array`
+ * returns `String`
+
+
+## Usage
+
+~~~ javascript
+var md5 = require('md5');
+
+console.log(md5('message'));
+~~~
+
+This will print the following
+
+~~~
+78e731027d8fd50ed642340b7c9a63b3
+~~~
+
+It supports buffers, too
+
+~~~ javascript
+var fs = require('fs');
+var md5 = require('md5');
+
+fs.readFile('example.txt', function(err, buf) {
+ console.log(md5(buf));
+});
+~~~
+
+## Versions
+
+Before version 2.0.0 there were two packages called md5 on npm, one lowercase,
+one uppercase (the one you're looking at). As of version 2.0.0, all new versions
+of this module will go to lowercase [md5](https://www.npmjs.com/package/md5) on
+npm. To use the correct version, users of this module will have to change their
+code from `require('MD5')` to `require('md5')` if they want to use versions >=
+2.0.0.
+
+
+## Bugs and Issues
+
+If you encounter any bugs or issues, feel free to open an issue at
+[github](https://github.com/pvorb/node-md5/issues).
+
+
+## Credits
+
+This package is based on the work of Jeff Mott, who did a pure JS implementation
+of the MD5 algorithm that was published by Ronald L. Rivest in 1991. I needed a
+npm package of the algorithm, so I used Jeff’s implementation for this package.
+The original implementation can be found in the
+[CryptoJS](http://code.google.com/p/crypto-js/) project.
+
+
+## License
+
+~~~
+Copyright © 2011-2015, Paul Vorbach.
+Copyright © 2009, Jeff Mott.
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+ list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+* Neither the name Crypto-JS nor the names of its contributors may be used to
+ endorse or promote products derived from this software without specific prior
+ written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+~~~
diff --git a/src/node_modules/md5/demo/index.html b/src/node_modules/md5/demo/index.html
new file mode 100644
index 0000000..2d4b8d2
--- /dev/null
+++ b/src/node_modules/md5/demo/index.html
@@ -0,0 +1,48 @@
+<input type="file" id="input">
+<output id="output"></output>
+<style>
+output::before {
+ content: "output:";
+}
+output {
+ display: block;
+ padding: 1em;
+ margin: 1em;
+ outline: 1px solid gray;
+ white-space: pre-wrap;
+}
+</style>
+<script src="../dist/md5.min.js"></script>
+<script>
+
+
+function readAsArrayBuffer(file){
+ return new Promise(function(resolve) {
+ var reader = new FileReader();
+ reader.readAsArrayBuffer(file)
+ reader.onload = function(e) {
+ resolve(e.target.result)
+ };
+ });
+}
+
+input.onchange = function(e) {
+ var file = input.files[0];
+ readAsArrayBuffer(file)
+ .then(buffer => {
+ console.log(buffer);
+ var now = performance.now();
+ var hash = MD5(buffer);
+ var after = performance.now() - now;
+ output.innerHTML = `
+ file: ${file.name}
+ size: ${file.size} bytes
+ type: ${file.type}
+ md5: ${hash}
+ duration: ${after.toFixed(2)} ms
+ `;
+ })
+}
+
+
+</script>
diff --git a/src/node_modules/md5/dist/md5.min.js b/src/node_modules/md5/dist/md5.min.js
new file mode 100644
index 0000000..250ab73
--- /dev/null
+++ b/src/node_modules/md5/dist/md5.min.js
@@ -0,0 +1,7 @@
+var MD5=function(r){function n(o){if(t[o])return t[o].exports;var e=t[o]={i:o,l:!1,exports:{}};return r[o].call(e.exports,e,e.exports,n),e.l=!0,e.exports}var t={};return n.m=r,n.c=t,n.i=function(r){return r},n.d=function(r,t,o){n.o(r,t)||Object.defineProperty(r,t,{configurable:!1,enumerable:!0,get:o})},n.n=function(r){var t=r&&r.__esModule?function(){return r.default}:function(){return r};return n.d(t,"a",t),t},n.o=function(r,n){return Object.prototype.hasOwnProperty.call(r,n)},n.p="",n(n.s=4)}([function(r,n){var t={utf8:{stringToBytes:function(r){return t.bin.stringToBytes(unescape(encodeURIComponent(r)))},bytesToString:function(r){return decodeURIComponent(escape(t.bin.bytesToString(r)))}},bin:{stringToBytes:function(r){for(var n=[],t=0;t<r.length;t++)n.push(255&r.charCodeAt(t));return n},bytesToString:function(r){for(var n=[],t=0;t<r.length;t++)n.push(String.fromCharCode(r[t]));return n.join("")}}};r.exports=t},function(r,n,t){!function(){var n=t(2),o=t(0).utf8,e=t(3),u=t(0).bin,i=function(r,t){r.constructor==String?r=t&&"binary"===t.encoding?u.stringToBytes(r):o.stringToBytes(r):e(r)?r=Array.prototype.slice.call(r,0):Array.isArray(r)||(r=r.toString());for(var f=n.bytesToWords(r),s=8*r.length,c=1732584193,a=-271733879,l=-1732584194,g=271733878,h=0;h<f.length;h++)f[h]=16711935&(f[h]<<8|f[h]>>>24)|4278255360&(f[h]<<24|f[h]>>>8);f[s>>>5]|=128<<s%32,f[14+(s+64>>>9<<4)]=s;for(var p=i._ff,y=i._gg,v=i._hh,d=i._ii,h=0;h<f.length;h+=16){var b=c,T=a,x=l,B=g;c=p(c,a,l,g,f[h+0],7,-680876936),g=p(g,c,a,l,f[h+1],12,-389564586),l=p(l,g,c,a,f[h+2],17,606105819),a=p(a,l,g,c,f[h+3],22,-1044525330),c=p(c,a,l,g,f[h+4],7,-176418897),g=p(g,c,a,l,f[h+5],12,1200080426),l=p(l,g,c,a,f[h+6],17,-1473231341),a=p(a,l,g,c,f[h+7],22,-45705983),c=p(c,a,l,g,f[h+8],7,1770035416),g=p(g,c,a,l,f[h+9],12,-1958414417),l=p(l,g,c,a,f[h+10],17,-42063),a=p(a,l,g,c,f[h+11],22,-1990404162),c=p(c,a,l,g,f[h+12],7,1804603682),g=p(g,c,a,l,f[h+13],12,-40341101),l=p(l,g,c,a,f[h+14],17,-1502002290),a=p(a,l,g,c,f[h+15],22,1236535329),c=y(c,a,l,g,f[h+1],5,-165796510),g=y(g,c,a,l,f[h+6],9,-1069501632),l=y(l,g,c,a,f[h+11],14,643717713),a=y(a,l,g,c,f[h+0],20,-373897302),c=y(c,a,l,g,f[h+5],5,-701558691),g=y(g,c,a,l,f[h+10],9,38016083),l=y(l,g,c,a,f[h+15],14,-660478335),a=y(a,l,g,c,f[h+4],20,-405537848),c=y(c,a,l,g,f[h+9],5,568446438),g=y(g,c,a,l,f[h+14],9,-1019803690),l=y(l,g,c,a,f[h+3],14,-187363961),a=y(a,l,g,c,f[h+8],20,1163531501),c=y(c,a,l,g,f[h+13],5,-1444681467),g=y(g,c,a,l,f[h+2],9,-51403784),l=y(l,g,c,a,f[h+7],14,1735328473),a=y(a,l,g,c,f[h+12],20,-1926607734),c=v(c,a,l,g,f[h+5],4,-378558),g=v(g,c,a,l,f[h+8],11,-2022574463),l=v(l,g,c,a,f[h+11],16,1839030562),a=v(a,l,g,c,f[h+14],23,-35309556),c=v(c,a,l,g,f[h+1],4,-1530992060),g=v(g,c,a,l,f[h+4],11,1272893353),l=v(l,g,c,a,f[h+7],16,-155497632),a=v(a,l,g,c,f[h+10],23,-1094730640),c=v(c,a,l,g,f[h+13],4,681279174),g=v(g,c,a,l,f[h+0],11,-358537222),l=v(l,g,c,a,f[h+3],16,-722521979),a=v(a,l,g,c,f[h+6],23,76029189),c=v(c,a,l,g,f[h+9],4,-640364487),g=v(g,c,a,l,f[h+12],11,-421815835),l=v(l,g,c,a,f[h+15],16,530742520),a=v(a,l,g,c,f[h+2],23,-995338651),c=d(c,a,l,g,f[h+0],6,-198630844),g=d(g,c,a,l,f[h+7],10,1126891415),l=d(l,g,c,a,f[h+14],15,-1416354905),a=d(a,l,g,c,f[h+5],21,-57434055),c=d(c,a,l,g,f[h+12],6,1700485571),g=d(g,c,a,l,f[h+3],10,-1894986606),l=d(l,g,c,a,f[h+10],15,-1051523),a=d(a,l,g,c,f[h+1],21,-2054922799),c=d(c,a,l,g,f[h+8],6,1873313359),g=d(g,c,a,l,f[h+15],10,-30611744),l=d(l,g,c,a,f[h+6],15,-1560198380),a=d(a,l,g,c,f[h+13],21,1309151649),c=d(c,a,l,g,f[h+4],6,-145523070),g=d(g,c,a,l,f[h+11],10,-1120210379),l=d(l,g,c,a,f[h+2],15,718787259),a=d(a,l,g,c,f[h+9],21,-343485551),c=c+b>>>0,a=a+T>>>0,l=l+x>>>0,g=g+B>>>0}return n.endian([c,a,l,g])};i._ff=function(r,n,t,o,e,u,i){var f=r+(n&t|~n&o)+(e>>>0)+i;return(f<<u|f>>>32-u)+n},i._gg=function(r,n,t,o,e,u,i){var f=r+(n&o|t&~o)+(e>>>0)+i;return(f<<u|f>>>32-u)+n},i._hh=function(r,n,t,o,e,u,i){var f=r+(n^t^o)+(e>>>0)+i;return(f<<u|f>>>32-u)+n},i._ii=function(r,n,t,o,e,u,i){var f=r+(t^(n|~o))+(e>>>0)+i;return(f<<u|f>>>32-u)+n},i._blocksize=16,i._digestsize=16,r.exports=function(r,t){if(void 0===r||null===r)throw new Error("Illegal argument "+r);var o=n.wordsToBytes(i(r,t));return t&&t.asBytes?o:t&&t.asString?u.bytesToString(o):n.bytesToHex(o)}}()},function(r,n){!function(){var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t={rotl:function(r,n){return r<<n|r>>>32-n},rotr:function(r,n){return r<<32-n|r>>>n},endian:function(r){if(r.constructor==Number)return 16711935&t.rotl(r,8)|4278255360&t.rotl(r,24);for(var n=0;n<r.length;n++)r[n]=t.endian(r[n]);return r},randomBytes:function(r){for(var n=[];r>0;r--)n.push(Math.floor(256*Math.random()));return n},bytesToWords:function(r){for(var n=[],t=0,o=0;t<r.length;t++,o+=8)n[o>>>5]|=r[t]<<24-o%32;return n},wordsToBytes:function(r){for(var n=[],t=0;t<32*r.length;t+=8)n.push(r[t>>>5]>>>24-t%32&255);return n},bytesToHex:function(r){for(var n=[],t=0;t<r.length;t++)n.push((r[t]>>>4).toString(16)),n.push((15&r[t]).toString(16));return n.join("")},hexToBytes:function(r){for(var n=[],t=0;t<r.length;t+=2)n.push(parseInt(r.substr(t,2),16));return n},bytesToBase64:function(r){for(var t=[],o=0;o<r.length;o+=3)for(var e=r[o]<<16|r[o+1]<<8|r[o+2],u=0;u<4;u++)8*o+6*u<=8*r.length?t.push(n.charAt(e>>>6*(3-u)&63)):t.push("=");return t.join("")},base64ToBytes:function(r){r=r.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],o=0,e=0;o<r.length;e=++o%4)0!=e&&t.push((n.indexOf(r.charAt(o-1))&Math.pow(2,-2*e+8)-1)<<2*e|n.indexOf(r.charAt(o))>>>6-2*e);return t}};r.exports=t}()},function(r,n){function t(r){return!!r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r)}function o(r){return"function"==typeof r.readFloatLE&&"function"==typeof r.slice&&t(r.slice(0,0))}/*!
+ * Determine if an object is a Buffer
+ *
+ * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
+ * @license MIT
+ */
+r.exports=function(r){return null!=r&&(t(r)||o(r)||!!r._isBuffer)}},function(r,n,t){r.exports=t(1)}]); \ No newline at end of file
diff --git a/src/node_modules/md5/md5.js b/src/node_modules/md5/md5.js
new file mode 100644
index 0000000..0f8905a
--- /dev/null
+++ b/src/node_modules/md5/md5.js
@@ -0,0 +1,160 @@
+(function(){
+ var crypt = require('crypt'),
+ utf8 = require('charenc').utf8,
+ isBuffer = require('is-buffer'),
+ bin = require('charenc').bin,
+
+ // The core
+ md5 = function (message, options) {
+ // Convert to byte array
+ if (message.constructor == String)
+ if (options && options.encoding === 'binary')
+ message = bin.stringToBytes(message);
+ else
+ message = utf8.stringToBytes(message);
+ else if (isBuffer(message))
+ message = Array.prototype.slice.call(message, 0);
+ else if (!Array.isArray(message) && message.constructor !== Uint8Array)
+ message = message.toString();
+ // else, assume byte array already
+
+ var m = crypt.bytesToWords(message),
+ l = message.length * 8,
+ a = 1732584193,
+ b = -271733879,
+ c = -1732584194,
+ d = 271733878;
+
+ // Swap endian
+ for (var i = 0; i < m.length; i++) {
+ m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |
+ ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;
+ }
+
+ // Padding
+ m[l >>> 5] |= 0x80 << (l % 32);
+ m[(((l + 64) >>> 9) << 4) + 14] = l;
+
+ // Method shortcuts
+ var FF = md5._ff,
+ GG = md5._gg,
+ HH = md5._hh,
+ II = md5._ii;
+
+ for (var i = 0; i < m.length; i += 16) {
+
+ var aa = a,
+ bb = b,
+ cc = c,
+ dd = d;
+
+ a = FF(a, b, c, d, m[i+ 0], 7, -680876936);
+ d = FF(d, a, b, c, m[i+ 1], 12, -389564586);
+ c = FF(c, d, a, b, m[i+ 2], 17, 606105819);
+ b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);
+ a = FF(a, b, c, d, m[i+ 4], 7, -176418897);
+ d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);
+ c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);
+ b = FF(b, c, d, a, m[i+ 7], 22, -45705983);
+ a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);
+ d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);
+ c = FF(c, d, a, b, m[i+10], 17, -42063);
+ b = FF(b, c, d, a, m[i+11], 22, -1990404162);
+ a = FF(a, b, c, d, m[i+12], 7, 1804603682);
+ d = FF(d, a, b, c, m[i+13], 12, -40341101);
+ c = FF(c, d, a, b, m[i+14], 17, -1502002290);
+ b = FF(b, c, d, a, m[i+15], 22, 1236535329);
+
+ a = GG(a, b, c, d, m[i+ 1], 5, -165796510);
+ d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);
+ c = GG(c, d, a, b, m[i+11], 14, 643717713);
+ b = GG(b, c, d, a, m[i+ 0], 20, -373897302);
+ a = GG(a, b, c, d, m[i+ 5], 5, -701558691);
+ d = GG(d, a, b, c, m[i+10], 9, 38016083);
+ c = GG(c, d, a, b, m[i+15], 14, -660478335);
+ b = GG(b, c, d, a, m[i+ 4], 20, -405537848);
+ a = GG(a, b, c, d, m[i+ 9], 5, 568446438);
+ d = GG(d, a, b, c, m[i+14], 9, -1019803690);
+ c = GG(c, d, a, b, m[i+ 3], 14, -187363961);
+ b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);
+ a = GG(a, b, c, d, m[i+13], 5, -1444681467);
+ d = GG(d, a, b, c, m[i+ 2], 9, -51403784);
+ c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);
+ b = GG(b, c, d, a, m[i+12], 20, -1926607734);
+
+ a = HH(a, b, c, d, m[i+ 5], 4, -378558);
+ d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);
+ c = HH(c, d, a, b, m[i+11], 16, 1839030562);
+ b = HH(b, c, d, a, m[i+14], 23, -35309556);
+ a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);
+ d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);
+ c = HH(c, d, a, b, m[i+ 7], 16, -155497632);
+ b = HH(b, c, d, a, m[i+10], 23, -1094730640);
+ a = HH(a, b, c, d, m[i+13], 4, 681279174);
+ d = HH(d, a, b, c, m[i+ 0], 11, -358537222);
+ c = HH(c, d, a, b, m[i+ 3], 16, -722521979);
+ b = HH(b, c, d, a, m[i+ 6], 23, 76029189);
+ a = HH(a, b, c, d, m[i+ 9], 4, -640364487);
+ d = HH(d, a, b, c, m[i+12], 11, -421815835);
+ c = HH(c, d, a, b, m[i+15], 16, 530742520);
+ b = HH(b, c, d, a, m[i+ 2], 23, -995338651);
+
+ a = II(a, b, c, d, m[i+ 0], 6, -198630844);
+ d = II(d, a, b, c, m[i+ 7], 10, 1126891415);
+ c = II(c, d, a, b, m[i+14], 15, -1416354905);
+ b = II(b, c, d, a, m[i+ 5], 21, -57434055);
+ a = II(a, b, c, d, m[i+12], 6, 1700485571);
+ d = II(d, a, b, c, m[i+ 3], 10, -1894986606);
+ c = II(c, d, a, b, m[i+10], 15, -1051523);
+ b = II(b, c, d, a, m[i+ 1], 21, -2054922799);
+ a = II(a, b, c, d, m[i+ 8], 6, 1873313359);
+ d = II(d, a, b, c, m[i+15], 10, -30611744);
+ c = II(c, d, a, b, m[i+ 6], 15, -1560198380);
+ b = II(b, c, d, a, m[i+13], 21, 1309151649);
+ a = II(a, b, c, d, m[i+ 4], 6, -145523070);
+ d = II(d, a, b, c, m[i+11], 10, -1120210379);
+ c = II(c, d, a, b, m[i+ 2], 15, 718787259);
+ b = II(b, c, d, a, m[i+ 9], 21, -343485551);
+
+ a = (a + aa) >>> 0;
+ b = (b + bb) >>> 0;
+ c = (c + cc) >>> 0;
+ d = (d + dd) >>> 0;
+ }
+
+ return crypt.endian([a, b, c, d]);
+ };
+
+ // Auxiliary functions
+ md5._ff = function (a, b, c, d, x, s, t) {
+ var n = a + (b & c | ~b & d) + (x >>> 0) + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+ md5._gg = function (a, b, c, d, x, s, t) {
+ var n = a + (b & d | c & ~d) + (x >>> 0) + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+ md5._hh = function (a, b, c, d, x, s, t) {
+ var n = a + (b ^ c ^ d) + (x >>> 0) + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+ md5._ii = function (a, b, c, d, x, s, t) {
+ var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+
+ // Package private blocksize
+ md5._blocksize = 16;
+ md5._digestsize = 16;
+
+ module.exports = function (message, options) {
+ if (message === undefined || message === null)
+ throw new Error('Illegal argument ' + message);
+
+ var digestbytes = crypt.wordsToBytes(md5(message, options));
+ return options && options.asBytes ? digestbytes :
+ options && options.asString ? bin.bytesToString(digestbytes) :
+ crypt.bytesToHex(digestbytes);
+ };
+
+})();
diff --git a/src/node_modules/md5/package.json b/src/node_modules/md5/package.json
new file mode 100644
index 0000000..7618a07
--- /dev/null
+++ b/src/node_modules/md5/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "md5",
+ "description": "js function for hashing messages with MD5",
+ "version": "2.3.0",
+ "author": "Paul Vorbach <paul@vorba.ch> (http://paul.vorba.ch)",
+ "contributors": [
+ "salba"
+ ],
+ "tags": [
+ "md5",
+ "hash",
+ "encryption",
+ "message digest"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/pvorb/node-md5.git"
+ },
+ "bugs": {
+ "url": "https://github.com/pvorb/node-md5/issues"
+ },
+ "main": "md5.js",
+ "scripts": {
+ "test": "mocha",
+ "webpack": "webpack -p"
+ },
+ "dependencies": {
+ "charenc": "0.0.2",
+ "crypt": "0.0.2",
+ "is-buffer": "~1.1.6"
+ },
+ "devDependencies": {
+ "mocha": "~2.3.4",
+ "webpack": "~2.4.1"
+ },
+ "optionalDependencies": {},
+ "license": "BSD-3-Clause"
+}
diff --git a/src/node_modules/md5/test.js b/src/node_modules/md5/test.js
new file mode 100644
index 0000000..db78c25
--- /dev/null
+++ b/src/node_modules/md5/test.js
@@ -0,0 +1,75 @@
+var md5 = require('./md5.js');
+var assert = require('assert');
+
+describe('md5', function () {
+
+ it('should throw an error for an undefined value', function() {
+ assert.throws(function() {
+ md5(undefined);
+ });
+ });
+
+ it('should allow the hashing of the string `undefined`', function() {
+ assert.equal('5e543256c480ac577d30f76f9120eb74', md5('undefined'));
+ });
+
+ it('should throw an error for `null`', function() {
+ assert.throws(function() {
+ md5(null);
+ });
+ });
+
+ it('should return the expected MD5 hash for "message"', function() {
+ assert.equal('78e731027d8fd50ed642340b7c9a63b3', md5('message'));
+ });
+
+ it('should not return the same hash for random numbers twice', function() {
+ var msg1 = Math.floor((Math.random() * 100000) + 1) + (new Date).getTime();
+ var msg2 = Math.floor((Math.random() * 100000) + 1) + (new Date).getTime();
+
+ if (msg1 !== msg2) {
+ assert.notEqual(md5(msg1), md5(msg2));
+ } else {
+ assert.equal(md5(msg1), md5(msg1));
+ }
+ });
+
+ it('should support Node.js Buffers', function() {
+ var buffer = new Buffer('message áßäöü', 'utf8');
+
+ assert.equal(md5(buffer), md5('message áßäöü'));
+ })
+
+ it('should be able to use a binary encoded string', function() {
+ var hash1 = md5('abc', { asString: true });
+ var hash2 = md5(hash1 + 'a', { asString: true, encoding : 'binary' });
+ var hash3 = md5(hash1 + 'a', { encoding : 'binary' });
+ assert.equal(hash3, '131f0ac52813044f5110e4aec638c169');
+ });
+
+ it('should support Uint8Array', function() {
+ // Polyfills
+ if (!Array.from) {
+ Array.from = function(src, fn) {
+ var result = new Array(src.length);
+ for (var i = 0; i < src.length; ++i)
+ result[i] = fn(src[i]);
+ return result;
+ };
+ }
+ if (!Uint8Array.from) {
+ Uint8Array.from = function(src) {
+ var result = new Uint8Array(src.length);
+ for (var i = 0; i < src.length; ++i)
+ result[i] = src[i];
+ return result;
+ };
+ }
+
+ var message = 'foobarbaz';
+ var u8arr = Uint8Array.from(
+ Array.from(message, function(c) { return c.charCodeAt(0); }));
+ var u8aHash = md5(u8arr);
+ assert.equal(u8aHash, md5(message));
+ });
+});
diff --git a/src/node_modules/md5/webpack.config.js b/src/node_modules/md5/webpack.config.js
new file mode 100644
index 0000000..310eb37
--- /dev/null
+++ b/src/node_modules/md5/webpack.config.js
@@ -0,0 +1,13 @@
+const {resolve} = require('path');
+
+module.exports = {
+ entry: [
+ './md5.js'
+ ],
+ output: {
+ path: resolve('./dist'),
+ filename: 'md5.min.js',
+ libraryTarget: "var",
+ library: "MD5"
+ }
+}; \ No newline at end of file