[Pkg-javascript-commits] [node-sha.js] 214/237: inline Sigma functions
Bastien Roucariès
rouca at moszumanska.debian.org
Fri May 5 09:04:07 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 e6e5b1ea158a9beb3e2a68d1c9c767bcff3d2f7b
Author: Daniel Cousens <github at dcousens.com>
Date: Fri Aug 28 09:14:27 2015 +1000
inline Sigma functions
---
sha256.js | 34 +++++++++++++---------------------
sha512.js | 48 ++++++++++++++++++++++++++++++++++--------------
2 files changed, 47 insertions(+), 35 deletions(-)
diff --git a/sha256.js b/sha256.js
index 43ee7c1..8357d3b 100644
--- a/sha256.js
+++ b/sha256.js
@@ -53,36 +53,28 @@ Sha256.prototype.init = function () {
return this
}
-function S (X, n) {
- return (X >>> n) | (X << (32 - n))
-}
-
-function R (X, n) {
- return (X >>> n)
-}
-
function Ch (x, y, z) {
- return ((x & y) ^ ((~x) & z))
+ return z ^ (x & (y ^ z))
}
function Maj (x, y, z) {
- return ((x & y) ^ (x & z) ^ (y & z))
+ return (x & y) | (z & (x | y))
}
-function Sigma0256 (x) {
- return (S(x, 2) ^ S(x, 13) ^ S(x, 22))
+function Sigma0 (x) {
+ return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)
}
-function Sigma1256 (x) {
- return (S(x, 6) ^ S(x, 11) ^ S(x, 25))
+function Sigma1 (x) {
+ return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)
}
-function Gamma0256 (x) {
- return (S(x, 7) ^ S(x, 18) ^ R(x, 3))
+function Gamma0 (x) {
+ return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)
}
-function Gamma1256 (x) {
- return (S(x, 17) ^ S(x, 19) ^ R(x, 10))
+function Gamma1 (x) {
+ return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)
}
Sha256.prototype._update = function (M) {
@@ -99,12 +91,12 @@ Sha256.prototype._update = function (M) {
var j = 0
- function calcW () { return Gamma1256(W[j - 2]) + W[j - 7] + Gamma0256(W[j - 15]) + W[j - 16] }
+ function calcW () { return Gamma1(W[j - 2]) + W[j - 7] + Gamma0(W[j - 15]) + W[j - 16] }
function loop (w) {
W[j] = w
- var T1 = h + Sigma1256(e) + Ch(e, f, g) + K[j] + w
- var T2 = Sigma0256(a) + Maj(a, b, c)
+ var T1 = h + Sigma1(e) + Ch(e, f, g) + K[j] + w
+ var T2 = Sigma0(a) + Maj(a, b, c)
h = g
g = f
diff --git a/sha512.js b/sha512.js
index 62618cd..6ec9f5f 100644
--- a/sha512.js
+++ b/sha512.js
@@ -77,16 +77,36 @@ Sha512.prototype.init = function () {
return this
}
-function S (X, Xl, n) {
- return (X >>> n) | (Xl << (32 - n))
-}
-
function Ch (x, y, z) {
- return ((x & y) ^ ((~x) & z))
+ return z ^ (x & (y ^ z))
}
function Maj (x, y, z) {
- return ((x & y) ^ (x & z) ^ (y & z))
+ return (x & y) | (z & (x | y))
+}
+
+function Sigma0 (x, xl) {
+ return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)
+}
+
+function Sigma1 (x, xl) {
+ return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)
+}
+
+function Gamma0 (x, xl) {
+ return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)
+}
+
+function Gamma0l (x, xl) {
+ return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)
+}
+
+function Gamma1 (x, xl) {
+ return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)
+}
+
+function Gamma1l (x, xl) {
+ return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)
}
Sha512.prototype._update = function (M) {
@@ -116,13 +136,13 @@ Sha512.prototype._update = function (M) {
function calcW () {
var x = W[j - 15 * 2]
var xl = W[j - 15 * 2 + 1]
- var gamma0 = S(x, xl, 1) ^ S(x, xl, 8) ^ (x >>> 7)
- var gamma0l = S(xl, x, 1) ^ S(xl, x, 8) ^ S(xl, x, 7)
+ var gamma0 = Gamma0(x, xl)
+ var gamma0l = Gamma0l(xl, x)
x = W[j - 2 * 2]
xl = W[j - 2 * 2 + 1]
- var gamma1 = S(x, xl, 19) ^ S(xl, x, 29) ^ (x >>> 6)
- var gamma1l = S(xl, x, 19) ^ S(x, xl, 29) ^ S(xl, x, 6)
+ var gamma1 = Gamma1(x, xl)
+ var gamma1l = Gamma1l(xl, x)
// W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
var Wi7 = W[j - 7 * 2]
@@ -146,10 +166,10 @@ Sha512.prototype._update = function (M) {
var maj = Maj(a, b, c)
var majl = Maj(al, bl, cl)
- var sigma0h = S(a, al, 28) ^ S(al, a, 2) ^ S(al, a, 7)
- var sigma0l = S(al, a, 28) ^ S(a, al, 2) ^ S(a, al, 7)
- var sigma1h = S(e, el, 14) ^ S(e, el, 18) ^ S(el, e, 9)
- var sigma1l = S(el, e, 14) ^ S(el, e, 18) ^ S(e, el, 9)
+ var sigma0h = Sigma0(a, al)
+ var sigma0l = Sigma0(al, a)
+ var sigma1h = Sigma1(e, el)
+ var sigma1l = Sigma1(el, e)
// t1 = h + sigma1 + ch + K[i] + W[i]
var Ki = K[j]
--
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