Spaces:
Configuration error
Configuration error
; | |
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 |