]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/libfido2/README.adoc
Import device-tree files from Linux 6.3
[FreeBSD/FreeBSD.git] / contrib / libfido2 / README.adoc
1 == libfido2
2
3 image:https://github.com/yubico/libfido2/workflows/linux/badge.svg["Linux Build Status (github actions)", link="https://github.com/Yubico/libfido2/actions"]
4 image:https://github.com/yubico/libfido2/workflows/macos/badge.svg["macOS Build Status (github actions)", link="https://github.com/Yubico/libfido2/actions"]
5 image:https://github.com/yubico/libfido2/workflows/windows/badge.svg["Windows Build Status (github actions)", link="https://github.com/Yubico/libfido2/actions"]
6 image:https://github.com/yubico/libfido2/workflows/fuzzer/badge.svg["Fuzz Status (github actions)", link="https://github.com/Yubico/libfido2/actions"]
7 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"]
8
9 *libfido2* provides library functionality and command-line tools to
10 communicate with a FIDO device over USB, and to verify attestation and
11 assertion signatures.
12
13 *libfido2* supports the FIDO U2F (CTAP 1) and FIDO2 (CTAP 2) protocols.
14
15 For usage, see the `examples/` directory.
16
17 === License
18
19 *libfido2* is licensed under the BSD 2-clause license. See the LICENSE
20 file for the full license text.
21
22 === Supported Platforms
23
24 *libfido2* is known to work on Linux, macOS, Windows, OpenBSD, and FreeBSD.
25
26 NFC support is available on Linux and Windows.
27
28 === Documentation
29
30 Documentation is available in troff and HTML formats. An
31 https://developers.yubico.com/libfido2/Manuals/[online mirror of *libfido2*'s documentation]
32 is also available.
33
34 === Bindings
35
36 * .NET: https://github.com/borrrden/Fido2Net[Fido2Net]
37 * Go: https://github.com/keys-pub/go-libfido2[go-libfido2]
38 * Perl: https://github.com/jacquesg/p5-FIDO-Raw[p5-FIDO-Raw]
39 * Rust: https://github.com/PvdBerg1998/libfido2[libfido2]
40
41 === Installation
42
43 ==== Releases
44
45 The current release of *libfido2* is 1.10.0. Please consult Yubico's
46 https://developers.yubico.com/libfido2/Releases[release page] for source
47 and binary releases.
48
49 ==== Ubuntu 20.04 (Focal)
50
51   $ sudo apt install libfido2-1
52   $ sudo apt install libfido2-dev
53   $ sudo apt install libfido2-doc
54
55 Alternatively, newer versions of *libfido2* are available in Yubico's PPA.
56 Follow the instructions for Ubuntu 18.04 (Bionic) below.
57
58 ==== Ubuntu 18.04 (Bionic)
59
60   $ sudo apt install software-properties-common
61   $ sudo apt-add-repository ppa:yubico/stable
62   $ sudo apt update
63   $ sudo apt install libfido2-dev
64
65 ==== macOS
66
67   $ brew install libfido2
68
69 Or from source, on UNIX-like systems:
70
71   $ cmake -B build
72   $ make -C build
73   $ sudo make -C build install
74
75 Depending on the platform,
76 https://www.freedesktop.org/wiki/Software/pkg-config/[pkg-config] may need to
77 be installed, or the PKG_CONFIG_PATH environment variable set.
78
79 *libfido2* depends on https://github.com/pjk/libcbor[libcbor],
80 https://www.openssl.org[OpenSSL] 1.1 or newer, and https://zlib.net[zlib].
81 On Linux, libudev
82 (part of https://www.freedesktop.org/wiki/Software/systemd[systemd]) is also
83 required.
84
85 For complete, OS-specific installation instructions, please refer to the
86 `.actions/` (Linux, macOS) and `windows/` directories.
87
88 On Linux, you will need to add a udev rule to be able to access the FIDO
89 device, or run as root. For example, the udev rule may contain the following:
90
91 ----
92 #udev rule for allowing HID access to Yubico devices for FIDO support.
93
94 KERNEL=="hidraw*", SUBSYSTEM=="hidraw", \
95   MODE="0664", GROUP="plugdev", ATTRS{idVendor}=="1050"
96 ----