Skip to content

Commit e9ff865

Browse files
committed
hash: increase readability of block-by-block hashing
1 parent 388d45e commit e9ff865

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

hash.js

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,28 @@ Hash.prototype.update = function (data, enc) {
1414
data = new Buffer(data, enc)
1515
}
1616

17-
var s = this._len
18-
var l = this._len += data.length
19-
var f = 0
20-
var buffer = this._block
17+
var block = this._block
18+
var blockSize = this._blockSize
19+
var length = data.length
20+
var accum = this._len
2121

22-
while (s < l) {
23-
var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
24-
var ch = (t - f)
22+
for (var offset = 0; offset < length;) {
23+
var assigned = accum % blockSize
24+
var remainder = Math.min(length - offset, blockSize - assigned)
2525

26-
for (var i = 0; i < ch; i++) {
27-
buffer[(s % this._blockSize) + i] = data[i + f]
26+
for (var i = 0; i < remainder; i++) {
27+
block[assigned + i] = data[offset + i]
2828
}
2929

30-
s += ch
31-
f += ch
30+
accum += remainder
31+
offset += remainder
3232

33-
if ((s % this._blockSize) === 0) {
34-
this._update(buffer)
33+
if ((accum % blockSize) === 0) {
34+
this._update(block)
3535
}
3636
}
3737

38+
this._len += length
3839
return this
3940
}
4041

0 commit comments

Comments
 (0)