all files / core/security/encryptors/ messageDigest5.js

10.77% Statements 7/65
0% Branches 0/6
50% Functions 2/4
10.77% Lines 7/65
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95                                                                                                                                                                                
define(["require", "exports"], function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var _MD5 = (function () {
        function _MD5() {
            this._r = new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9,
                14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21,
                6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]);
            this._k = new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983,
                1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632,
                643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501,
                -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353,
                -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651,
                -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744,
                -1560198380, 1309151649, -145523070, -1120210379, 718787259, -343485551]);
        }
        _MD5.prototype.hash = function (data, offset, length) {
            var h0 = 1732584193;
            var h1 = -271733879;
            var h2 = -1732584194;
            var h3 = 271733878;
            var paddedLength = (length + 72) & ~63;
            var padded = new Uint8Array(paddedLength);
            var i = 0;
            var j = 0;
            for (; i < length; ++i) {
                padded[i] = data[offset++];
            }
            padded[i++] = 0x80;
            var n = paddedLength - 8;
            while (i < n) {
                padded[i++] = 0;
            }
            padded[i++] = (length << 3) & 0xff;
            padded[i++] = (length >> 5) & 0xff;
            padded[i++] = (length >> 13) & 0xff;
            padded[i++] = (length >> 21) & 0xff;
            padded[i++] = (length >>> 29) & 0xff;
            padded[i++] = 0;
            padded[i++] = 0;
            padded[i++] = 0;
            var w = new Int32Array(16);
            for (i = 0; i < paddedLength;) {
                for (j = 0; j < 16; ++j, i += 4) {
                    w[j] = padded[i] |
                        (padded[i + 1] << 8) |
                        (padded[i + 2] << 16) |
                        (padded[i + 3] << 24);
                }
                var a = h0;
                var b = h1;
                var c = h2;
                var d = h3;
                var e = void 0;
                var f = void 0;
                for (j = 0; j < 64; ++j) {
                    if (j < 16) {
                        e = (b & c) | (~b & d);
                        f = j;
                    }
                    else if (j < 32) {
                        e = (d & b) | (~d & c);
                        f = (5 * j + 1) & 15;
                    }
                    else if (j < 48) {
                        e = b ^ c ^ d;
                        f = (3 * j + 5) & 15;
                    }
                    else {
                        e = c ^ (b | ~d);
                        f = (7 * j) & 15;
                    }
                    var previous = d;
                    var current = (a + e + this._k[j] + w[f]) | 0;
                    var rotate = this._r[j];
                    d = c;
                    c = b;
                    b = (b + ((current << rotate) | (current >>> (32 - rotate)))) | 0;
                    a = previous;
                }
                h0 = (h0 + a) | 0;
                h1 = (h1 + b) | 0;
                h2 = (h2 + c) | 0;
                h3 = (h3 + d) | 0;
            }
            return new Uint8Array([h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >>> 24) & 0xFF, h1 & 0xFF,
                (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >>> 24) & 0xFF, h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF,
                (h2 >>> 24) & 0xFF, h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >>> 24) & 0xFF
            ]);
        };
        return _MD5;
    }());
    exports._MD5 = _MD5;
});