99This project uses Meson and Ninja.
1010
1111Package requirements:
12- - GTK4
13- - gettext
14- - libdbus-1
15- - libssl/openssl
16- - libudev
17- - desktop-file-utils
12+
13+ - GTK4
14+ - gettext
15+ - libdbus-1
16+ - libssl/openssl
17+ - libudev
18+ - desktop-file-utils
1819
1920For example, on Ubuntu:
21+
2022``` shell
2123sudo apt update && sudo apt install \
2224 # Build dependencies
@@ -42,9 +44,10 @@ ninja -C build
4244
4345``` shell
4446# Run the server, with debug logging enabled
45- export GSETTINGS_SCHEMA_DIR=build/xyz-iinuwa-credential-manager-portal-gtk/data
46- export RUST_LOG=xyz_iinuwa_credential_manager_portal_gtk=debug
47- ./build/xyz-iinuwa-credential-manager-portal-gtk/src/xyz-iinuwa-credential-manager-portal-gtk
47+ export GSETTINGS_SCHEMA_DIR=build/creds-ui/data
48+ export RUST_LOG=credsd=debug,creds_ui=debug
49+ ./build/credsd/target/debug/credsd &
50+ ./build/creds-ui/target/debug/creds-ui
4851```
4952
5053### Clients
@@ -59,7 +62,6 @@ cd demo_client/
5962
6063There is also a demo web extension that can be used to test the service in Firefox. Instructions are in [ webext/README.md] ( ) .
6164
62-
6365## Goals
6466
6567The goal of this repository is to define a spec for clients (apps, browsers,
@@ -77,29 +79,30 @@ Some high-level goals:
7779 etc.) to hook into
7880
7981Some nice-to-haves:
82+
8083- Design a specification for a platform authenticator. I'm not sure whether this
81- needs to be specified, or whether it could be considered and implemented as a
82- first-party credential provider.
84+ needs to be specified, or whether it could be considered and implemented as a
85+ first-party credential provider.
8386
8487Some non-goals:
8588
8689- Fully integrate with any specific desktop environment. Each desktop
87- environment (GNOME, KDE, etc.) has its own UI and UX conventions, as well as
88- system configuration methods (e.g., GNOME Settings), which this API will need to integrate with.
89- Because of the variation, we intend to leave integration with these other
90- components to developers more familiar with each of the desktop environments.
91- For now, we are using bare GTK to build a UI for testing, but any UI
92- implementation in this repository is for reference purposes. If anyone is willing to do some of this integration work, feel free to contact us!
90+ environment (GNOME, KDE, etc.) has its own UI and UX conventions, as well as
91+ system configuration methods (e.g., GNOME Settings), which this API will need to integrate with.
92+ Because of the variation, we intend to leave integration with these other
93+ components to developers more familiar with each of the desktop environments.
94+ For now, we are using bare GTK to build a UI for testing, but any UI
95+ implementation in this repository is for reference purposes. If anyone is willing to do some of this integration work, feel free to contact us!
9396
9497- Create a full-featured password manager. Features like Password syncing,
95- password generation, rotation, etc. is not part of this specficiation. Other
96- password manager projects should be able to use this to make their credentials
97- available to the user uniformly, though.
98+ password generation, rotation, etc. is not part of this specficiation. Other
99+ password manager projects should be able to use this to make their credentials
100+ available to the user uniformly, though.
98101
99102- BSD support. While we'd love to help out all open desktop environments, we don't
100- know enough about any BSD to make it useful for them. Hopefully, the design
101- process is transparent enough that someone else could design something that
102- works for BSDs.
103+ know enough about any BSD to make it useful for them. Hopefully, the design
104+ process is transparent enough that someone else could design something that
105+ works for BSDs.
103106
104107## Current Work
105108
@@ -142,9 +145,8 @@ Alternatively, lock out the credential based on incorrect attempts.
142145![ ] ( images/security-key-3.png )
143146![ ] ( images/end.png )
144147
145-
146-
147148## Related projects:
149+
148150- https://github.com/linux-credentials/libwebauthn (previously https://github.com/AlfioEmanueleFresta/xdg-credentials-portal )
149151- authenticator-rs
150152- webauthn-rs
0 commit comments