MCPcopy
hub / github.com/theajack/disable-devtool / core_md5

Function core_md5

src/utils/md5.ts:18–119  ·  view source on GitHub ↗
(x: any, len: number)

Source from the content-addressed store, hash-verified

16 * Calculate the MD5 of an array of little-endian words, and a bit length
17 */
18function core_md5 (x: any, len: number)
19{
20 /* append padding */
21 x[len >> 5] |= 0x80 << ((len) % 32);
22 x[(((len + 64) >>> 9) << 4) + 14] = len;
23
24
25 let a = 1732584193;
26 let b = -271733879;
27 let c = -1732584194;
28 let d = 271733878;
29
30
31 for (let i = 0; i < x.length; i += 16)
32 {
33 const olda = a;
34 const oldb = b;
35 const oldc = c;
36 const oldd = d;
37
38
39 a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936);
40 d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586);
41 c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819);
42 b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330);
43 a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897);
44 d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);
45 c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341);
46 b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983);
47 a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416);
48 d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417);
49 c = md5_ff(c, d, a, b, x[i + 10], 17, -42063);
50 b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162);
51 a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682);
52 d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101);
53 c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290);
54 b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329);
55
56
57 a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510);
58 d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632);
59 c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713);
60 b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302);
61 a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691);
62 d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083);
63 c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335);
64 b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848);
65 a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438);
66 d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690);
67 c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961);
68 b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501);
69 a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467);
70 d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784);
71 c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473);
72 b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734);
73
74
75 a = md5_hh(a, b, c, d, x[i + 5], 4, -378558);

Callers 1

hex_md5Function · 0.85

Calls 5

md5_ffFunction · 0.85
md5_ggFunction · 0.85
md5_hhFunction · 0.85
md5_iiFunction · 0.85
safe_addFunction · 0.85

Tested by

no test coverage detected