
Fournit des fonctionnalités de bibliothèque pour FIDO2, y compris la communication avec un appareil via USB ou NFC.
== libfido2
image:https://github.com/yubico/libfido2/workflows/linux/badge.svg["Linux Build Status (github actions)", link="https://github.com/Yubico/libfido2/actions"] image:https://github.com/yubico/libfido2/workflows/macos/badge.svg["macOS Build Status (github actions)", link="https://github.com/Yubico/libfido2/actions"] image:https://github.com/yubico/libfido2/workflows/windows/badge.svg["Windows Build Status (github actions)", link="https://github.com/Yubico/libfido2/actions"] image:https://github.com/yubico/libfido2/workflows/fuzzer/badge.svg["Fuzz Status (github actions)", link="https://github.com/Yubico/libfido2/actions"] image:https://oss-fuzz-build-logs.storage.googleapis.com/badges/libfido2.svg["Fuzz Status (oss-fuzz)", link="https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:libfido2"]
libfido2 fournit des fonctionnalités de bibliothèque et des outils en ligne de commande pour communiquer avec un périphérique FIDO via USB ou NFC, et pour vérifier les signatures d'attestation et d'assertion.
libfido2 prend en charge les protocoles FIDO U2F (CTAP 1) et FIDO2 (CTAP 2).
Pour l'utilisation, voir le répertoire examples/.
=== Licence
libfido2 est sous licence BSD 2 clauses. Voir le fichier LICENSE pour le texte complet de la licence.
=== Plateformes prises en charge
libfido2 est connu pour fonctionner sur Linux, macOS, Windows, OpenBSD et FreeBSD.
=== Documentation
La documentation est disponible aux formats troff et HTML. Un https://developers.yubico.com/libfido2/Manuals/[miroir en ligne de la documentation de libfido2] est également disponible.
=== Liaisons
=== Versions
La version actuelle de libfido2 est la 1.17.0. Les archives signées sont disponibles sur la https://developers.yubico.com/libfido2/Releases[page de versions] de Yubico.
=== Dépendances
libfido2 dépend de https://github.com/pjk/libcbor[libcbor], d'https://www.openssl.org[OpenSSL] 3.0 ou plus récent, et de https://zlib.net[zlib]. Sous Linux, libudev (partie de https://www.freedesktop.org/wiki/Software/systemd[systemd]) est également requis.
=== Installation
==== Fedora 34 et versions ultérieures
$ sudo dnf install libfido2 libfido2-devel fido2-tools
==== Ubuntu 20.04 (Focal) et versions ultérieures
$ sudo apt install libfido2-1 libfido2-dev libfido2-doc fido2-tools
Alternativement, des versions plus récentes de libfido2 sont disponibles dans le PPA de Yubico. Suivez les instructions pour Ubuntu 18.04 (Bionic) ci-dessous.
==== Ubuntu 18.04 (Bionic)
$ sudo apt install software-properties-common $ sudo apt-add-repository ppa:yubico/stable $ sudo apt update $ sudo apt install libfido2-1 libfido2-dev libfido2-doc fido2-tools
Sous Linux, vous devrez peut-être ajouter une règle udev pour pouvoir accéder au périphérique FIDO. Par exemple, la règle udev peut contenir ce qui suit :
#udev rule for allowing HID access to Yubico devices for FIDO support.
==== macOS
$ brew install libfido2
==== Windows
Veuillez consulter la https://developers.yubico.com/libfido2/Releases[page de versions] de Yubico pour les artefacts ARM, ARM64, Win32 et Win64.
L'utilisation sûre de nos bibliothèques suppose que les artefacts sont décompressés dans un répertoire de confiance et non inscriptible, avec les DLL à côté de l'exécutable. Veuillez vous référer à la documentation officielle de Microsoft pour des conseils généraux sur le déploiement des DLL et les techniques d'empaquetage sûres. Notez que nos artefacts liés dynamiquement sont compilés avec /MD et peuvent nécessiter la présence du runtime Visual C++ correspondant.
=== Compilation à partir des sources
Sur les systèmes de type UNIX :
$ cmake -B build $ make -C build $ sudo make -C build install
Selon la plateforme, https://www.freedesktop.org/wiki/Software/pkg-config/[pkg-config] peut devoir être installé, ou la variable d'environnement PKG_CONFIG_PATH définie. Pour des instructions de compilation complètes et spécifiques au système d'exploitation, veuillez vous référer aux répertoires .actions/ (Linux, macOS, BSD) et windows/.
=== Personnalisation au moment de la compilation
libfido2 prend en charge un certain nombre d'options CMake. Certaines options nécessitent des dépendances supplémentaires. Les options désactivées par défaut ne sont pas officiellement prises en charge.
[%autowidth.stretch] |=== |Option |Description |Défaut | BUILD_EXAMPLES | Compiler les programmes d'exemple | ON | BUILD_MANPAGES | Compiler les pages de manuel | ON | BUILD_SHARED_LIBS | Compiler une bibliothèque partagée | ON | BUILD_STATIC_LIBS | Compiler une bibliothèque statique | ON | BUILD_TOOLS | Compiler les outils auxiliaires | ON | FUZZ | Activer l'instrumentation de fuzzing | OFF | NFC_LINUX | Activer le support NFC netlink sous Linux | ON | USE_HIDAPI | Utiliser hidapi comme backend HID | OFF | USE_PCSC | Activer le support expérimental PCSC | OFF | USE_WINHELLO | Abstraire Windows Hello en tant que périphérique FIDO | ON |===
L'option USE_HIDAPI nécessite https://github.com/libusb/hidapi[hidapi]. L'option USE_PCSC nécessite https://github.com/LudovicRousseau/PCSC[pcsc-lite] sous Linux.
=== Développement
Veuillez utiliser https://github.com/Yubico/libfido2/discussions[GitHub Discussions] pour poser des questions et suggérer des fonctionnalités, et https://github.com/Yubico/libfido2/pulls[les pull requests GitHub] pour les contributions de code.
=== Signaler des bogues
Veuillez utiliser https://github.com/Yubico/libfido2/issues[GitHub Issues] pour signaler les bogues. Pour signaler des problèmes de sécurité, veuillez contacter [email protected]. Une clé publique PGP peut être trouvée à l'adresse https://www.yubico.com/support/security-advisories/issue-rating-system/.