diff --git a/src/main/java/org/cryptomator/linux/keychain/SecretServiceKeychainAccess.java b/src/main/java/org/cryptomator/linux/keychain/SecretServiceKeychainAccess.java index 6bd1034..84938f4 100644 --- a/src/main/java/org/cryptomator/linux/keychain/SecretServiceKeychainAccess.java +++ b/src/main/java/org/cryptomator/linux/keychain/SecretServiceKeychainAccess.java @@ -10,6 +10,7 @@ import org.purejava.secret.api.EncryptedSession; import org.purejava.secret.api.Item; import org.purejava.secret.api.Static; +import org.purejava.secret.api.Util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -53,7 +54,10 @@ public void storePassphrase(String key, String displayName, CharSequence passphr if (call.value().isEmpty()) { List lockable = new ArrayList<>(); lockable.add(new DBusPath(collection.getDBusPath())); - session.getService().unlock(lockable); + var promptNeededToUnlock = session.getService().unlock(lockable); + if (promptNeededToUnlock.isSuccess() && !"/".equals(promptNeededToUnlock.value().b.getPath())) { + Util.promptAndGetResultAsArrayList(promptNeededToUnlock.value().b); + } var itemProps = Item.createProperties(LABEL_FOR_SECRET_IN_KEYRING, withKeyAndName(key, displayName)); var secret = session.encrypt(passphrase); var created = collection.createItem(itemProps, secret, false);