On intense testing for this issue I discovered, that SecretServiceKeychainAccess tries to unlock the keyring within storePassphrase() and fails.
This only happens for storePassphrase(), not for loadPassphrase() or the two others and only with gnome-keyring. A gnome-keyring can be locked e.g. when there is a password set for the keyring that differs from the user password, so the keyring does not get unlocked automatically on user login to the session.
The reason for the failing unlock attempt is a prompt, that is generated by gnome-keyring, because the keyring is locked and should be accessed, but the prompt is not handled:
|
session.getService().unlock(lockable); |
The unlock()-Method returns "DBusResult[value=org.purejava.secret.api.Pair<[], /org/freedesktop/secrets/prompt/u2>, error=null]" in case of a locked gnome-keyring.
A fix would be to handle the prompt. This does not break anything, as the prompt handling is needed to unlock the keyring as intended within storePassphrase().
On intense testing for this issue I discovered, that SecretServiceKeychainAccess tries to unlock the keyring within
storePassphrase()and fails.This only happens for
storePassphrase(), not forloadPassphrase()or the two others and only with gnome-keyring. A gnome-keyring can be locked e.g. when there is a password set for the keyring that differs from the user password, so the keyring does not get unlocked automatically on user login to the session.The reason for the failing unlock attempt is a prompt, that is generated by gnome-keyring, because the keyring is locked and should be accessed, but the prompt is not handled:
integrations-linux/src/main/java/org/cryptomator/linux/keychain/SecretServiceKeychainAccess.java
Line 56 in 060eba7
The
unlock()-Method returns"DBusResult[value=org.purejava.secret.api.Pair<[], /org/freedesktop/secrets/prompt/u2>, error=null]"in case of a locked gnome-keyring.A fix would be to handle the prompt. This does not break anything, as the prompt handling is needed to unlock the keyring as intended within
storePassphrase().