[Pkg-javascript-commits] [node-browserify-aes] 28/43: ghash: inline xor
Bastien Roucariès
rouca at moszumanska.debian.org
Thu Sep 7 14:41:59 UTC 2017
This is an automated email from the git hooks/post-receive script.
rouca pushed a commit to branch master
in repository node-browserify-aes.
commit 1fe283662f8aa34e02e9a01576d8c6d9db221caa
Author: Daniel Cousens <github at dcousens.com>
Date: Fri May 19 14:56:40 2017 +1000
ghash: inline xor
---
ghash.js | 60 ++++++++++++++++++++++++++----------------------------------
1 file changed, 26 insertions(+), 34 deletions(-)
diff --git a/ghash.js b/ghash.js
index 8763d31..26bfedd 100644
--- a/ghash.js
+++ b/ghash.js
@@ -1,5 +1,23 @@
var Buffer = require('safe-buffer').Buffer
-var zeros = Buffer.alloc(16, 0)
+var ZEROES = Buffer.alloc(16, 0)
+
+function toArray (buf) {
+ return [
+ buf.readUInt32BE(0),
+ buf.readUInt32BE(4),
+ buf.readUInt32BE(8),
+ buf.readUInt32BE(12)
+ ]
+}
+
+function fromArray (out) {
+ var buf = Buffer.allocUnsafe(16)
+ buf.writeUInt32BE(out[0] >>> 0, 0)
+ buf.writeUInt32BE(out[1] >>> 0, 4)
+ buf.writeUInt32BE(out[2] >>> 0, 8)
+ buf.writeUInt32BE(out[3] >>> 0, 12)
+ return buf
+}
function GHASH (key) {
this.h = key
@@ -26,7 +44,10 @@ GHASH.prototype._multiply = function () {
xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0
if (xi) {
// Z_i+1 = Z_i ^ V_i
- Zi = xor(Zi, Vi)
+ Zi[0] ^= Vi[0]
+ Zi[1] ^= Vi[1]
+ Zi[2] ^= Vi[2]
+ Zi[3] ^= Vi[3]
}
// Store the value of LSB(V_i)
@@ -58,40 +79,11 @@ GHASH.prototype.update = function (buf) {
GHASH.prototype.final = function (abl, bl) {
if (this.cache.length) {
- this.ghash(Buffer.concat([this.cache, zeros], 16))
+ this.ghash(Buffer.concat([this.cache, ZEROES], 16))
}
- this.ghash(fromArray([
- 0, abl,
- 0, bl
- ]))
- return this.state
-}
-function toArray (buf) {
- return [
- buf.readUInt32BE(0),
- buf.readUInt32BE(4),
- buf.readUInt32BE(8),
- buf.readUInt32BE(12)
- ]
-}
-
-function fromArray (out) {
- var buf = Buffer.allocUnsafe(16)
- buf.writeUInt32BE(out[0] >>> 0, 0)
- buf.writeUInt32BE(out[1] >>> 0, 4)
- buf.writeUInt32BE(out[2] >>> 0, 8)
- buf.writeUInt32BE(out[3] >>> 0, 12)
- return buf
-}
-
-function xor (a, b) {
- return [
- a[0] ^ b[0],
- a[1] ^ b[1],
- a[2] ^ b[2],
- a[3] ^ b[3]
- ]
+ this.ghash(fromArray([0, abl, 0, bl]))
+ return this.state
}
module.exports = GHASH
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-browserify-aes.git
More information about the Pkg-javascript-commits
mailing list