UNPKG

blake3-wasm

Version:

BLAKE3 hashing for JavaScript: WebAssembly bindings only

45 lines 1.37 kB
import { getWasm, HashRaw, inputToArray, WasmHasher, } from '@c4312/blake3-internal'; import { mustGetEncoder } from './encoding.js'; import { Hash } from './hash.js'; /** * @inheritdoc */ export class BrowserHasher extends WasmHasher { alloc(n) { return new Hash(n); } /** * @inheritdoc * @override */ update(data) { return super.update(inputToArray(data)); } digest(encoding, options) { let resolvedOpts; let resolvedEnc; if (encoding && typeof encoding === 'object') { resolvedOpts = encoding; resolvedEnc = undefined; } else { resolvedOpts = options; resolvedEnc = encoding; } const result = super.digest(resolvedOpts); return resolvedEnc ? mustGetEncoder(resolvedEnc)(result) : result; } } /** * A Node.js crypto-like createHash method. */ export const createHash = () => new BrowserHasher(getWasm(), HashRaw.default()); /** * A Node.js crypto-like createHash method. */ export const createKeyed = (key) => new BrowserHasher(getWasm(), HashRaw.keyed(inputToArray(key))); /** * Construct a new Hasher for the key derivation function. */ export const createDeriveKey = (context) => new BrowserHasher(getWasm(), HashRaw.derive(inputToArray(context))); //# sourceMappingURL=hash-instance.js.map