UNPKG

node-red-contrib-hikvision-ultimate

Version:

A native set of nodes for Hikvision (and compatible) Cameras, Alarms, Radars, NVR, Doorbells, etc.

99 lines (98 loc) 3.44 kB
"use strict"; exports.__esModule = true; exports.sha256 = void 0; function m(e, t) { var n = (65535 & e) + (65535 & t); return (e >> 16) + (t >> 16) + (n >> 16) << 16 | 65535 & n; } function C(e, t) { return e >>> t | e << 32 - t; } function fun0(e) { var t = ''; for (var n = 0; n < 4 * e.length; n++) { t += '0123456789abcdef'.charAt(e[n >> 2] >> 8 * (3 - n % 4) + 4 & 15) + '0123456789abcdef'.charAt(e[n >> 2] >> 8 * (3 - n % 4) & 15); } return t; } function fun1(e, t) { var n; var r; var s; var o; var i; var a; var u; var c; var l; var d; var p; var P; var h = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298]; var f = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225]; var I = Array(64); for (e[t >> 5] |= 128 << 24 - t % 32, e[15 + (t + 64 >> 9 << 4)] = t, l = 0; l < e.length; l += 16) { for (n = f[0], r = f[1], s = f[2], o = f[3], i = f[4], a = f[5], u = f[6], c = f[7], d = 0; d < 64; d++) { I[d] = d < 16 ? e[d + l] : m(m(m(C(I[d - 2], 17) ^ C(I[d - 2], 19) ^ I[d - 2] >>> 10, I[d - 7]), C(I[d - 15], 7) ^ C(I[d - 15], 18) ^ I[d - 15] >>> 3), I[d - 16]); p = m(m(m(m(c, C(i, 6) ^ C(i, 11) ^ C(i, 25)), i & a ^ ~i & u), h[d]), I[d]); P = m(C(n, 2) ^ C(n, 13) ^ C(n, 22), n & r ^ n & s ^ r & s); c = u; u = a; a = i; i = m(o, p); o = s; s = r; r = n; n = m(p, P); } f[0] = m(n, f[0]); f[1] = m(r, f[1]); f[2] = m(s, f[2]); f[3] = m(o, f[3]); f[4] = m(i, f[4]); f[5] = m(a, f[5]); f[6] = m(u, f[6]); f[7] = m(c, f[7]); } return f; } function fun2(e) { var t = []; for (var n = 0; n < 8 * e.length; n += 8) { t[n >> 5] |= (255 & e.charCodeAt(n / 8)) << 24 - n % 32; } return t; } function fun3(e) { e = e.replace(/\r\n/g, '\n'); var t = ''; for (var n = 0; n < e.length; n++) { var r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r); } else { if (r > 127 && r < 2048) { t += String.fromCharCode(r >> 6 | 192); } else { t += String.fromCharCode(r >> 12 | 224); t += String.fromCharCode(r >> 6 & 63 | 128); } t += String.fromCharCode(63 & r | 128); } } return t; } function sha256(e) { var a0 = fun1(fun2(e = (fun3(e))), 8 * e.length); return fun0(a0); } exports.sha256 = sha256;