MCPcopy Create free account
hub / github.com/Useful-Scripts-Extension/useful-script / core_sha1

Function core_sha1

scripts/passwordGenerator.js:33–68  ·  view source on GitHub ↗
(x, len)

Source from the content-addressed store, hash-verified

31 }
32
33 function core_sha1(x, len) {
34 x[len >> 5] |= 0x80 << (24 - len);
35 x[(((len + 64) >> 9) << 4) + 15] = len;
36 var w = Array(80);
37 var a = 1732584193;
38 var b = -271733879;
39 var c = -1732584194;
40 var d = 271733878;
41 var e = -1009589776;
42 for (var i = 0; i < x.length; i += 16) {
43 var olda = a;
44 var oldb = b;
45 var oldc = c;
46 var oldd = d;
47 var olde = e;
48 for (var j = 0; j < 80; j++) {
49 if (j < 16) w[j] = x[i + j];
50 else w[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);
51 var t = safe_add(
52 safe_add(rol(a, 5), sha1_ft(j, b, c, d)),
53 safe_add(safe_add(e, w[j]), sha1_kt(j))
54 );
55 e = d;
56 d = c;
57 c = rol(b, 30);
58 b = a;
59 a = t;
60 }
61 a = safe_add(a, olda);
62 b = safe_add(b, oldb);
63 c = safe_add(c, oldc);
64 d = safe_add(d, oldd);
65 e = safe_add(e, olde);
66 }
67 return Array(a, b, c, d, e);
68 }
69
70 function sha1_ft(t, b, c, d) {
71 if (t < 20) return (b & c) | (~b & d);

Callers 1

b64_sha1Function · 0.85

Calls 4

rolFunction · 0.85
safe_addFunction · 0.85
sha1_ftFunction · 0.85
sha1_ktFunction · 0.85

Tested by

no test coverage detected