From aa34ad52e628a95e0adef5c540bca389dd38f24c Mon Sep 17 00:00:00 2001 From: Ralph Plawetzki Date: Wed, 14 Aug 2024 10:52:39 +0200 Subject: [PATCH] Use overloaded method storePassword instead of a new one --- .../cryptomator/common/keychain/KeychainManager.java | 5 ++--- .../masterkeyfile/MasterkeyFileLoadingStrategy.java | 6 +----- .../ui/vaultoptions/MasterkeyOptionsController.java | 10 +--------- .../cryptomator/common/keychain/MapKeychainAccess.java | 5 ----- 4 files changed, 4 insertions(+), 22 deletions(-) diff --git a/src/main/java/org/cryptomator/common/keychain/KeychainManager.java b/src/main/java/org/cryptomator/common/keychain/KeychainManager.java index 734594345..9d71121b8 100644 --- a/src/main/java/org/cryptomator/common/keychain/KeychainManager.java +++ b/src/main/java/org/cryptomator/common/keychain/KeychainManager.java @@ -49,9 +49,8 @@ public class KeychainManager implements KeychainAccessProvider { setPassphraseStored(key, true); } - @Override - public void storePassphraseForAuthenticatedUser(String key, String displayName, CharSequence passphrase) throws KeychainAccessException { - getKeychainOrFail().storePassphraseForAuthenticatedUser(key, displayName, passphrase); + public void storePassphrase(String key, String displayName, CharSequence passphrase, boolean requireOsAuthentication) throws KeychainAccessException { + getKeychainOrFail().storePassphrase(key, displayName, passphrase, requireOsAuthentication); setPassphraseStored(key, true); } diff --git a/src/main/java/org/cryptomator/ui/keyloading/masterkeyfile/MasterkeyFileLoadingStrategy.java b/src/main/java/org/cryptomator/ui/keyloading/masterkeyfile/MasterkeyFileLoadingStrategy.java index 405365ac6..1e50df139 100644 --- a/src/main/java/org/cryptomator/ui/keyloading/masterkeyfile/MasterkeyFileLoadingStrategy.java +++ b/src/main/java/org/cryptomator/ui/keyloading/masterkeyfile/MasterkeyFileLoadingStrategy.java @@ -114,11 +114,7 @@ public class MasterkeyFileLoadingStrategy implements KeyLoadingStrategy { private void savePasswordToSystemkeychain(Passphrase passphrase) { if (keychain.isSupported()) { try { - if (vault.getVaultSettings().needAuthenticatedUser.get()) { - keychain.storePassphraseForAuthenticatedUser(vault.getId(), vault.getDisplayName(), passphrase); - } else { - keychain.storePassphrase(vault.getId(), vault.getDisplayName(), passphrase); - } + keychain.storePassphrase(vault.getId(), vault.getDisplayName(), passphrase, vault.getVaultSettings().needAuthenticatedUser.get()); } catch (KeychainAccessException e) { LOG.error("Failed to store passphrase in system keychain.", e); } diff --git a/src/main/java/org/cryptomator/ui/vaultoptions/MasterkeyOptionsController.java b/src/main/java/org/cryptomator/ui/vaultoptions/MasterkeyOptionsController.java index aa627215c..8c0c6ea24 100644 --- a/src/main/java/org/cryptomator/ui/vaultoptions/MasterkeyOptionsController.java +++ b/src/main/java/org/cryptomator/ui/vaultoptions/MasterkeyOptionsController.java @@ -54,10 +54,6 @@ public class MasterkeyOptionsController implements FxController { public void initialize() { needAuthenticatedUserCheckbox.selectedProperty().bindBidirectional(vault.getVaultSettings().needAuthenticatedUser); needAuthenticatedUserCheckbox.selectedProperty().addListener(this::needAuthenticatedUserCheckboxToggled); - // ToDo Remove or adjust, as soon as there are implementations for integrations-api KeychainAccessProvider:storePassphraseForAuthenticatedUser for other OSes - if (!SystemUtils.IS_OS_MAC) { - needAuthenticatedUserCheckbox.setVisible(false); - } } /** @@ -74,11 +70,7 @@ public class MasterkeyOptionsController implements FxController { if (keychain.isPassphraseStored(vaultId)) { var passphrase = keychain.loadPassphrase(vaultId); keychain.deletePassphrase(vaultId); - if (isSet) { - keychain.storePassphraseForAuthenticatedUser(vaultId, vault.getId(), new Passphrase(passphrase)); - } else { - keychain.storePassphrase(vaultId, vault.getId(), new Passphrase(passphrase)); - } + keychain.storePassphrase(vaultId, vault.getId(), new Passphrase(passphrase), isSet); } } catch (KeychainAccessException e) { LOG.error("Failed to migrate item in system keychain due to access control change.", e); diff --git a/src/test/java/org/cryptomator/common/keychain/MapKeychainAccess.java b/src/test/java/org/cryptomator/common/keychain/MapKeychainAccess.java index d81fee25e..73c8da522 100644 --- a/src/test/java/org/cryptomator/common/keychain/MapKeychainAccess.java +++ b/src/test/java/org/cryptomator/common/keychain/MapKeychainAccess.java @@ -29,11 +29,6 @@ class MapKeychainAccess implements KeychainAccessProvider { map.put(key, pw); } - @Override - public void storePassphraseForAuthenticatedUser(String key, String displayName,CharSequence passphrase) { - storePassphrase(key, displayName, passphrase); - } - @Override public char[] loadPassphrase(String key) { return map.get(key);