PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/asmcrypto.js/src/hash
Просмотр файла: hash.js
import { _heap_write, is_buffer, is_bytes, is_string, string_to_bytes } from '../utils';
import { IllegalStateError } from '../errors';
export function hash_reset() {
this.result = null;
this.pos = 0;
this.len = 0;
this.asm.reset();
return this;
}
export function hash_process(data) {
if (this.result !== null) throw new IllegalStateError('state must be reset before processing new data');
if (is_string(data)) data = string_to_bytes(data);
if (is_buffer(data)) data = new Uint8Array(data);
if (!is_bytes(data)) throw new TypeError("data isn't of expected type");
var asm = this.asm,
heap = this.heap,
hpos = this.pos,
hlen = this.len,
dpos = 0,
dlen = data.length,
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;
}
export function hash_finish() {
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;
}
Выполнить команду
Для локальной разработки. Не используйте в интернете!