1234567891011121314151617181920212223242526 |
- import { pbkdf2 as _pbkdf2, pbkdf2Async as _pbkdf2Async } from "@noble/hashes/pbkdf2";
- import { sha256 } from "@noble/hashes/sha256";
- import { sha512 } from "@noble/hashes/sha512";
- import { assertBytes } from "./utils.js";
- export async function pbkdf2(password, salt, iterations, keylen, digest) {
- if (!["sha256", "sha512"].includes(digest)) {
- throw new Error("Only sha256 and sha512 are supported");
- }
- assertBytes(password);
- assertBytes(salt);
- return _pbkdf2Async(digest === "sha256" ? sha256 : sha512, password, salt, {
- c: iterations,
- dkLen: keylen
- });
- }
- export function pbkdf2Sync(password, salt, iterations, keylen, digest) {
- if (!["sha256", "sha512"].includes(digest)) {
- throw new Error("Only sha256 and sha512 are supported");
- }
- assertBytes(password);
- assertBytes(salt);
- return _pbkdf2(digest === "sha256" ? sha256 : sha512, password, salt, {
- c: iterations,
- dkLen: keylen
- });
- }
|