
FIDO2のライブラリ機能を提供します。USBまたは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 は、USBまたはNFCを介してFIDOデバイスと通信し、アテステーションおよびアサーションの署名を検証するためのライブラリ機能とコマンドラインツールを提供します。
libfido2 は、FIDO U2F (CTAP 1) およびFIDO2 (CTAP 2) プロトコルをサポートしています。
使用方法については、examples/ ディレクトリを参照してください。
=== ライセンス
libfido2 はBSD 2-clauseライセンスの下で提供されています。ライセンスの全文については、LICENSEファイルを参照してください。
=== サポート対象プラットフォーム
libfido2 は、Linux、macOS、Windows、OpenBSD、FreeBSDで動作することが確認されています。
=== ドキュメント
ドキュメントはtroff形式およびHTML形式で利用できます。また、 https://developers.yubico.com/libfido2/Manuals/[*libfido2* のドキュメントのオンラインミラー] も利用できます。
=== バインディング
=== リリース
libfido2 の現在のリリースは1.17.0です。署名付きリリースtarballは、Yubicoの https://developers.yubico.com/libfido2/Releases[リリースページ] から入手できます。
=== 依存関係
libfido2 は、https://github.com/pjk/libcbor[libcbor]、https://www.openssl.org[OpenSSL] 3.0以降、および https://zlib.net[zlib] に依存しています。Linuxでは、libudev(https://www.freedesktop.org/wiki/Software/systemd[systemd] の一部)も必要です。
=== インストール
==== Fedora 34 以降
$ sudo dnf install libfido2 libfido2-devel fido2-tools
==== Ubuntu 20.04 (Focal) 以降
$ sudo apt install libfido2-1 libfido2-dev libfido2-doc fido2-tools
あるいは、libfido2 の新しいバージョンはYubicoのPPAで利用できます。以下の Ubuntu 18.04 (Bionic) の手順に従ってください。
==== 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
Linuxでは、FIDOデバイスにアクセスできるようにするために、udevルールを追加する必要がある場合があります。たとえば、udevルールには次のような内容が含まれることがあります:
#udev rule for allowing HID access to Yubico devices for FIDO support.
==== macOS
$ brew install libfido2
==== Windows
ARM、ARM64、Win32、Win64のアーティファクトについては、Yubicoの https://developers.yubico.com/libfido2/Releases[リリースページ] を参照してください。
当社のライブラリを安全に使用するには、アーティファクトが信頼できる書き込み不可のディレクトリに展開され、実行ファイルと同じ場所にDLLが配置されていることを前提としています。DLLの配置と安全なパッケージング手法に関する一般的な指針については、Microsoftの公式ドキュメントを参照してください。なお、当社の動的リンクアーティファクトは /MD でビルドされており、対応するVisual C++ランタイムが必要になる場合があります。
=== ソースからのビルド
UNIX系システムの場合:
$ cmake -B build $ make -C build $ sudo make -C build install
プラットフォームによっては、https://www.freedesktop.org/wiki/Software/pkg-config/[pkg-config] のインストールが必要な場合や、PKG_CONFIG_PATH 環境変数の設定が必要な場合があります。OS固有の完全なビルド手順については、.actions/(Linux、macOS、BSD)および windows/ ディレクトリを参照してください。
=== ビルド時のカスタマイズ
libfido2 は、多数のCMakeオプションをサポートしています。一部のオプションには追加の依存関係が必要です。デフォルトで無効になっているオプションは、公式にはサポートされていません。
[%autowidth.stretch] |=== |オプション |説明 |デフォルト | BUILD_EXAMPLES | サンプルプログラムをビルドする | ON | BUILD_MANPAGES | マニュアルページをビルドする | ON | BUILD_SHARED_LIBS | 共有ライブラリをビルドする | ON | BUILD_STATIC_LIBS | 静的ライブラリをビルドする | ON | BUILD_TOOLS | 補助ツールをビルドする | ON | FUZZ | ファジング計測を有効にする | OFF | NFC_LINUX | Linuxでnetlink NFCサポートを有効にする | ON | USE_HIDAPI | HIDバックエンドとしてhidapiを使用する | OFF | USE_PCSC | 実験的なPCSCサポートを有効にする | OFF | USE_WINHELLO | Windows HelloをFIDOデバイスとして抽象化する | ON |===
USE_HIDAPI オプションには https://github.com/libusb/hidapi[hidapi] が必要です。USE_PCSC オプションには、Linuxでは https://github.com/LudovicRousseau/PCSC[pcsc-lite] が必要です。
=== 開発
質問や機能提案には https://github.com/Yubico/libfido2/discussions[GitHub Discussions] を、コードへの貢献には https://github.com/Yubico/libfido2/pulls[GitHub pull-requests] をご利用ください。
=== バグの報告
バグの報告には https://github.com/Yubico/libfido2/issues[GitHub Issues] をご利用ください。セキュリティ上の問題を報告する場合は、[email protected] までご連絡ください。PGP公開鍵は https://www.yubico.com/support/security-advisories/issue-rating-system/ で確認できます。