프론트엔드 암호 모듈 리팩토링

This commit is contained in:
static
2025-01-03 12:21:53 +09:00
parent afe672228a
commit aad5617d25
15 changed files with 336 additions and 298 deletions

View File

@@ -1,35 +1,36 @@
import {
generateRSAKeyPair,
makeRSAKeyNonextractable,
generateEncryptionKeyPair,
generateSigningKeyPair,
exportRSAKeyToBase64,
generateAESMasterKey,
wrapAESMasterKey,
makeRSAKeyNonextractable,
generateMasterKey,
wrapMasterKey,
} from "$lib/modules/crypto";
import { clientKeyStore } from "$lib/stores";
export const generateClientKeys = async () => {
const encKeyPair = await generateRSAKeyPair("encryption");
const sigKeyPair = await generateRSAKeyPair("signature");
const { encryptKey, decryptKey } = await generateEncryptionKeyPair();
const { signKey, verifyKey } = await generateSigningKeyPair();
clientKeyStore.set({
encryptKey: encKeyPair.publicKey,
decryptKey: await makeRSAKeyNonextractable(encKeyPair.privateKey),
signKey: await makeRSAKeyNonextractable(sigKeyPair.privateKey),
verifyKey: sigKeyPair.publicKey,
encryptKey,
decryptKey: await makeRSAKeyNonextractable(decryptKey),
signKey: await makeRSAKeyNonextractable(signKey),
verifyKey,
});
return {
encryptKey: encKeyPair.publicKey,
encryptKeyBase64: await exportRSAKeyToBase64(encKeyPair.publicKey),
decryptKeyBase64: await exportRSAKeyToBase64(encKeyPair.privateKey),
signKeyBase64: await exportRSAKeyToBase64(sigKeyPair.privateKey),
verifyKeyBase64: await exportRSAKeyToBase64(sigKeyPair.publicKey),
encryptKey,
encryptKeyBase64: await exportRSAKeyToBase64(encryptKey),
decryptKeyBase64: await exportRSAKeyToBase64(decryptKey),
signKeyBase64: await exportRSAKeyToBase64(signKey),
verifyKeyBase64: await exportRSAKeyToBase64(verifyKey),
};
};
export const generateInitialMasterKey = async (encryptKey: CryptoKey) => {
const masterKey = await generateAESMasterKey();
const { masterKey } = await generateMasterKey();
return {
masterKeyWrapped: await wrapAESMasterKey(masterKey, encryptKey),
masterKeyWrapped: await wrapMasterKey(masterKey, encryptKey),
};
};