86e3ffe8d588a403f8ae2d41b89d4df31506a2d0
has_pending stays #[cfg(test)] because production GUI reads via the new get_pending_status (one round-trip carries both presence and flag); production PAM module reads the file directly. Method gated with #[allow(dead_code)] until Task 5 wires D-Bus. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
authforge
Turnkey U2F / FIDO2 passkey / TOTP MFA for Linux desktops. v1 ships on Ubuntu LTS + GNOME; Debian and KDE Plasma are on the roadmap.
Install (end users)
sudo add-apt-repository ppa:dangerousthings/authforge
sudo apt install authforge
Build from source
See docs/BUILDING.md.
Status
Pre-alpha. Phases 0–8, 15, 16 code complete (workspace scaffold, D-Bus daemon,
storage layer, FIDO2 backend, policy apply via pam-auth-update with lockout
simulation, PAM pending-flag backstop, authforgectl CLI, GUI Security Keys
tab, gnome-control-center overlay, Ansible role for fleet deployment).
Phase 9 (GUI Policy tab) and Phase 12 (recovery flow) are the next single-lane
bundles. See docs/plans/ for design, roadmap, and per-phase
implementation plans.
Copyright 2026 Dangerous Things, LLC. Licensed under the Apache License, Version 2.0.
Description
Languages
Rust
95.9%
C
3.6%
Jinja
0.3%
Makefile
0.2%