Skip to content

linux-credentials/libwebauthn

Repository files navigation

libwebauthn

A Linux-native implementation of FIDO2 and FIDO U2F Platform API, fully written in Rust.

This library supports multiple transports (see Transports for a list) via a pluggable interface, making it easy to add additional backends.

Credentials for Linux Project

This repository is now part of the Credentials for Linux project, and was previously known as xdg-credentials-portal.

The Credentials for Linux project aims to offer FIDO2 platform functionality (FIDO U2F, and WebAuthn) on Linux, over a D-Bus Portal interface.

Looking for the D-Bus API proposal? Check out platform-api.

Features

  • FIDO U2F
    • 🟢 Registration (U2F_REGISTER)
    • 🟢 Authentication (U2F_AUTHENTICATE)
    • 🟢 Version (U2F_VERSION)
  • FIDO2
    • 🟢 Create credential
    • 🟢 Verify assertion
    • 🟢 Biometric user verification
    • 🟢 Discoverable credentials (resident keys)
  • FIDO2 to FIDO U2F downgrade
    • 🟢 Basic functionality
    • 🟢 Support for excludeList and pre-flight requests
  • PIN/UV Protocols
    • 🟢 PIN/UV Auth Protocol One
    • 🟢 PIN/UV Auth Protocol Two
  • PIN/UV Operations
    • 🟢 GetPinToken
    • 🟢 GetPinUvAuthTokenUsingPinWithPermissions
    • 🟢 GetPinUvAuthTokenUsingUvWithPermissions
  • Passkey Authentication
    • 🟢 Discoverable credentials (resident keys)
    • 🟢 Hybrid transport (caBLE v2): QR-initiated transactions ([#52][#52]: iOS only)
    • 🟠 Hybrid transport (caBLE v2): State-assisted transactions (#31: planned)

Transports

USB (HID) Bluetooth Low Energy (BLE) NFC TPM 2.0 (Platform) Hybrid (caBLEv2)
FIDO U2F 🟢 Supported (via hidapi) 🟢 Supported (via bluez) 🟠 Planned (#5) 🟠 Planned (#4) N/A
WebAuthn (FIDO2) 🟢 Supported (via hidapi) 🟢 Supported (via bluez) 🟠 Planned (#5) 🟠 Planned (#4) 🟠 Partly implemented (#31)

Contributing

We welcome contributions!

If you'd like to contribute but you don't know where to start, check out the Issues tab.

About

FIDO2 (WebAuthn) and FIDO U2F platform library for Linux written in Rust

Topics

Resources

License

Stars

Watchers

Forks

Languages