From bbf8e1d1e58e30f54d29492f4ced238763ed1df6 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 11 Dec 2025 14:35:23 +0100 Subject: [PATCH] Ensure that keyloader is not reused between vaults --- .../cryptomator/ui/health/HealthCheckModule.java | 4 ++-- .../ui/keyloading/KeyLoadingComponent.java | 15 +++------------ .../org/cryptomator/ui/unlock/UnlockModule.java | 4 ++-- 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/src/main/java/org/cryptomator/ui/health/HealthCheckModule.java b/src/main/java/org/cryptomator/ui/health/HealthCheckModule.java index c36f486e0..19595e0e9 100644 --- a/src/main/java/org/cryptomator/ui/health/HealthCheckModule.java +++ b/src/main/java/org/cryptomator/ui/health/HealthCheckModule.java @@ -63,8 +63,8 @@ abstract class HealthCheckModule { @Provides @HealthCheckWindow @HealthCheckScoped - static KeyLoadingStrategy provideKeyLoadingStrategy(KeyLoadingComponent.Builder compBuilder, @HealthCheckWindow Vault vault, @Named("unlockWindow") Stage window ) { - return compBuilder.vault(vault).window(window).build().keyloadingStrategy(); + static KeyLoadingStrategy provideKeyLoadingStrategy(KeyLoadingComponent.Factory compFactory, @HealthCheckWindow Vault vault, @Named("unlockWindow") Stage window ) { + return compFactory.create(vault, window).keyloadingStrategy(); } @Provides diff --git a/src/main/java/org/cryptomator/ui/keyloading/KeyLoadingComponent.java b/src/main/java/org/cryptomator/ui/keyloading/KeyLoadingComponent.java index 190bf0e1f..f035388f6 100644 --- a/src/main/java/org/cryptomator/ui/keyloading/KeyLoadingComponent.java +++ b/src/main/java/org/cryptomator/ui/keyloading/KeyLoadingComponent.java @@ -3,11 +3,8 @@ package org.cryptomator.ui.keyloading; import dagger.BindsInstance; import dagger.Subcomponent; import org.cryptomator.common.vaults.Vault; -import org.cryptomator.cryptolib.api.MasterkeyLoader; import javafx.stage.Stage; -import java.util.Map; -import java.util.function.Supplier; @KeyLoadingScoped @Subcomponent(modules = {KeyLoadingModule.class}) @@ -16,16 +13,10 @@ public interface KeyLoadingComponent { @KeyLoading KeyLoadingStrategy keyloadingStrategy(); - @Subcomponent.Builder - interface Builder { + @Subcomponent.Factory + interface Factory { - @BindsInstance - Builder vault(@KeyLoading Vault vault); - - @BindsInstance - Builder window(@KeyLoading Stage window); - - KeyLoadingComponent build(); + KeyLoadingComponent create(@BindsInstance @KeyLoading Vault vault, @KeyLoading @BindsInstance Stage window); } } diff --git a/src/main/java/org/cryptomator/ui/unlock/UnlockModule.java b/src/main/java/org/cryptomator/ui/unlock/UnlockModule.java index 1c8d758fc..50240c685 100644 --- a/src/main/java/org/cryptomator/ui/unlock/UnlockModule.java +++ b/src/main/java/org/cryptomator/ui/unlock/UnlockModule.java @@ -57,8 +57,8 @@ abstract class UnlockModule { @Provides @UnlockWindow @UnlockScoped - static KeyLoadingStrategy provideKeyLoadingStrategy(KeyLoadingComponent.Builder compBuilder, @UnlockWindow Vault vault, @UnlockWindow Stage window) { - return compBuilder.vault(vault).window(window).build().keyloadingStrategy(); + static KeyLoadingStrategy provideKeyLoadingStrategy(KeyLoadingComponent.Factory compFactory, @UnlockWindow Vault vault, @UnlockWindow Stage window) { + return compFactory.create(vault, window).keyloadingStrategy(); } @Provides