keepassxc/src/fdosecrets
Janek Bevendorff 596d2cf425 Refactor Config.
Replaces all string configuration options with enum types
that can be checked by the compiler. This prevents spelling
errors, in-place configuration definitions, and inconsistent
default values. The default value config getter signature was
removed in favour of consistently and centrally default-initialised
configuration values.

Individual default values were adjusted for better security,
such as the default password length, which was increased from
16 characters to 32.

The already existing config option deprecation map was extended
by a general migration procedure using configuration versioning.

Settings were split into Roaming and Local settings, which
go to their respective AppData locations on Windows.

Fixes #2574
Fixes #2193
2020-05-02 22:30:27 +02:00
..
objects FdoSecrets: check and show PID and executable for existing secret service process 2020-01-29 19:20:55 -05:00
widgets Bundle icons using the Qt resource system. 2020-03-14 10:13:12 -04:00
CMakeLists.txt FdoSecrets: UI improvements 2019-12-27 18:47:24 -05:00
DatabaseSettingsPageFdoSecrets.cpp Bundle icons using the Qt resource system. 2020-03-14 10:13:12 -04:00
DatabaseSettingsPageFdoSecrets.h Add Freedesktop.org Secret Storage Spec Server Side API (Fix #1403) 2019-05-12 12:35:42 -04:00
FdoSecretsPlugin.cpp FdoSecrets: check and show PID and executable for existing secret service process 2020-01-29 19:20:55 -05:00
FdoSecretsPlugin.h Bundle icons using the Qt resource system. 2020-03-14 10:13:12 -04:00
FdoSecretsSettings.cpp Refactor Config. 2020-05-02 22:30:27 +02:00
FdoSecretsSettings.h Add Freedesktop.org Secret Storage Spec Server Side API (Fix #1403) 2019-05-12 12:35:42 -04:00
GcryptMPI.cpp Add Freedesktop.org Secret Storage Spec Server Side API (Fix #1403) 2019-05-12 12:35:42 -04:00
GcryptMPI.h Add Freedesktop.org Secret Storage Spec Server Side API (Fix #1403) 2019-05-12 12:35:42 -04:00
README.md Fix typos in various .md files 2019-11-23 09:56:59 -05:00

Freedesktop.org Secret Storage Spec Server Side API

This plugin implements the Secret Storage specification version 0.2. While running KeePassXC, it acts as a Secret Service server, registered on DBus, so clients like seahorse, python-secretstorage, or other implementations can connect and access the exposed database in KeePassXC.

Configurable settings

  • The user can specify if a database is exposed on DBus, and which group is exposed.
  • Whether to show desktop notification is shown when an entry is retrieved.
  • Whether to skip confirmation for entries deleted from DBus

Implemented Attributes on Item Object

The following attributes are exposed:

Key Value
Title The entry title
UserName The entry user name
URL The entry URL
Notes The entry notes

In addition, all non-protected custom attributes are also exposed.

Architecture

  • FdoSecrets::Service is the top level DBus service
  • There is one and only one FdoSecrets::Collection per opened database tab
  • Each entry under the exposed database group has a corresponding FdoSecrets::Item DBus object.

Signal connections

  • Collections are created when a corresponding database tab opened
  • If the database is locked, a collection is created
  • When the database is unlocked, collection populates its children
  • If the unlocked database's exposed group is none, collection deletes itself
  • If the database's exposed group changes, collection repopulates
  • If the database's exposed group changes to none, collection deletes itself
  • If the database's exposed group changes from none, the service recreates a collection