Each secret collection (i.e. keyring) has a "Locked" property. You can retrieve object properties by calling Get() on the org.freedesktop.DBus.Properties interface:
$ busctl --user introspect org.freedesktop.secrets \
/org/freedesktop/secrets/collection/login
NAME TYPE SIGNATURE RESULT/VALUE
org.freedesktop.DBus.Properties interface - -
.Get method ss v
org.freedesktop.Secret.Collection interface - -
.Label property s "Login"
.Locked property b false
$ busctl --user get-property org.freedesktop.secrets \
/org/freedesktop/secrets/collection/login \
org.freedesktop.Secret.Collection Locked
b false
$ gdbus introspect -e -d org.freedesktop.secrets \
-o /org/freedesktop/secrets/collection/login
node /org/freedesktop/secrets/collection/login {
interface org.freedesktop.DBus.Properties {
methods:
Get(in s interface_name,
in s property_name,
out v value);
};
interface org.freedesktop.Secret.Collection {
properties:
readonly b Locked = false;
};
};
$ gdbus call -e -d org.freedesktop.secrets \
-o /org/freedesktop/secrets/collection/login \
-m org.freedesktop.DBus.Properties.Get \
org.freedesktop.Secret.Collection Locked
(<false>,)
You can also receive property change notifications through the PropertiesChanged
signal (depending on programming language, your D-Bus library might provide a wrapper for this).