mpatibility. const ret = this[kHandle].digest(`${outputEncoding}`); state[kFinalized] = true; return ret; }; Hmac.prototype._flush = Hash.prototype._flush; Hmac.prototype._transform = Hash.prototype._transform; // Implementation for WebCrypto subtle.digest() async function asyncDigest(algorithm, data) { validateMaxBufferLength(data, 'data'); switch (algorithm.name) { case 'SHA-1': // Fall through case 'SHA-256': // Fall through case 'SHA-384': // Fall through case 'SHA-512': return jobPromise(() => new HashJob( kCryptoJobAsync, normalizeHashName(algorithm.name), data)); } throw lazyDOMException('Unrecognized algorithm name', 'NotSupportedError'); } module.exports = { Hash, Hmac, asyncDigest, };