Skip to content

Releases: dangerousplay/passkey-tpm

v0.1.0-beta.2

v0.1.0-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Oct 02:29

0.1.0-beta.2 - 2026-10-14

Second beta — for testing, not daily use yet. Please report problems with the bug report form and include the output of passkey-tpm info.

passkey-tpm turns your laptop into a FIDO2 security key: passkeys live in the TPM 2.0 chip and are unlocked with your fingerprint (fprintd) or a PIN. It works with browsers, fido2-token, pam_u2f and systemd-cryptenroll through a virtual USB security key.

New in this beta

  • Tray icon (passkey-tpm-tray, starts with your desktop session): shows whether the fingerprint reader, the background service and the virtual security key work, enrolls a new fingerprint in one click, and sets or changes the security-key PIN. Needs a StatusNotifierItem tray (KDE, Xfce, Cinnamon, waybar…; GNOME with the AppIndicator extension) and zenity or kdialog for PIN entry.
  • Passkeys without a fingerprint reader: users with no enrolled fingerprint can set a PIN and register/sign in with it, confirming each use by clicking Allow on a desktop notification. Users with a fingerprint keep the fingerprint touch.

What to test

  • Register and sign in on webauthn.io in Firefox and Chromium with your fingerprint.
  • Set a PIN (tray, browser or fido2-token -S), discoverable passkeys, hmac-secret/PRF.
  • On a machine without a reader (or with no finger enrolled): set a PIN from the tray, then register on webauthn.io and click Allow.
  • The tray on your desktop: status lines, Enroll new fingerprint, Set PIN… / Change PIN….
  • Fast user switching: the key is only available to the user in front of the screen.
  • Install, upgrade and removal of the package on your distribution.

Packages

File For
passkey-tpm_0.1.0-beta.2_amd64.deb Ubuntu 24.04+, Debian 13+
passkey-tpm_0.1.0-beta.2_amd64.rpm Fedora and other RPM distributions with tpm2-tss
passkey-tpm_0.1.0-beta.2_amd64.pkg.tar.zst Arch Linux
passkey-tpm-0.1.0-beta.2.tar.gz source tree layout (cargo xtask dist)

Only x86_64 for now. Requirements: TPM 2.0 (/dev/tpmrm0), systemd, and fprintd for fingerprint use.

Verifying the packages

Every package and checksums.txt is signed with Sigstore by this repository's release workflow (*.sigstore.json), and GitHub keeps build provenance for each file:

cosign verify-blob --bundle passkey-tpm_0.1.0-beta.2_amd64.deb.sigstore.json \
  --certificate-identity-regexp '^https://github.com/dangerousplay/passkey-tpm/\.github/workflows/release\.yml@refs/tags/v' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  passkey-tpm_0.1.0-beta.2_amd64.deb

gh attestation verify passkey-tpm_0.1.0-beta.2_amd64.deb --repo dangerousplay/passkey-tpm

Known issues

  • Any user in front of the screen can use /dev/uhid, which can create any kind of HID device, not only security keys. A dedicated helper is planned.
  • A silent credential probe (up=false) can reveal whether a credential exists for a site, before any verification.
  • authenticatorReset is accepted at any time, not only within 10 s of the device appearing.
  • Wrong PINs are budgeted per user so one user can't lock the TPM for everyone; a correct PIN does not clear that budget before the TPM's recovery interval.
  • Without a fingerprint, presence is a desktop notification: malware running as you that learned your PIN could click or fake it (especially on X11). A trusted on-screen prompt is planned.
  • The tray and the presence notification were tested with automated tests, not yet on every desktop; please report how they behave on yours.
  • The .deb uses Ubuntu 24.04 / Debian 13 library names and glibc 2.39 or newer.

Features

Bug fixes

Documentation

Build and CI

v0.1.0-beta.1

v0.1.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Oct 23:38

0.1.0-beta.1 - 2026-10-04

First public beta — for testing, not daily use yet. Please report problems with the bug report form and include the output of passkey-tpm info.

passkey-tpm turns your laptop into a FIDO2 security key: passkeys live in the TPM 2.0 chip and are unlocked with your fingerprint (fprintd) or a PIN. It works with browsers, fido2-token, pam_u2f and systemd-cryptenroll through a virtual USB security key.

What to test

  • Register and sign in on webauthn.io in Firefox and Chromium with your fingerprint.
  • Set a PIN (fido2-token -S), discoverable passkeys, hmac-secret/PRF.
  • Fast user switching: the key is only available to the user in front of the screen.
  • Install, upgrade and removal of the package on your distribution.

Packages

File For
passkey-tpm_0.1.0-beta.1_amd64.deb Ubuntu 24.04+, Debian 13+
passkey-tpm_0.1.0-beta.1_amd64.rpm Fedora and other RPM distributions with tpm2-tss
passkey-tpm_0.1.0-beta.1_amd64.pkg.tar.zst Arch Linux
passkey-tpm-0.1.0-beta.1.tar.gz source tree layout (cargo xtask dist)

Only x86_64 for now. Requirements: TPM 2.0 (/dev/tpmrm0), systemd, and fprintd for fingerprint use.

Verifying the packages

Every package and checksums.txt is signed with Sigstore by this repository's release workflow (*.sigstore.json), and GitHub keeps build provenance for each file:

cosign verify-blob --bundle passkey-tpm_0.1.0-beta.1_amd64.deb.sigstore.json \
  --certificate-identity-regexp '^https://github.com/dangerousplay/passkey-tpm/\.github/workflows/release\.yml@refs/tags/v' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  passkey-tpm_0.1.0-beta.1_amd64.deb

gh attestation verify passkey-tpm_0.1.0-beta.1_amd64.deb --repo dangerousplay/passkey-tpm

Known issues

  • Any user in front of the screen can use /dev/uhid, which can create any kind of HID device, not only security keys. A dedicated helper is planned.
  • A silent credential probe (up=false) can reveal whether a credential exists for a site, before any verification.
  • authenticatorReset is accepted at any time, not only within 10 s of the device appearing.
  • Wrong PINs are budgeted per user so one user can't lock the TPM for everyone; a correct PIN does not clear that budget before the TPM's recovery interval.
  • Users without a fingerprint reader can use a PIN for verification but can't confirm presence yet (needs a trusted on-screen prompt).
  • The .deb uses Ubuntu 24.04 / Debian 13 library names and glibc 2.39 or newer.

Features

Bug fixes

Refactoring

Documentation

Testing

  • e2e: make the libfido2 checks portable across versions by @dang...
Read more