[Pkg-javascript-commits] [node-sha.js] 179/237: sha1: use a closure over separate loops

Bastien Roucariès rouca at moszumanska.debian.org
Fri May 5 09:03:53 UTC 2017


This is an automated email from the git hooks/post-receive script.

rouca pushed a commit to branch master
in repository node-sha.js.

commit 26a75eca5f841850a05384d8a3a95e22ee8d9617
Author: Daniel Cousens <github at dcousens.com>
Date:   Mon Jan 12 20:30:06 2015 +1100

    sha1: use a closure over separate loops
---
 sha1.js | 78 ++++++++++++-----------------------------------------------------
 1 file changed, 14 insertions(+), 64 deletions(-)

diff --git a/sha1.js b/sha1.js
index 753686e..42c2a8c 100644
--- a/sha1.js
+++ b/sha1.js
@@ -47,81 +47,31 @@ Sha1.prototype._update = function (M) {
   var d = this._d
   var e = this._e
 
-  var w, f, k, t, j = 0
-  while (j < 16) {
-    w = W[j] = M.readInt32BE(j * 4)
-    f = (b & c) | ((~b) & d)
-    k = 1518500249
-    t = (rol(a, 5) + f + e + w + k) | 0
+  var j = 0, k
 
-    e = d
-    d = c
-    c = rol(b, 30)
-    b = a
-    a = t
-
-    j++
-  }
-
-  while (j < 20) {
-    w = W[j] = rol(W[j - 3] ^ W[j -  8] ^ W[j - 14] ^ W[j - 16], 1)
-    f = (b & c) | ((~b) & d)
-    k = 1518500249
-    t = (rol(a, 5) + f + e + w + k) | 0
-
-    e = d
-    d = c
-    c = rol(b, 30)
-    b = a
-    a = t
-
-    j++
-  }
-
-  while (j < 40) {
-    w = W[j] = rol(W[j - 3] ^ W[j -  8] ^ W[j - 14] ^ W[j - 16], 1)
-    f = b ^ c ^ d
-    k = 1859775393
-    t = (rol(a, 5) + f + e + w + k) | 0
+  function calcW() { return rol(W[j - 3] ^ W[j -  8] ^ W[j - 14] ^ W[j - 16], 1) }
+  function loop(w, f) {
+    W[j] = w
 
-    e = d
-    d = c
-    c = rol(b, 30)
-    b = a
-    a = t
-
-    j++
-  }
-
-  while (j < 60) {
-    w = W[j] = rol(W[j - 3] ^ W[j -  8] ^ W[j - 14] ^ W[j - 16], 1)
-    f = (b & c) | (b & d) | (c & d)
-    k = -1894007588
-    t = (rol(a, 5) + f + e + w + k) | 0
+    var t = rol(a, 5) + f + e + w + k
 
     e = d
     d = c
     c = rol(b, 30)
     b = a
     a = t
-
     j++
   }
 
-  while (j < 80) {
-    w = W[j] = rol(W[j - 3] ^ W[j -  8] ^ W[j - 14] ^ W[j - 16], 1)
-    f = b ^ c ^ d
-    k = -899497514
-    t = (rol(a, 5) + f + e + w + k) | 0
-
-    e = d
-    d = c
-    c = rol(b, 30)
-    b = a
-    a = t
-
-    j++
-  }
+  k = 1518500249
+  while (j < 16) loop(M.readInt32BE(j * 4), (b & c) | ((~b) & d))
+  while (j < 20) loop(calcW(), (b & c) | ((~b) & d))
+  k = 1859775393
+  while (j < 40) loop(calcW(), b ^ c ^ d)
+  k = -1894007588
+  while (j < 60) loop(calcW(), (b & c) | (b & d) | (c & d))
+  k = -899497514
+  while (j < 80) loop(calcW(), b ^ c ^ d)
 
   this._a = (a + this._a) | 0
   this._b = (b + this._b) | 0

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-sha.js.git



More information about the Pkg-javascript-commits mailing list