|
2 | 2 |
|
3 | 3 | # Linux Credential Manager API |
4 | 4 |
|
| 5 | +## How to run |
| 6 | + |
| 7 | +### Build Requirements |
| 8 | + |
| 9 | +This project uses Meson and Ninja. |
| 10 | + |
| 11 | +Package requirements: |
| 12 | + - GTK4 |
| 13 | + - gettext |
| 14 | + - libdbus-1 |
| 15 | + - libssl/openssl |
| 16 | + - libudev |
| 17 | + - desktop-file-utils |
| 18 | + |
| 19 | +For example, on Ubuntu: |
| 20 | +```shell |
| 21 | +sudo apt update && sudo apt install \ |
| 22 | + # Build dependencies |
| 23 | + curl git build-essential \ |
| 24 | + # Meson/Ninja dependencies |
| 25 | + python3 python3-pip python3-setuptools python3-wheel ninja-build \ |
| 26 | + # project dependencies |
| 27 | + libgtk-4-dev gettext libdbus-1-dev libssl-dev libudev-dev \ |
| 28 | + # packaging dependencies |
| 29 | + desktop-file-utils \ |
| 30 | +``` |
| 31 | + |
| 32 | +### Compiling |
| 33 | + |
| 34 | +```shell |
| 35 | +git clone https://github.com/linux-credentials/linux-webauthn-platform-api |
| 36 | +cd linux-webauthn-platform-api |
| 37 | +meson setup build -Dprofile=development |
| 38 | +ninja -C build |
| 39 | +``` |
| 40 | + |
| 41 | +### Running the server |
| 42 | + |
| 43 | +```shell |
| 44 | +# 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-gtk/src/xyz-iinuwa-credential-manager-portal-gtk |
| 48 | +``` |
| 49 | + |
| 50 | +### Clients |
| 51 | + |
| 52 | +There is a demo client in the `demo_client`. It mimics an RP, saving the created public keys to a local file and verifying assertions against it. |
| 53 | + |
| 54 | +```shell |
| 55 | +cd demo_client/ |
| 56 | +./main.py create |
| 57 | +./main.py get |
| 58 | +``` |
| 59 | + |
| 60 | +There is also a demo web extension that can be used to test the service in Firefox. Instructions are in [webext/README.md](). |
| 61 | + |
| 62 | + |
5 | 63 | ## Goals |
6 | 64 |
|
7 | 65 | The goal of this repository is to define a spec for clients (apps, browsers, |
@@ -44,6 +102,8 @@ works for BSDs. |
44 | 102 |
|
45 | 103 | ## Current Work |
46 | 104 |
|
| 105 | +- April 2025: Added web extension for testing in Firefox. |
| 106 | +- March 2025: Integrated libwebauthn to support USB authenticators. |
47 | 107 | - May 2024: Met with developers in GNOME and systemd to design internals for |
48 | 108 | securely storing device credentials. |
49 | 109 | - Jan 2024: I've defined the [scenarios](doc/scenarios.md) that I expect this |
|
0 commit comments