All Projects → Yubico → Python Fido2

Yubico / Python Fido2

Licence: other
Provides library functionality for FIDO 2.0, including communication with a device over USB.

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Python Fido2

Dotfiles
Workstation configuration, provisioning and tools
Stars: ✭ 67 (-69.82%)
Mutual labels:  yubikey
Yubikey Manager Qt
Cross-platform application for configuring any YubiKey over all USB interfaces.
Stars: ✭ 137 (-38.29%)
Mutual labels:  yubikey
Multiotp
multiOTP open source strong two factor authentication PHP library, OATH certified, with TOTP, HOTP, Mobile-OTP, YubiKey, SMS, QRcode provisioning, etc.
Stars: ✭ 173 (-22.07%)
Mutual labels:  yubikey
Yubikeylockd
Simple daemon for locking and unlocking macOS with Yubikey
Stars: ✭ 78 (-64.86%)
Mutual labels:  yubikey
Awsu
Enhanced account switching for AWS, supports Yubikey as MFA source
Stars: ✭ 118 (-46.85%)
Mutual labels:  yubikey
Yubitls
A Go TLS/HTTPS server demo that uses a Yubikey as the backend for it's private key
Stars: ✭ 168 (-24.32%)
Mutual labels:  yubikey
Ykpass
Use your YubiKey as a consistent password generator
Stars: ✭ 27 (-87.84%)
Mutual labels:  yubikey
Go Ykpiv
Golang interface to manage Yubikeys, including a crypto.Signer & crypto.Decrypter interface
Stars: ✭ 196 (-11.71%)
Mutual labels:  yubikey
Yubikey Server
Go implementation of yubikey server to be able to run your own server on network with no access to the official servers.
Stars: ✭ 121 (-45.5%)
Mutual labels:  yubikey
Yubico Piv Tool
Command line tool for the YubiKey PIV application
Stars: ✭ 172 (-22.52%)
Mutual labels:  yubikey
Yubikey Ssh
How to use a Yubikey with OpenSSH without GPG
Stars: ✭ 108 (-51.35%)
Mutual labels:  yubikey
Keepassxc
KeePassXC is a cross-platform community-driven port of the Windows application “Keepass Password Safe”.
Stars: ✭ 11,623 (+5135.59%)
Mutual labels:  yubikey
Yubikey Touch Detector
A tool to detect when your YubiKey is waiting for a touch (to send notification or display a visual indicator on the screen)
Stars: ✭ 167 (-24.77%)
Mutual labels:  yubikey
Mkinitcpio Ykfde
Full disk encryption with Yubikey (Yubico key)
Stars: ✭ 72 (-67.57%)
Mutual labels:  yubikey
Yubioath Android
Yubico Authenticator for Android
Stars: ✭ 176 (-20.72%)
Mutual labels:  yubikey
Yubikey Full Disk Encryption Secure Boot Uefi
Tutorial to create full disk encryption with YubiKey, encrypted boot partition and secure boot with UEFI
Stars: ✭ 62 (-72.07%)
Mutual labels:  yubikey
Okta Awscli
Provides Okta authentication for awscli
Stars: ✭ 161 (-27.48%)
Mutual labels:  yubikey
Wincryptsshagent
Using a Yubikey for SSH Authentication on Windows Seamlessly
Stars: ✭ 218 (-1.8%)
Mutual labels:  yubikey
Nginx Sso
SSO authentication provider for the auth_request nginx module
Stars: ✭ 195 (-12.16%)
Mutual labels:  yubikey
Piv Go
Keys and certificates for YubiKeys, written in Go
Stars: ✭ 172 (-22.52%)
Mutual labels:  yubikey

== python-fido2 image:https://github.com/Yubico/python-fido2/workflows/build/badge.svg["Github actions build", link="https://github.com/Yubico/python-fido2/actions"]

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

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

WARNING: Version 0.9 is the last planned version of this library which will support Python 2. The next major version planned is 1.0, which will require Python 3 or later.

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 and fido2.server modules implement higher level operations which are useful when interfacing with an Authenticator, or when implementing WebAuthn support for a Relying Party.

For usage, see the examples/ directory.

=== References These links related to WebAuthn and FIDO2 can help you get started:

=== License 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 (https://github.com/google/pyu2f) which is licensed under the Apache License, version 2.0. These files are located in fido2/hid/. See http://www.apache.org/licenses/LICENSE-2.0, or the COPYING.APLv2 file for the full license text.

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

=== Requirements fido2 is compatible with CPython 2.7 (2.7.6 and up), 3.5 onwards, and is tested on Windows, MacOS, and Linux. Support for OpenBSD and FreeBSD is provided as-is and relies on community contributions.

=== Installation fido2 is installable by running the following command:

pip install fido2

To install the dependencies required for communication with NFC Authenticators, instead use:

pip install fido2[pcsc]

Under Windows 10 (1903 or later) access to FIDO devices is restricted and requires running as Administrator. This library can still be used when running as non-administrator, via the fido.client.WindowsClient class. An example of this is included in the file examples/credential.py.

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"

Under FreeBSD you will either need to run as root or add rules for your device to /etc/devd.conf, which can be automated by installing security/u2f-devd:

pkg install u2f-devd

=== Dependencies This project depends on Cryptography. For instructions on installing this dependency, see https://cryptography.io/en/latest/installation/.

NFC support is optionally available via PCSC, using the pyscard library. For instructions on installing this dependency, see https://github.com/LudovicRousseau/pyscard/blob/master/INSTALL.md.

=== Development For development of the library, we recommend using pipenv. To set up the dev environment, run this command in the root directory of the repository:

pipenv install --dev

==== Running tests While many tests can run on their own, some require a connected U2F or FIDO2 device to run.

pipenv run test

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].