
Proporciona funcionalidad de biblioteca para FIDO2, incluida la comunicación con un dispositivo a través de USB o 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 proporciona funcionalidad de biblioteca y herramientas de línea de comandos para comunicarse con un dispositivo FIDO a través de USB o NFC, y para verificar firmas de atestación y afirmación.
libfido2 es compatible con los protocolos FIDO U2F (CTAP 1) y FIDO2 (CTAP 2).
Para su uso, consulte el directorio examples/.
=== Licencia
libfido2 está licenciado bajo la licencia BSD de 2 cláusulas. Consulte el archivo LICENSE para ver el texto completo de la licencia.
=== Plataformas compatibles
Se sabe que libfido2 funciona en Linux, macOS, Windows, OpenBSD y FreeBSD.
=== Documentación
La documentación está disponible en formatos troff y HTML. También está disponible un https://developers.yubico.com/libfido2/Manuals/[espejo en línea de la documentación de libfido2].
=== Enlaces
=== Lanzamientos
La versión actual de libfido2 es la 1.17.0. Los archivos comprimidos firmados de las versiones están disponibles en la https://developers.yubico.com/libfido2/Releases[página de versiones] de Yubico.
=== Dependencias
libfido2 depende de https://github.com/pjk/libcbor[libcbor], https://www.openssl.org[OpenSSL] 3.0 o superior y https://zlib.net[zlib]. En Linux, también se requiere libudev (parte de https://www.freedesktop.org/wiki/Software/systemd[systemd]).
=== Instalación
==== Fedora 34 y versiones posteriores
$ sudo dnf install libfido2 libfido2-devel fido2-tools
==== Ubuntu 20.04 (Focal) y versiones posteriores
$ sudo apt install libfido2-1 libfido2-dev libfido2-doc fido2-tools
Alternativamente, las versiones más recientes de libfido2 están disponibles en el PPA de Yubico. Siga las instrucciones para Ubuntu 18.04 (Bionic) a continuación.
==== 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
En Linux, es posible que necesite añadir una regla udev para poder acceder al dispositivo FIDO. Por ejemplo, la regla udev puede contener lo siguiente:
#udev rule for allowing HID access to Yubico devices for FIDO support.
==== macOS
$ brew install libfido2
==== Windows
Consulte la https://developers.yubico.com/libfido2/Releases[página de versiones] de Yubico para obtener los artefactos ARM, ARM64, Win32 y Win64.
El uso seguro de nuestras bibliotecas asume que los artefactos se descomprimen en un directorio de confianza y sin permisos de escritura, con las DLL junto al ejecutable. Consulte la documentación oficial de Microsoft para obtener orientación general sobre la implementación de DLL y técnicas de empaquetado seguro. Tenga en cuenta que nuestros artefactos de enlace dinámico se compilan con /MD y pueden requerir la presencia del runtime de Visual C++ correspondiente.
=== Compilación desde el código fuente
En sistemas tipo UNIX:
$ cmake -B build $ make -C build $ sudo make -C build install
Dependiendo de la plataforma, es posible que sea necesario instalar https://www.freedesktop.org/wiki/Software/pkg-config/[pkg-config] o definir la variable de entorno PKG_CONFIG_PATH. Para obtener instrucciones de compilación completas y específicas del sistema operativo, consulte los directorios .actions/ (Linux, macOS, BSD) y windows/.
=== Personalización en tiempo de compilación
libfido2 admite una serie de opciones de CMake. Algunas de las opciones requieren dependencias adicionales. Las opciones que están deshabilitadas por defecto no son compatibles oficialmente.
[%autowidth.stretch] |=== |Opción |Descripción |Por defecto | BUILD_EXAMPLES | Compilar programas de ejemplo | ON | BUILD_MANPAGES | Compilar páginas de manual | ON | BUILD_SHARED_LIBS | Compilar una biblioteca compartida | ON | BUILD_STATIC_LIBS | Compilar una biblioteca estática | ON | BUILD_TOOLS | Compilar herramientas auxiliares | ON | FUZZ | Habilitar instrumentación de fuzzing | OFF | NFC_LINUX | Habilitar soporte NFC netlink en Linux | ON | USE_HIDAPI | Usar hidapi como backend HID | OFF | USE_PCSC | Habilitar soporte experimental de PCSC | OFF | USE_WINHELLO | Abstraer Windows Hello como un dispositivo FIDO | ON |===
La opción USE_HIDAPI requiere https://github.com/libusb/hidapi[hidapi]. La opción USE_PCSC requiere https://github.com/LudovicRousseau/PCSC[pcsc-lite] en Linux.
=== Desarrollo
Utilice https://github.com/Yubico/libfido2/discussions[GitHub Discussions] para hacer preguntas y sugerir funciones, y https://github.com/Yubico/libfido2/pulls[solicitudes de extracción de GitHub] para contribuciones de código.
=== Reporte de errores
Utilice https://github.com/Yubico/libfido2/issues[GitHub Issues] para informar de errores. Para informar de problemas de seguridad, póngase en contacto con [email protected]. Se puede encontrar una clave pública PGP en https://www.yubico.com/support/security-advisories/issue-rating-system/.