mirror of
https://github.com/kmc7468/arkvault.git
synced 2025-12-16 06:58:46 +00:00
27 lines
894 B
TypeScript
27 lines
894 B
TypeScript
import type { ClientInit } from "@sveltejs/kit";
|
|
import { getClientKey, getMasterKeys } from "$lib/indexedDB";
|
|
import { clientKeyStore, masterKeyStore } from "$lib/stores";
|
|
|
|
const prepareClientKeyStore = async () => {
|
|
const [encryptKey, decryptKey, signKey, verifyKey] = await Promise.all([
|
|
getClientKey("encrypt"),
|
|
getClientKey("decrypt"),
|
|
getClientKey("sign"),
|
|
getClientKey("verify"),
|
|
]);
|
|
if (encryptKey && decryptKey && signKey && verifyKey) {
|
|
clientKeyStore.set({ encryptKey, decryptKey, signKey, verifyKey });
|
|
}
|
|
};
|
|
|
|
const prepareMasterKeyStore = async () => {
|
|
const masterKeys = await getMasterKeys();
|
|
if (masterKeys.length > 0) {
|
|
masterKeyStore.set(new Map(masterKeys.map((masterKey) => [masterKey.version, masterKey])));
|
|
}
|
|
};
|
|
|
|
export const init: ClientInit = async () => {
|
|
await Promise.all([prepareClientKeyStore(), prepareMasterKeyStore()]);
|
|
};
|