blake3-wasm
Version:
BLAKE3 hashing for JavaScript: WebAssembly bindings only
40 lines • 1.66 kB
JavaScript
;
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