Skip to content
This repository has been archived by the owner. It is now read-only.
Fork of Yubico/python-fido2 patching in support for communicating via UDP.
Branch: master
Clone or download
Pull request Compare This branch is 7 commits ahead, 61 commits behind Yubico:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
debian Set libu2f-udev as Recommends in debian. Apr 13, 2018
docker/xenial Rename fido_host -> fido2. Apr 5, 2018
examples Simplify running example server. Sep 4, 2018
fido2 python3 compat Sep 15, 2018
.gitignore Move stuff around. Jul 3, 2018
.pre-commit-config.yaml Move stuff around. Jul 3, 2018
COPYING Initial import. Mar 16, 2018
COPYING.APLv2 Initial import. Mar 16, 2018
COPYING.MPLv2 Initial import. Mar 16, 2018
NEWS Bump version. Apr 13, 2018
README.adoc Move stuff around. Jul 3, 2018
setup.cfg Inline version regex. Aug 21, 2018



Travis CI Status Appveyor Status

Provides library functionality for communicating with a FIDO device over USB as well as verifying attestation and assertion signatures.

This project is in beta. Expect things to change or break at any time!

This library aims to support the FIDO U2F and FIDO 2.0 protocols for communicating with a USB authenticator via the Client-to-Authenticator Protocol (CTAP 1 and 2). In addition to this low-level device access, classes defined in the fido2.client implement higher level device operations.

For usage, see the examples/ directory.


This project, with the exception of the files mentioned below, is licensed under the BSD 2-clause license. See the COPYING file for the full license text.

This project contains source code from pyu2f ( which is licensed under the Apache License, version 2.0. These files are located in fido2/pyu2f/ and test/pyu2f/. See, or the COPYING.APLv2 file for the full license text.

This project also bundles the public suffix list ( which is licensed under the Mozilla Public License, version 2.0. This file is stored as fido2/public_suffix_list.dat. See, or the COPYING.MPLv2 file for the full license text.


fido2 is installable by running the following command:

# pip install fido2

Under Linux you will need to add a Udev rule to be able to access the FIDO device, or run as root. For example, the Udev rule may contain the following:

#Udev rule for allowing HID access to Yubico devices for FIDO support.

KERNEL=="hidraw*", SUBSYSTEM=="hidraw", \
  MODE="0664", GROUP="plugdev", ATTRS{idVendor}=="1050"


fido2 is compatible with CPython 2.7, 3.4 onwards, and is tested on Windows, MacOS, and Linux.

This project depends on Cryptography. For instructions on installing this dependency, see

You can’t perform that action at this time.