UNPKG

blake3-wasm

Version:

BLAKE3 hashing for JavaScript: WebAssembly bindings only

40 lines 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.keyedHash = exports.deriveKey = exports.hash = void 0; const blake3_internal_1 = require("@c4312/blake3-internal"); const hash_instance_js_1 = require("./hash-instance.js"); const hash_js_1 = require("./hash.js"); /** * Returns a blake3 hash of the input. */ function hash(input, { length = blake3_internal_1.defaultHashLength } = {}) { const hash = new hash_js_1.Hash(length); hash.set((0, blake3_internal_1.hashOneShot)((0, blake3_internal_1.inputToArray)(input), length)); return hash; } exports.hash = 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. */ function deriveKey(context, material, { length = blake3_internal_1.defaultHashLength } = {}) { const derive = (0, hash_instance_js_1.createDeriveKey)(context); derive.update((0, blake3_internal_1.inputToArray)(material)); const digest = derive.digest({ length }); derive.dispose(); return digest; } exports.deriveKey = deriveKey; /** * The keyed hash function. See {@link https://docs.rs/blake3/0.1.3/blake3/fn.keyed_hash.html}. */ function keyedHash(key, input, { length = blake3_internal_1.defaultHashLength } = {}) { const keyed = (0, hash_instance_js_1.createKeyed)((0, blake3_internal_1.inputToArray)(key)); keyed.update((0, blake3_internal_1.inputToArray)(input)); const digest = keyed.digest({ length }); keyed.dispose(); return digest; } exports.keyedHash = keyedHash; //# sourceMappingURL=hash-fn.js.map