UNPKG

blake3-wasm

Version:

BLAKE3 hashing for JavaScript: WebAssembly bindings only

34 lines 1.26 kB
import { defaultHashLength, hashOneShot, inputToArray, } from '@c4312/blake3-internal'; import { createDeriveKey, createKeyed } from './hash-instance.js'; import { Hash } from './hash.js'; /** * Returns a blake3 hash of the input. */ export function hash(input, { length = defaultHashLength } = {}) { const hash = new Hash(length); hash.set(hashOneShot(inputToArray(input), length)); return hash; } /** * Given cryptographic key material and a context string, services a subkey of * any length. See {@link https://docs.rs/blake3/0.1.3/blake3/fn.derive_key.html} * for more information. */ export function deriveKey(context, material, { length = defaultHashLength } = {}) { const derive = createDeriveKey(context); derive.update(inputToArray(material)); const digest = derive.digest({ length }); derive.dispose(); return digest; } /** * The keyed hash function. See {@link https://docs.rs/blake3/0.1.3/blake3/fn.keyed_hash.html}. */ export function keyedHash(key, input, { length = defaultHashLength } = {}) { const keyed = createKeyed(inputToArray(key)); keyed.update(inputToArray(input)); const digest = keyed.digest({ length }); keyed.dispose(); return digest; } //# sourceMappingURL=hash-fn.js.map