{"id":23129584,"url":"https://github.com/yubico/python-fido2","last_synced_at":"2025-05-13T21:10:18.667Z","repository":{"id":30602245,"uuid":"125505498","full_name":"Yubico/python-fido2","owner":"Yubico","description":"Provides library functionality for FIDO 2.0, including communication with a device over USB.","archived":false,"fork":false,"pushed_at":"2025-04-22T07:35:55.000Z","size":2095,"stargazers_count":462,"open_issues_count":21,"forks_count":115,"subscribers_count":48,"default_branch":"main","last_synced_at":"2025-04-22T08:34:01.526Z","etag":null,"topics":["fido2","webauthn","yubikey"],"latest_commit_sha":null,"homepage":"https://developers.yubico.com/python-fido2/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Yubico.png","metadata":{"files":{"readme":"README.adoc","changelog":"NEWS","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-03-16T11:09:18.000Z","updated_at":"2025-04-14T14:32:31.000Z","dependencies_parsed_at":"2024-02-28T09:24:45.012Z","dependency_job_id":"30becae6-dc97-4d36-9bbd-57c05bad847e","html_url":"https://github.com/Yubico/python-fido2","commit_stats":{"total_commits":549,"total_committers":35,"mean_commits":"15.685714285714285","dds":"0.20036429872495443","last_synced_commit":"edcb00bc327453cfcf549ef4f12cc25a88b6b0a4"},"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yubico%2Fpython-fido2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yubico%2Fpython-fido2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yubico%2Fpython-fido2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yubico%2Fpython-fido2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Yubico","download_url":"https://codeload.github.com/Yubico/python-fido2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251341572,"owners_count":21574157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fido2","webauthn","yubikey"],"created_at":"2024-12-17T10:09:54.694Z","updated_at":"2025-04-28T15:45:02.710Z","avatar_url":"https://github.com/Yubico.png","language":"Python","readme":"== python-fido2\nimage:https://github.com/Yubico/python-fido2/workflows/build/badge.svg[\"Github actions build\", link=\"https://github.com/Yubico/python-fido2/actions\"]\n\nProvides library functionality for communicating with a FIDO device over USB as\nwell as verifying attestation and assertion signatures.\n\nThis library aims to support the FIDO U2F and FIDO 2 protocols for\ncommunicating with a USB authenticator via the Client-to-Authenticator Protocol\n(CTAP 1 and 2). In addition to this low-level device access, classes defined in\nthe `fido2.client` and `fido2.server` modules implement higher level operations\nwhich are useful when interfacing with an Authenticator, or when implementing\nWebAuthn support for a Relying Party.\n\nFor usage, see the `examples/` directory and\nlink:https://developers.yubico.com/python-fido2/API_Documentation/[API documentation].\n\n\n=== References\nThese links related to WebAuthn and FIDO2 can help you get started:\n\n* Yubico WebAuthn/FIDO2 guide: https://developers.yubico.com/FIDO2/\n* W3C WebAuthn specification: https://www.w3.org/TR/webauthn/\n* FIDO specifications: https://fidoalliance.org/specifications/download/\n\n\n=== License\nThis project, with the exception of the files mentioned below, is licensed\nunder the BSD 2-clause license.\nSee the _COPYING_ file for the full license text.\n\nThis project contains source code from pyu2f (https://github.com/google/pyu2f)\nwhich is licensed under the Apache License, version 2.0.\nThese files are located in `fido2/hid/`.\nSee http://www.apache.org/licenses/LICENSE-2.0,\nor the _COPYING.APLv2_ file for the full license text.\n\nThis project also bundles the public suffix list (https://publicsuffix.org)\nwhich is licensed under the Mozilla Public License, version 2.0.\nThis file is stored as `fido2/public_suffix_list.dat`.\nSee https://mozilla.org/MPL/2.0/,\nor the _COPYING.MPLv2_ file for the full license text.\n\n\n=== Requirements\nfido2 is compatible with Python 3.10 and later, and is tested on Windows, MacOS,\nand Linux. Support for OpenBSD, FreeBSD, and NetBSD is provided as-is and\nrelies on community contributions.\n\n\n=== Installation\n\nfido2 is installable by running the following command:\n\n  pip install fido2\n\nTo install the dependencies required for communication with NFC authenticators,\ninstead use:\n\n  pip install fido2[pcsc]\n\nUnder Windows 10 (1903 or later) access to FIDO devices is restricted and\nrequires running as Administrator. This library can still be used when running\nas non-administrator, via the  `fido.client.WindowsClient` class. An example of\nthis is included in the file `examples/credential.py`.\n\n\nUnder Linux you will need to add a Udev rule to be able to access the FIDO\ndevice, or run as root. For example, the Udev rule may contain the following:\n\n----\n#Udev rule for allowing HID access to Yubico devices for FIDO support.\n\nKERNEL==\"hidraw*\", SUBSYSTEM==\"hidraw\", \\\n  MODE=\"0664\", GROUP=\"plugdev\", ATTRS{idVendor}==\"1050\"\n----\n\nThere may be a package already available for your distribution that does this\nfor you, see:\nhttps://support.yubico.com/hc/en-us/articles/360013708900-Using-Your-U2F-YubiKey-with-Linux\n\nUnder FreeBSD you will either need to run as root or add rules for your device\nto /etc/devd.conf, which can be automated by installing security/u2f-devd:\n\n  # pkg install u2f-devd\n\n==== Dependencies\nThis project depends on Cryptography. For instructions on installing this\ndependency, see https://cryptography.io/en/latest/installation/.\n\nNFC support is optionally available via PC/SC, using the pyscard library. For\ninstructions on installing this dependency, see\nhttps://github.com/LudovicRousseau/pyscard/blob/master/INSTALL.md.\n\n\n=== Development\nFor development of the library  we use https://python-poetry.org/[poetry]. To\nset up the dev environment, run this command in the root directory of the\nrepository:\n\n  poetry install\n\nWe also use https://pre-commit.com/[pre-commit] to run some scans on the code\nprior to committing.\n\n\n==== Running tests\nWhile many tests can run on their own, some require a connected U2F or FIDO2\ndevice to run.\n\n  poetry run pytest\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyubico%2Fpython-fido2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyubico%2Fpython-fido2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyubico%2Fpython-fido2/lists"}