/api/client/[id]/key Endpoint 삭제 및 프론트엔드와의 Zod 스키마 공유 구현

This commit is contained in:
static
2025-01-02 04:44:02 +09:00
parent 45df24b416
commit b07d67b958
27 changed files with 241 additions and 169 deletions

View File

@@ -4,6 +4,11 @@ import {
decryptRSACiphertext,
signRSAMessage,
} from "$lib/modules/crypto";
import type {
TokenUpgradeRequest,
TokenUpgradeResponse,
TokenUpgradeVerifyRequest,
} from "$lib/server/schemas";
export const requestTokenUpgrade = async (
encryptKeyBase64: string,
@@ -19,11 +24,11 @@ export const requestTokenUpgrade = async (
body: JSON.stringify({
encPubKey: encryptKeyBase64,
sigPubKey: verifyKeyBase64,
}),
} satisfies TokenUpgradeRequest),
});
if (!res.ok) return false;
const { challenge } = await res.json();
const { challenge }: TokenUpgradeResponse = await res.json();
const answer = await decryptRSACiphertext(decodeFromBase64(challenge), decryptKey);
const sigAnswer = await signRSAMessage(answer, signKey);
@@ -35,7 +40,7 @@ export const requestTokenUpgrade = async (
body: JSON.stringify({
answer: encodeToBase64(answer),
sigAnswer: encodeToBase64(sigAnswer),
}),
} satisfies TokenUpgradeVerifyRequest),
});
return res.ok;
};