From 733a6a5baf13f8e679f34743c2652da38ca7b2e2 Mon Sep 17 00:00:00 2001 From: Bekiboo Date: Thu, 4 Jun 2026 09:21:48 +0300 Subject: [PATCH 1/2] check pin validity --- .../routes/(app)/settings/pin/+page.svelte | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte b/infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte index bdb140cba..e4a69c4d2 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte @@ -32,11 +32,28 @@ const stepTitle = $derived( : "Confirm your new PIN", ); -function advance() { - if (!canSubmit) return; +async function advance() { + if (!canSubmit || submitting) return; error = null; if (step === "current") { - step = "new"; + if (!globalState) return; + submitting = true; + try { + const ok = + await globalState.securityController.verifyPin(currentPin); + if (!ok) { + error = "That's not your current PIN. Try again."; + currentPin = ""; + return; + } + step = "new"; + } catch (err) { + console.error("Failed to verify current PIN:", err); + error = "Couldn't verify your current PIN. Try again."; + currentPin = ""; + } finally { + submitting = false; + } } else if (step === "new") { step = "repeat"; } else { @@ -148,7 +165,7 @@ onMount(() => { class="w-full uppercase tracking-wide" disabled={!canSubmit || submitting} callback={advance} - blockingClick={step === "repeat"} + blockingClick={step !== "new"} > {step === "repeat" ? "Change PIN" : "Next"} From 007bb8f32238b3b7631bfdf80c39fbf66b19620c Mon Sep 17 00:00:00 2001 From: Bekiboo Date: Thu, 4 Jun 2026 09:25:42 +0300 Subject: [PATCH 2/2] Ensure new pin is different from existing --- .../eid-wallet/src/routes/(app)/settings/pin/+page.svelte | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte b/infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte index e4a69c4d2..520937d3e 100644 --- a/infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte +++ b/infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte @@ -55,6 +55,11 @@ async function advance() { submitting = false; } } else if (step === "new") { + if (newPin === currentPin) { + error = "Your new PIN must be different from your current PIN."; + newPin = ""; + return; + } step = "repeat"; } else { void submit();