michael 86e3ffe8d5 feat(daemon): AppState::get_pending_status returns wire-friendly bool+flag
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>
2026-04-27 10:49:53 -07:00

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 08, 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
mfa support and related user management and policy tools for linux
Readme 398 KiB
Languages
Rust 95.9%
C 3.6%
Jinja 0.3%
Makefile 0.2%