The secret-service library implements the Secret Service API 0.2.
The 2.0 interface design is to be found on the develop-2.x.x
branch.
Fixed
:- Avoid
AddressResolvingException
at startup by catchingDBusExecutionException
s at static initialization #47.
- Avoid
2.0.0-alpha - 2023-08-06
Added
- Introduce java modules
module-info.java
- Introduce java modules
- Changed`
- Update
hkdf
from1.1.0
to2.0.0
- Update
slf4j
from2.0.6
to2.0.7
- Update Maven dependencies
- Update
1.8.1-jdk17 - 2023-01-17
Fixed
:- Actually use
dbus-java-transport-native-unixsocket
instead ofdbus-java-transport-jnr-unixsocket
.
- Actually use
Changed
:- Update
slf4j-api
from2.0.5
to2.0.6
. - Update test and plugin libraries.
- Update
1.8.0-jdk17 - 2022-12-12
Changed
:- Make dbus service
org.gnome.keyring
an optional requirement. Theorg.gnome.keyring.InternalUnsupportedGuiltRiddenInterface
is not part of the original specification. In order to unlock theSimpleCollection
with a primary password, the dbus serviceorg.gnome.keyring
needs to be present. There is the new static methodSimpleCollection.isGnomeKeyringAvailable()
in order to check the Gnome keyring availability separately. - Require JDK 17 for
dbus-java
upgrade. - Update
dbus-java
from3.3.0
to4.2.1
. Using the new split librarydbus-java-core
together withdbus-java-transport-native-unixsocket
. - Update
slf4j-api
from1.7.30
to2.0.4
.
- Make dbus service
1.7.0 - 2021-10-18
Fixed
- Fix #30 by removing the auto-close disconnect of
SimpleCollection
instances, which were introduced for #26. One has to callSimpleCollection.disconnect()
manually in order to close the D-Bus connection or wait for the shutdown hook ofSimpleCollection
, which eventually will close the D-Bus connection. The shutdown hook is always set-up with the static lifetime ofSimpleCollection
. - Fix dead-lock of [cryptomator/integrations-linux#12]cryptomator/integrations-linux#12 with the new
SimpleCollection.disconnect()
method. Waits only for 2 seconds to close the connection properly and logs otherwise.
- Fix #30 by removing the auto-close disconnect of
Changed
- Removes the
ReentrantLock
fromSimpleCollection.disconnect
and changes the method signature tosynchronized
.
- Removes the
Added
- Add a regression test for #30 that checks if multiple instances of the
SimpleCollection
can be used one after the other. - Add
SimpleCollection.isConnected()
to the public interface as static method. - Add
SimpleCollection.disconnect()
to the public interface as static method.
- Add a regression test for #30 that checks if multiple instances of the
1.6.2 - 2021-04-22
Fixed
Hotfix
: Check for all necessary services on the system:org.freedesktop.DBus
,org.freedesktop.secrets
,org.gnome.keyring
1.6.1 - 2021-04-16
Fixed
Hotfix
: 'SimpleCollection()' is not public in 'org.freedesktop.secret.simple.SimpleCollection'. Could not be accessed from outside package.
1.6.0 - 2021-04-16
Fixed
- Fix cryptomator/integrations-linux/issues/5 by using
dbus-java
3.3.0
, which solves dbus-java/issues/128. - Fix #26 by closing
DBusConnection
on the auto close of theSimpleCollection
. The D-Bus connection closes now immediately on callingSimpleCollection.close()
or at the end of the lifetime of the static scope fromSimpleCollection
. - Handle
org.gnome.keyring.Error.Denied
asinfo
log message (MessageHandler
). E.g. if the password of a collection is wrong. - Handle
org.freedesktop.dbus.exceptions.NotConnected
asdebug
log message (MessageHandler
).
- Fix cryptomator/integrations-linux/issues/5 by using
1.5.0 - 2021-02-18
Fixed
- Fix the static
isAvailable()
method by also checking if the D-Bus serviceorg.freedesktop.DBus
is provided by the system and can open a session. - Handle
org.freedesktop.DBus.Error.ServiceUnknown
D-Bus errors.
- Fix the static
Changed
- Change the low-level
TransportEncryption.openSession()
return type fromvoid
toboolean
. - Handle
org.freedesktop.DBus.Error.*
asdebug
log message (MessageHandler
). - Handle
org.freedesktop.Secret.Error.*
aswarn
orinfo
log message (MessageHandler
).
- Change the low-level
1.4.0 - 2021-01-19
Fixed
- Fix the static
isAvailable()
method by checking if the secret service is actually provided by the D-Bus and supports the expected transport encryption algorithm.
- Fix the static
1.3.1 - 2021-01-19
Changed
- Warn with a short message instead of logging the whole stack trace, when there is a problem with the D-Bus connection.
Fixed
- Fix a
NullPointerException
for the staticisAvailable()
method, when there is no D-Bus connection available. This happened, whendbus-java
raises aRuntimeException: Cannot Resolve Session Bus Address
and the connection kept being uninitialized, which was not checked by theisAvailable()
method.
- Fix a
1.3.0 - 2021-01-05
Added
- Add
isLocked()
method to theSimpleCollection
interface.
- Add
Fixed
- Fix
#21
, which lead to a race condition when closing the connection like 1/25 times. The problem was very kindly investigated by @infeo and fixed by @hypfvieh indbus-java
in version3.2.4
. - Fix problems of integrations-linux/pull/1, thanks goes to @purejava for pointing out the issues:
- Make main thread interruptible for better signal handling and ui integrations
- Handle
org.freedesktop.DBus.Error.UnknownMethod
for better prompt handling and warn only. - Warn on
org.freedesktop.Secret.Error.NoSession
,org.freedesktop.Secret.Error.NoSuchObject
,org.freedesktop.Secret.Error.IsLocked
with a short message, instead of writing a whole stacktrace.
- Fix a
ClassCastException
for locked keyrings for the SimpleCollection interface. - Fix problems of integrations-linux/pull/4, thanks to @Liboicl for reporting and PRs:
- Handle unexpected
RuntimeException
if no D-Bus session can be initiated.
- Handle unexpected
- Fix
1.2.3 - 2020-11-09
Added
- Add possible
RuntimeException
s:AccessControlException
,IllegalArgumentException
to the SimpleCollection example. - Add an interface
org.freedesktop.secret.simple.interfaces.SimpleCollection
for the high-level api.
- Add possible
Fixed
- Overhaul of the disconnect logic for the signal handlers and the D-Bus connection.
One has to disconnect the signal handlers manually using the low-level api.
The new introduced changes should avoid race conditions during the
disconnect()
phase and thus hopefully:- Fix
#20
- Fix
- Overhaul of the disconnect logic for the signal handlers and the D-Bus connection.
One has to disconnect the signal handlers manually using the low-level api.
The new introduced changes should avoid race conditions during the
1.2.2 - 2020-11-06
Fixed
1.2.1 - 2020-10-17
Fixed
#23
Already created non default collections with a master password will use the master password to unlock the collection silently. Before the user was prompted for already created collections.
1.2.0 - 2020-09-17
Added
Changed
- the
SimpleCollection
constructor checks the availability of the secret service by usingSimpleCollection.isAvailable()
. - ask only once for user permission per session. This avoids multiple unlock prompts right after another.
- synchronize the access to the handled signals for
SignalHandler.handle()
.
- the
Fix
- make
SimpleCollection.lock()
andSimpleCollection.unlockWithUserPermission()
actually public, instead of protected. - do not exit early on unexpected signals for
SignalHandler.await()
.
- make
1.1.0 - 2020-08-14
Added
- add
SimpleCollection.setTimeout()
. In order to set a timeout for awaiting prompts. - add
SimpleCollection.lock()
. In order to lock a given collection at any time.
- add
Changed
- improve signal handling by closing open prompts automatically after the timeout.
- change the default timeout from 300 to 120 seconds and make it configurable.
- make
SimpleCollection.unlockWithUserPermission()
publicprotected.
1.0.1 - 2020-08-14
Changed
- update
dbus-java
to3.2.3
to fix #13.
- update
1.0.0 - 2020-05-07
Changed
- The signal handlers have now a default timeout of 300 seconds instead of 60.
- The signal handling timeout can now be set in the low-level API.
- Update dependencies up to the same patch level
- Clarify ambiguous call
HKDF.fromHmacSha256().extract()
by explicit type casting.
- Clarify ambiguous call
Fixed
#4
,#10
: Fix RejectedExecutionException by closing the session#9
: Fix module problem fororg.freedesktop.dbus
which is also used bydbus-java
#11
: Fix JDK8 support by using therelease
flag for themaven-compiler-plugin
.
1.0.0-RC.3 - 2019-05-07
Changed
- update dependencies
1.0.0-RC.2 - 2019-03-19
Added
- add
slf4j-api
dependency
- add
Fixed
- use
slf4j-simple
only in test scope
- use
1.0.0-RC.1 - 2019-03-12
- implement the Secret Service API 0.2