diff --git a/pom.xml b/pom.xml index 8caeb8a32..613654b56 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 2.3.0 - 1.0.0 + 1.1.0-beta1 1.0.0 1.0.0 1.0.1 diff --git a/src/main/java/org/cryptomator/common/keychain/KeychainManager.java b/src/main/java/org/cryptomator/common/keychain/KeychainManager.java index c97d0e9c9..d6adadfe4 100644 --- a/src/main/java/org/cryptomator/common/keychain/KeychainManager.java +++ b/src/main/java/org/cryptomator/common/keychain/KeychainManager.java @@ -49,6 +49,12 @@ public class KeychainManager implements KeychainAccessProvider { setPassphraseStored(key, true); } + @Override + public void storePassphrase(String key, String displayName, CharSequence passphrase) throws KeychainAccessException { + getKeychainOrFail().storePassphrase(key, displayName, passphrase); + setPassphraseStored(key, true); + } + @Override public char[] loadPassphrase(String key) throws KeychainAccessException { char[] passphrase = getKeychainOrFail().loadPassphrase(key); @@ -70,6 +76,14 @@ public class KeychainManager implements KeychainAccessProvider { } } + @Override + public void changePassphrase(String key, String displayName, CharSequence passphrase) throws KeychainAccessException { + if (isPassphraseStored(key)) { + getKeychainOrFail().changePassphrase(key, displayName, passphrase); + setPassphraseStored(key, true); + } + } + @Override public boolean isSupported() { return keychain.getValue() != null; diff --git a/src/main/java/org/cryptomator/ui/changepassword/ChangePasswordController.java b/src/main/java/org/cryptomator/ui/changepassword/ChangePasswordController.java index 79b3790a0..c715f0466 100644 --- a/src/main/java/org/cryptomator/ui/changepassword/ChangePasswordController.java +++ b/src/main/java/org/cryptomator/ui/changepassword/ChangePasswordController.java @@ -102,7 +102,7 @@ public class ChangePasswordController implements FxController { private void updatePasswordInSystemkeychain() { if (keychain.isSupported() && !keychain.isLocked()) { try { - keychain.changePassphrase(vault.getId(), newPasswordController.passwordField.getCharacters()); + keychain.changePassphrase(vault.getId(), vault.getDisplayName(), newPasswordController.passwordField.getCharacters()); LOG.info("Successfully updated password in system keychain for {}", vault.getDisplayName()); } catch (KeychainAccessException e) { LOG.error("Failed to update password in system keychain.", e); diff --git a/src/main/java/org/cryptomator/ui/keyloading/masterkeyfile/MasterkeyFileLoadingFinisher.java b/src/main/java/org/cryptomator/ui/keyloading/masterkeyfile/MasterkeyFileLoadingFinisher.java index 8eda41cd0..44d7ebfb0 100644 --- a/src/main/java/org/cryptomator/ui/keyloading/masterkeyfile/MasterkeyFileLoadingFinisher.java +++ b/src/main/java/org/cryptomator/ui/keyloading/masterkeyfile/MasterkeyFileLoadingFinisher.java @@ -47,7 +47,7 @@ class MasterkeyFileLoadingFinisher { private void savePasswordToSystemkeychain() { if (keychain.isSupported()) { try { - keychain.storePassphrase(vault.getId(), CharBuffer.wrap(enteredPassword.get())); + keychain.storePassphrase(vault.getId(), vault.getDisplayName(), CharBuffer.wrap(enteredPassword.get())); } catch (KeychainAccessException e) { LOG.error("Failed to store passphrase in system keychain.", e); }