
Fornece funcionalidade de biblioteca para FIDO2, incluindo comunicação com um dispositivo 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"]
O libfido2 fornece funcionalidades de biblioteca e ferramentas de linha de comando para comunicar com um dispositivo FIDO via USB ou NFC, e para verificar assinaturas de atestação e asserção.
O libfido2 suporta os protocolos FIDO U2F (CTAP 1) e FIDO2 (CTAP 2).
Para uso, consulte o diretório examples/.
=== Licença
O libfido2 é licenciado sob a licença BSD de 2 cláusulas. Consulte o arquivo LICENSE para o texto completo da licença.
=== Plataformas Suportadas
O libfido2 é conhecido por funcionar em Linux, macOS, Windows, OpenBSD e FreeBSD.
=== Documentação
A documentação está disponível nos formatos troff e HTML. Um https://developers.yubico.com/libfido2/Manuals/[espelho online da documentação do libfido2] também está disponível.
=== Bindings
=== Releases
A versão atual do libfido2 é 1.17.0. Tarballs de lançamento assinados estão disponíveis na https://developers.yubico.com/libfido2/Releases[página de lançamentos] da Yubico.
=== Dependências
O libfido2 depende de https://github.com/pjk/libcbor[libcbor], https://www.openssl.org[OpenSSL] 3.0 ou mais recente e https://zlib.net[zlib]. No Linux, o libudev (parte do https://www.freedesktop.org/wiki/Software/systemd[systemd]) também é necessário.
=== Instalação
==== Fedora 34 e posterior
$ sudo dnf install libfido2 libfido2-devel fido2-tools
==== Ubuntu 20.04 (Focal) e posterior
$ sudo apt install libfido2-1 libfido2-dev libfido2-doc fido2-tools
Alternativamente, versões mais recentes do libfido2 estão disponíveis no PPA da Yubico. Siga as instruções para Ubuntu 18.04 (Bionic) abaixo.
==== 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
No Linux, você pode precisar adicionar uma regra udev para acessar o dispositivo FIDO. Por exemplo, a regra udev pode conter o seguinte:
#udev rule for allowing HID access to Yubico devices for FIDO support.
==== macOS
$ brew install libfido2
==== Windows
Consulte a https://developers.yubico.com/libfido2/Releases[página de lançamentos] da Yubico para obter artefatos ARM, ARM64, Win32 e Win64.
O uso seguro de nossas bibliotecas pressupõe que os artefatos sejam descompactados em um diretório confiável e não gravável, com DLLs ao lado do executável. Consulte a documentação oficial da Microsoft para obter orientações gerais sobre implantação de DLLs e técnicas seguras de empacotamento. Observe que nossos artefatos vinculados dinamicamente são compilados com /MD e podem exigir o runtime Visual C++ correspondente.
=== Compilação a partir do código-fonte
Em sistemas do tipo UNIX:
$ cmake -B build $ make -C build $ sudo make -C build install
Dependendo da plataforma, pode ser necessário instalar o https://www.freedesktop.org/wiki/Software/pkg-config/[pkg-config] ou definir a variável de ambiente PKG_CONFIG_PATH. Para instruções de compilação completas e específicas do SO, consulte os diretórios .actions/ (Linux, macOS, BSD) e windows/.
=== Customização em tempo de compilação
O libfido2 suporta várias opções do CMake. Algumas opções exigem dependências adicionais. Opções que estão desabilitadas por padrão não são oficialmente suportadas.
[%autowidth.stretch] |=== |Opção |Descrição |Padrão | BUILD_EXAMPLES | Compilar programas de exemplo | ON | BUILD_MANPAGES | Compilar páginas de manual | ON | BUILD_SHARED_LIBS | Compilar uma biblioteca compartilhada | ON | BUILD_STATIC_LIBS | Compilar uma biblioteca estática | ON | BUILD_TOOLS | Compilar ferramentas auxiliares | ON | FUZZ | Ativar instrumentação de fuzzing | OFF | NFC_LINUX | Ativar suporte NFC netlink no Linux | ON | USE_HIDAPI | Usar hidapi como backend HID | OFF | USE_PCSC | Ativar suporte experimental a PCSC | OFF | USE_WINHELLO | Abstrair o Windows Hello como um dispositivo FIDO | ON |===
A opção USE_HIDAPI requer https://github.com/libusb/hidapi[hidapi]. A opção USE_PCSC requer https://github.com/LudovicRousseau/PCSC[pcsc-lite] no Linux.
=== Desenvolvimento
Use o https://github.com/Yubico/libfido2/discussions[GitHub Discussions] para fazer perguntas e sugerir recursos, e https://github.com/Yubico/libfido2/pulls[GitHub pull-requests] para contribuições de código.
=== Reportar bugs
Use o https://github.com/Yubico/libfido2/issues[GitHub Issues] para relatar bugs. Para relatar problemas de segurança, entre em contato com [email protected]. Uma chave pública PGP pode ser encontrada em https://www.yubico.com/support/security-advisories/issue-rating-system/.