RSA 키 페어 생성 구현

This commit is contained in:
static
2024-12-27 00:36:06 +09:00
parent 5aefbcf9d9
commit d2e9c01776
5 changed files with 95 additions and 1 deletions

View File

@@ -1 +0,0 @@
// place files you want to import through the `$lib` alias in this folder.

30
src/lib/indexedDB.ts Normal file
View File

@@ -0,0 +1,30 @@
import { Dexie, type EntityTable } from "dexie";
interface ClientKeyPair {
type: "publicKey" | "privateKey";
key: CryptoKey;
}
const keyStore = new Dexie("keyStore") as Dexie & {
clientKeyPairs: EntityTable<ClientKeyPair, "type">;
};
keyStore.version(1).stores({
clientKeyPairs: "type",
});
export const getKeyPairFromIndexedDB = async () => {
const pubKey = await keyStore.clientKeyPairs.get("publicKey");
const privKey = await keyStore.clientKeyPairs.get("privateKey");
return {
pubKey: pubKey?.key ?? null,
privKey: privKey?.key ?? null,
};
};
export const storeKeyPairIntoIndexedDB = async (pubKey: CryptoKey, privKey: CryptoKey) => {
await keyStore.clientKeyPairs.bulkPut([
{ type: "publicKey", key: pubKey },
{ type: "privateKey", key: privKey },
]);
};