This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

Gnome Keyring Architecture

Gnome keyring has many parts which work together to provide the services related to certificate, key, and secret storage. Below you'll find an overview image of how things work together, and after that a breakdown of each component.

Loose coupling of components (using published standards or public APIs) are shown with dotted lines.

attachment:gnome-keyring-architecture.png


daemon-auth

/daemon/pkcs11/

Loads and authenticates various PKCS#11 components running inside the daemon.


daemon-io

/daemon/


gcr

/gcr/

A public library that implements UI bits for certificates, keys, and does parsing, importing and related operations.


gp11

/gp11/

A public library with GObject based bindings for PKCS#11.


keyrings

/keyrings/

Manages the keyrings that store secrets (ie: passwords).


library

/library/

The libgnome-keyring.so library.


pam

/pam/

A PAM module which starts the daemon and unlocks the 'login' keyring.


plex-layer

/pkcs11/plex-layer/

Combines multiple PKCS#11 modules into a single PKCS#11 module with multiple slots.


rpc-layer

/pkcs11/rpc-layer/

Marshalls PKCS#11 API between applications and the daemon. Consists of a server component, and a public module loaded by applications.


roots-store

/pkcs11/roots-store/

A read-only PKCS#11 module that loads trusted root certificate authority certificates.


ssh-agent

/pkcs11/ssh-agent/

An openssh compatible SSH agent that uses PKCS#11 for key storage and crypto operations.


ssh-store

/pkcs11/ssh-store/

A read-only PKCS#11 module that loads keys from ~/.ssh/id_?sa*


ui

/daemon/ui/

Displays the various gnome-keyring prompts.


user-store

/pkcs11/user-store/

A writable PKCS#11 module that stores certificates and keys.


2024-10-23 11:37