Swap-Aggregator-Subgraph/node_modules/asmcrypto.js/dist_es5/hash/hash.js
Richa-iitr d211083153 Revert "Revert "added handler""
This reverts commit c36ee8c5ca.
2022-07-03 07:30:05 +05:30

53 lines
1.6 KiB
JavaScript
Executable File

import { _heap_write } from '../other/utils';
import { IllegalStateError } from '../other/errors';
var Hash = /** @class */ (function () {
function Hash() {
this.pos = 0;
this.len = 0;
}
Hash.prototype.reset = function () {
this.result = null;
this.pos = 0;
this.len = 0;
this.asm.reset();
return this;
};
Hash.prototype.process = function (data) {
if (this.result !== null)
throw new IllegalStateError('state must be reset before processing new data');
var asm = this.asm;
var heap = this.heap;
var hpos = this.pos;
var hlen = this.len;
var dpos = 0;
var dlen = data.length;
var wlen = 0;
while (dlen > 0) {
wlen = _heap_write(heap, hpos + hlen, data, dpos, dlen);
hlen += wlen;
dpos += wlen;
dlen -= wlen;
wlen = asm.process(hpos, hlen);
hpos += wlen;
hlen -= wlen;
if (!hlen)
hpos = 0;
}
this.pos = hpos;
this.len = hlen;
return this;
};
Hash.prototype.finish = function () {
if (this.result !== null)
throw new IllegalStateError('state must be reset before processing new data');
this.asm.finish(this.pos, this.len, 0);
this.result = new Uint8Array(this.HASH_SIZE);
this.result.set(this.heap.subarray(0, this.HASH_SIZE));
this.pos = 0;
this.len = 0;
return this;
};
return Hash;
}());
export { Hash };