import logger from 'log' const log = logger('crypto:pbkdf') export async function pbkdf(password: string, salt: Uint8Array, usages: KeyUsage[]): Promise { log.trace('derive') log.debug(`Usages : ${usages}`) const keyMaterial = await window.crypto.subtle.importKey( "raw", new TextEncoder().encode(password), "PBKDF2", false, ["deriveBits", "deriveKey"], ) return crypto.subtle.deriveKey( { name: "PBKDF2", iterations: 250_000, hash: "SHA-512", salt, }, keyMaterial, {name: "AES-GCM", length: 256}, false, usages, ) }