Ver Fonte

Pass the name of the vault on changing a passphrase

Ralph Plawetzki há 3 anos atrás
pai
commit
445cb7e242

+ 8 - 0
src/main/java/org/cryptomator/common/keychain/KeychainManager.java

@@ -76,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;

+ 1 - 1
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);