Source code

Revision control

Copy as Markdown

Other Tools

# A Rust library for interacting with CTAP1/CTAP2 Security Keys
This is a cross-platform library for directly interacting with Security Key-type devices via Rust.
- **Supported Platforms**: FreeBSD, Linux, macOS[^1], NetBSD, OpenBSD, and Windows[^2].
- **Supported Transports**: USB HID.
- **Supported Protocols**: [FIDO CTAP1 (U2F)][u2f], [CTAP 2.0][], CTAP 2.1-PRE, [CTAP 2.1][].
This library is used by Firefox on platforms that _do not_ provide WebAuthn
APIs (as there are on Android, iOS, [macOS][] and [Windows][hello]). It
implements a subset of the CTAP protocol that is useful for a web browser.
It was previously developed at https://github.com/mozilla/authenticator-rs and
was imported into mozilla-central at version 0.6.1.
[^1]: [macOS has its own platform WebAuthn API][macOS] (which also supports iCloud Keychain), but still allows direct, transport level communication with authenticators.
[^2]: Windows 10 v1903 and later block direct, transport level access to authenticators to applications _not_ running as Administrator, breaking this library for most applications. [Applications will need to use the platform APIs instead][hello].
## Tests
The unit tests run as part of `./mach rusttests`.