From 54a005a5c97fcb4a0bb98d10a0baacd73883acf2 Mon Sep 17 00:00:00 2001 From: Ralph Plawetzki Date: Mon, 4 Oct 2021 19:45:26 +0200 Subject: [PATCH 1/4] Pass the name of the vault on storing a passphrase --- pom.xml | 2 +- .../org/cryptomator/common/keychain/KeychainManager.java | 6 ++++++ .../masterkeyfile/MasterkeyFileLoadingFinisher.java | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index ce8a4b4d8..e6544520a 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 2.1.0-beta13 - 1.0.0 + 1.1.0 1.0.0-rc1 1.0.0-rc1 1.0.0-rc2 diff --git a/src/main/java/org/cryptomator/common/keychain/KeychainManager.java b/src/main/java/org/cryptomator/common/keychain/KeychainManager.java index c97d0e9c9..e8783e159 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); 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); } From 445cb7e242beef36d9d6f84bed19ba15ca6b0d9d Mon Sep 17 00:00:00 2001 From: Ralph Plawetzki Date: Wed, 6 Oct 2021 07:53:38 +0200 Subject: [PATCH 2/4] Pass the name of the vault on changing a passphrase --- .../org/cryptomator/common/keychain/KeychainManager.java | 8 ++++++++ .../ui/changepassword/ChangePasswordController.java | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/cryptomator/common/keychain/KeychainManager.java b/src/main/java/org/cryptomator/common/keychain/KeychainManager.java index e8783e159..d6adadfe4 100644 --- a/src/main/java/org/cryptomator/common/keychain/KeychainManager.java +++ b/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; diff --git a/src/main/java/org/cryptomator/ui/changepassword/ChangePasswordController.java b/src/main/java/org/cryptomator/ui/changepassword/ChangePasswordController.java index 54519f21f..b36ae89bf 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); From d4e0b4d07d38a398b97015a48341db87e960b7f9 Mon Sep 17 00:00:00 2001 From: Ralph Plawetzki Date: Fri, 8 Oct 2021 12:13:28 +0200 Subject: [PATCH 3/4] Change to 1.1.0-beta1 for now, so CI can load the dependency --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e6544520a..39757709d 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 2.1.0-beta13 - 1.1.0 + 1.1.0-beta1 1.0.0-rc1 1.0.0-rc1 1.0.0-rc2 From 919257a99eb56a188e9fdebd4b7970ec66edc2e1 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 2 Dec 2021 11:23:27 +0100 Subject: [PATCH 4/4] Bump dagger --- pom.xml | 2 +- src/main/resources/license/THIRD-PARTY.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 613654b56..55501fb5c 100644 --- a/pom.xml +++ b/pom.xml @@ -42,7 +42,7 @@ 3.18.2 2.2 31.0-jre - 2.39 + 2.40.3 2.8.9 1.5.2 1.7.32 diff --git a/src/main/resources/license/THIRD-PARTY.txt b/src/main/resources/license/THIRD-PARTY.txt index 3b3ad5ab2..dac878ab9 100644 --- a/src/main/resources/license/THIRD-PARTY.txt +++ b/src/main/resources/license/THIRD-PARTY.txt @@ -17,7 +17,7 @@ Cryptomator uses 40 third-party dependencies under the following licenses: - jnr-a64asm (com.github.jnr:jnr-a64asm:1.0.0 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-a64asm) - jnr-constants (com.github.jnr:jnr-constants:0.10.2 - http://github.com/jnr/jnr-constants) - jnr-ffi (com.github.jnr:jnr-ffi:2.2.7 - http://github.com/jnr/jnr-ffi) - - Dagger (com.google.dagger:dagger:2.39 - https://github.com/google/dagger) + - Dagger (com.google.dagger:dagger:2.40.3 - https://github.com/google/dagger) - Guava InternalFutureFailureAccess and InternalFutures (com.google.guava:failureaccess:1.0.1 - https://github.com/google/guava/failureaccess) - Guava: Google Core Libraries for Java (com.google.guava:guava:31.0-jre - https://github.com/google/guava) - Apache Commons CLI (commons-cli:commons-cli:1.4 - http://commons.apache.org/proper/commons-cli/)