mirror of
https://github.com/JonasunderscoreJones/api.jonasjones.dev.git
synced 2025-10-23 12:09:19 +02:00
79 lines
No EOL
2.2 KiB
JavaScript
79 lines
No EOL
2.2 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const hash_fn_1 = require("./hash-fn");
|
|
const index_1 = require("../base/index");
|
|
const stream_1 = require("stream");
|
|
const wasm_1 = require("./wasm");
|
|
const hash_reader_1 = require("./hash-reader");
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
class NodeHash extends stream_1.Transform {
|
|
constructor(implementation, getReader) {
|
|
super();
|
|
this.hash = new index_1.BaseHash(implementation, l => Buffer.alloc(l), getReader);
|
|
}
|
|
/**
|
|
* @reader
|
|
*/
|
|
reader(options) {
|
|
const reader = this.hash.reader(options);
|
|
return reader;
|
|
}
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
update(data, encoding) {
|
|
this.hash.update(hash_fn_1.normalizeInput(data, encoding));
|
|
return this;
|
|
}
|
|
digest(encoding, options) {
|
|
let resolvedOpts;
|
|
let resolvedEnc;
|
|
if (encoding && typeof encoding === 'object') {
|
|
resolvedOpts = encoding;
|
|
resolvedEnc = undefined;
|
|
}
|
|
else {
|
|
resolvedOpts = options;
|
|
resolvedEnc = encoding;
|
|
}
|
|
const result = this.hash.digest(resolvedOpts);
|
|
return resolvedEnc ? result.toString(resolvedEnc) : result;
|
|
}
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
dispose() {
|
|
this.hash.dispose();
|
|
}
|
|
/**
|
|
* @inheritdoc
|
|
* @hidden
|
|
*/
|
|
_transform(chunk, encoding, callback) {
|
|
this.update(chunk, encoding);
|
|
callback();
|
|
}
|
|
/**
|
|
* @inheritdoc
|
|
* @hidden
|
|
*/
|
|
_flush(callback) {
|
|
callback(null, this.digest());
|
|
}
|
|
}
|
|
exports.NodeHash = NodeHash;
|
|
/**
|
|
* A Node.js crypto-like createHash method.
|
|
*/
|
|
exports.createHash = () => new NodeHash(wasm_1.getWasm().create_hasher(), r => new hash_reader_1.NodeHashReader(r));
|
|
/**
|
|
* Construct a new Hasher for the keyed hash function.
|
|
*/
|
|
exports.createKeyed = (key) => new NodeHash(wasm_1.getWasm().create_keyed(key), r => new hash_reader_1.NodeHashReader(r));
|
|
/**
|
|
* Construct a new Hasher for the key derivation function.
|
|
*/
|
|
exports.createDeriveKey = (context) => new NodeHash(wasm_1.getWasm().create_derive(context), r => new hash_reader_1.NodeHashReader(r));
|
|
//# sourceMappingURL=hash-instance.js.map
|