xref: /openbsd-src/lib/libfido2/NEWS (revision ab19a69ebe1d1275c01611de862453c36b3d15b9)
1*ab19a69eSdjm* Version 1.11.0 (2022-05-03)
2*ab19a69eSdjm ** Experimental PCSC support; enable with -DUSE_PCSC.
3*ab19a69eSdjm ** Improved OpenSSL 3.0 compatibility.
4*ab19a69eSdjm ** Use RFC1951 raw deflate to compress CTAP 2.1 largeBlobs.
5*ab19a69eSdjm ** winhello: advertise "uv" instead of "clientPin".
6*ab19a69eSdjm ** winhello: support hmac-secret in fido_dev_get_assert().
7*ab19a69eSdjm ** New API calls:
8*ab19a69eSdjm  - fido_cbor_info_maxlargeblob.
9*ab19a69eSdjm ** Documentation and reliability fixes.
10*ab19a69eSdjm ** Separate build and regress targets.
11*ab19a69eSdjm
12*ab19a69eSdjm* Version 1.10.0 (2022-01-17)
13*ab19a69eSdjm ** hid_osx: handle devices with paths > 511 bytes; gh#462.
14*ab19a69eSdjm ** bio: fix CTAP2 canonical CBOR encoding in fido_bio_dev_enroll_*(); gh#480.
15*ab19a69eSdjm ** winhello: fallback to GetTopWindow() if GetForegroundWindow() fails.
16*ab19a69eSdjm ** winhello: fallback to hid_win.c if webauthn.dll isn't available.
17*ab19a69eSdjm ** New API calls:
18*ab19a69eSdjm  - fido_dev_info_set;
19*ab19a69eSdjm  - fido_dev_io_handle;
20*ab19a69eSdjm  - fido_dev_new_with_info;
21*ab19a69eSdjm  - fido_dev_open_with_info.
22*ab19a69eSdjm ** Cygwin and NetBSD build fixes.
23*ab19a69eSdjm ** Documentation and reliability fixes.
24*ab19a69eSdjm ** Support for TPM 2.0 attestation of COSE_ES256 credentials.
25*ab19a69eSdjm
26*ab19a69eSdjm* Version 1.9.0 (2021-10-27)
27*ab19a69eSdjm ** Enabled NFC support on Linux.
28*ab19a69eSdjm ** Added OpenSSL 3.0 compatibility.
29*ab19a69eSdjm ** Removed OpenSSL 1.0 compatibility.
30*ab19a69eSdjm ** Support for FIDO 2.1 "minPinLength" extension.
31*ab19a69eSdjm ** Support for COSE_EDDSA, COSE_ES256, and COSE_RS1 attestation.
32*ab19a69eSdjm ** Support for TPM 2.0 attestation.
33*ab19a69eSdjm ** Support for device timeouts; see fido_dev_set_timeout().
34*ab19a69eSdjm ** New API calls:
35*ab19a69eSdjm  - es256_pk_from_EVP_PKEY;
36*ab19a69eSdjm  - fido_cred_attstmt_len;
37*ab19a69eSdjm  - fido_cred_attstmt_ptr;
38*ab19a69eSdjm  - fido_cred_pin_minlen;
39*ab19a69eSdjm  - fido_cred_set_attstmt;
40*ab19a69eSdjm  - fido_cred_set_pin_minlen;
41*ab19a69eSdjm  - fido_dev_set_pin_minlen_rpid;
42*ab19a69eSdjm  - fido_dev_set_timeout;
43*ab19a69eSdjm  - rs256_pk_from_EVP_PKEY.
44*ab19a69eSdjm ** Reliability and portability fixes.
45*ab19a69eSdjm ** Better handling of HID devices without identification strings; gh#381.
46*ab19a69eSdjm ** Fixed detection of Windows's native webauthn API; gh#382.
47*ab19a69eSdjm
48*ab19a69eSdjm* Version 1.8.0 (2021-07-22)
49*ab19a69eSdjm ** Dropped 'Requires.private' entry from pkg-config file.
50*ab19a69eSdjm ** Better support for FIDO 2.1 authenticators.
51*ab19a69eSdjm ** Support for Windows's native webauthn API.
52*ab19a69eSdjm ** Support for attestation format 'none'.
53*ab19a69eSdjm ** New API calls:
54*ab19a69eSdjm  - fido_assert_set_clientdata;
55*ab19a69eSdjm  - fido_cbor_info_algorithm_cose;
56*ab19a69eSdjm  - fido_cbor_info_algorithm_count;
57*ab19a69eSdjm  - fido_cbor_info_algorithm_type;
58*ab19a69eSdjm  - fido_cbor_info_transports_len;
59*ab19a69eSdjm  - fido_cbor_info_transports_ptr;
60*ab19a69eSdjm  - fido_cred_set_clientdata;
61*ab19a69eSdjm  - fido_cred_set_id;
62*ab19a69eSdjm  - fido_credman_set_dev_rk;
63*ab19a69eSdjm  - fido_dev_is_winhello.
64*ab19a69eSdjm ** fido2-token: new -Sc option to update a resident credential.
65*ab19a69eSdjm ** Documentation and reliability fixes.
66*ab19a69eSdjm ** HID access serialisation on Linux.
67*ab19a69eSdjm
68*ab19a69eSdjm* Version 1.7.0 (2021-03-29)
69*ab19a69eSdjm ** New dependency on zlib.
70*ab19a69eSdjm ** Fixed musl build; gh#259.
71*ab19a69eSdjm ** hid_win: detect devices with vendor or product IDs > 0x7fff; gh#264.
72*ab19a69eSdjm ** Support for FIDO 2.1 authenticator configuration.
73*ab19a69eSdjm ** Support for FIDO 2.1 UV token permissions.
74*ab19a69eSdjm ** Support for FIDO 2.1 "credBlobs" and "largeBlobs" extensions.
75*ab19a69eSdjm ** New API calls:
76*ab19a69eSdjm  - fido_assert_blob_len;
77*ab19a69eSdjm  - fido_assert_blob_ptr;
78*ab19a69eSdjm  - fido_assert_largeblob_key_len;
79*ab19a69eSdjm  - fido_assert_largeblob_key_ptr;
80*ab19a69eSdjm  - fido_assert_set_hmac_secret;
81*ab19a69eSdjm  - fido_cbor_info_maxcredbloblen;
82*ab19a69eSdjm  - fido_cred_largeblob_key_len;
83*ab19a69eSdjm  - fido_cred_largeblob_key_ptr;
84*ab19a69eSdjm  - fido_cred_set_blob;
85*ab19a69eSdjm  - fido_dev_enable_entattest;
86*ab19a69eSdjm  - fido_dev_force_pin_change;
87*ab19a69eSdjm  - fido_dev_has_uv;
88*ab19a69eSdjm  - fido_dev_largeblob_get;
89*ab19a69eSdjm  - fido_dev_largeblob_get_array;
90*ab19a69eSdjm  - fido_dev_largeblob_remove;
91*ab19a69eSdjm  - fido_dev_largeblob_set;
92*ab19a69eSdjm  - fido_dev_largeblob_set_array;
93*ab19a69eSdjm  - fido_dev_set_pin_minlen;
94*ab19a69eSdjm  - fido_dev_set_sigmask;
95*ab19a69eSdjm  - fido_dev_supports_credman;
96*ab19a69eSdjm  - fido_dev_supports_permissions;
97*ab19a69eSdjm  - fido_dev_supports_uv;
98*ab19a69eSdjm  - fido_dev_toggle_always_uv.
99*ab19a69eSdjm ** New fido_init flag to disable fido_dev_open's U2F fallback; gh#282.
100*ab19a69eSdjm ** Experimental NFC support on Linux; enable with -DNFC_LINUX.
101*ab19a69eSdjm
102*ab19a69eSdjm* Version 1.6.0 (2020-12-22)
103*ab19a69eSdjm ** Fix OpenSSL 1.0 and Cygwin builds.
104*ab19a69eSdjm ** hid_linux: fix build on 32-bit systems.
105*ab19a69eSdjm ** hid_osx: allow reads from spawned threads.
106*ab19a69eSdjm ** Documentation and reliability fixes.
107*ab19a69eSdjm ** New API calls:
108*ab19a69eSdjm  - fido_cred_authdata_raw_len;
109*ab19a69eSdjm  - fido_cred_authdata_raw_ptr;
110*ab19a69eSdjm  - fido_cred_sigcount;
111*ab19a69eSdjm  - fido_dev_get_uv_retry_count;
112*ab19a69eSdjm  - fido_dev_supports_credman.
113*ab19a69eSdjm ** Hardened Windows build.
114*ab19a69eSdjm ** Native FreeBSD and NetBSD support.
115*ab19a69eSdjm ** Use CTAP2 canonical CBOR when combining hmac-secret and credProtect.
116*ab19a69eSdjm
117*ab19a69eSdjm* Version 1.5.0 (2020-09-01)
118*ab19a69eSdjm ** hid_linux: return FIDO_OK if no devices are found.
119*ab19a69eSdjm ** hid_osx:
120*ab19a69eSdjm  - repair communication with U2F tokens, gh#166;
121*ab19a69eSdjm  - reliability fixes.
122*ab19a69eSdjm ** fido2-{assert,cred}: new options to explicitly toggle UP, UV.
123*ab19a69eSdjm ** Support for configurable report lengths.
124*ab19a69eSdjm ** New API calls:
125*ab19a69eSdjm  - fido_cbor_info_maxcredcntlst;
126*ab19a69eSdjm  - fido_cbor_info_maxcredidlen;
127*ab19a69eSdjm  - fido_cred_aaguid_len;
128*ab19a69eSdjm  - fido_cred_aaguid_ptr;
129*ab19a69eSdjm  - fido_dev_get_touch_begin;
130*ab19a69eSdjm  - fido_dev_get_touch_status.
131*ab19a69eSdjm ** Use COSE_ECDH_ES256 with CTAP_CBOR_CLIENT_PIN; gh#154.
132*ab19a69eSdjm ** Allow CTAP messages up to 2048 bytes; gh#171.
133*ab19a69eSdjm ** Ensure we only list USB devices by default.
134*ab19a69eSdjm
135*ab19a69eSdjm* Version 1.4.0 (2020-04-15)
136*ab19a69eSdjm ** hid_hidapi: hidapi backend; enable with -DUSE_HIDAPI=1.
137*ab19a69eSdjm ** Fall back to U2F if the key claims to, but does not support FIDO2.
138*ab19a69eSdjm ** FIDO2 credential protection (credprot) support.
139*ab19a69eSdjm ** New API calls:
140*ab19a69eSdjm  - fido_cbor_info_fwversion;
141*ab19a69eSdjm  - fido_cred_prot;
142*ab19a69eSdjm  - fido_cred_set_prot;
143*ab19a69eSdjm  - fido_dev_set_transport_functions;
144*ab19a69eSdjm  - fido_set_log_handler.
145*ab19a69eSdjm ** Support for FreeBSD.
146*ab19a69eSdjm ** Support for C++.
147*ab19a69eSdjm ** Support for MSYS.
148*ab19a69eSdjm ** Fixed EdDSA and RSA self-attestation.
149*ab19a69eSdjm
150*ab19a69eSdjm* Version 1.3.1 (2020-02-19)
151*ab19a69eSdjm ** fix zero-ing of le1 and le2 when talking to a U2F device.
152*ab19a69eSdjm ** dropping sk-libfido2 middleware, please find it in the openssh tree.
153*ab19a69eSdjm
154*ab19a69eSdjm* Version 1.3.0 (2019-11-28)
155*ab19a69eSdjm ** assert/hmac: encode public key as per spec, gh#60.
156*ab19a69eSdjm ** fido2-cred: fix creation of resident keys.
157*ab19a69eSdjm ** fido2-{assert,cred}: support for hmac-secret extension.
158*ab19a69eSdjm ** hid_osx: detect device removal, gh#56.
159*ab19a69eSdjm ** hid_osx: fix device detection in MacOS Catalina.
160*ab19a69eSdjm ** New API calls:
161*ab19a69eSdjm  - fido_assert_set_authdata_raw;
162*ab19a69eSdjm  - fido_assert_sigcount;
163*ab19a69eSdjm  - fido_cred_set_authdata_raw;
164*ab19a69eSdjm  - fido_dev_cancel.
165*ab19a69eSdjm ** Middleware library for use by OpenSSH.
166*ab19a69eSdjm ** Support for biometric enrollment.
167*ab19a69eSdjm ** Support for OpenBSD.
168*ab19a69eSdjm ** Support for self-attestation.
169*ab19a69eSdjm
170*ab19a69eSdjm* Version 1.2.0 (released 2019-07-26)
171*ab19a69eSdjm ** Credential management support.
172*ab19a69eSdjm ** New API reflecting FIDO's 3-state booleans (true, false, absent):
173*ab19a69eSdjm  - fido_assert_set_up;
174*ab19a69eSdjm  - fido_assert_set_uv;
175*ab19a69eSdjm  - fido_cred_set_rk;
176*ab19a69eSdjm  - fido_cred_set_uv.
177*ab19a69eSdjm ** Command-line tools for Windows.
178*ab19a69eSdjm ** Documentation and reliability fixes.
179*ab19a69eSdjm ** fido_{assert,cred}_set_options() are now marked as deprecated.
180*ab19a69eSdjm
181*ab19a69eSdjm* Version 1.1.0 (released 2019-05-08)
182*ab19a69eSdjm ** MacOS: fix IOKit crash on HID read.
183*ab19a69eSdjm ** Windows: fix contents of release file.
184*ab19a69eSdjm ** EdDSA (Ed25519) support.
185*ab19a69eSdjm ** fido_dev_make_cred: fix order of CBOR map keys.
186*ab19a69eSdjm ** fido_dev_get_assert: plug memory leak when operating on U2F devices.
187*ab19a69eSdjm
188*ab19a69eSdjm* Version 1.0.0 (released 2019-03-21)
189*ab19a69eSdjm ** Native HID support on Linux, MacOS, and Windows.
190*ab19a69eSdjm ** fido2-{assert,cred}: new -u option to force U2F on dual authenticators.
191*ab19a69eSdjm ** fido2-assert: support for multiple resident keys with the same RP.
192*ab19a69eSdjm ** Strict checks for CTAP2 compliance on received CBOR payloads.
193*ab19a69eSdjm ** Better fuzzing harnesses.
194*ab19a69eSdjm ** Documentation and reliability fixes.
195*ab19a69eSdjm
196*ab19a69eSdjm* Version 0.4.0 (released 2019-01-07)
197*ab19a69eSdjm ** fido2-assert: print the user id for resident credentials.
198*ab19a69eSdjm ** Fix encoding of COSE algorithms when making a credential.
199*ab19a69eSdjm ** Rework purpose of fido_cred_set_type; no ABI change.
200*ab19a69eSdjm ** Minor documentation and code fixes.
201*ab19a69eSdjm
202*ab19a69eSdjm* Version 0.3.0 (released 2018-09-11)
203*ab19a69eSdjm ** Various reliability fixes.
204*ab19a69eSdjm ** Merged fuzzing instrumentation.
205*ab19a69eSdjm ** Added regress tests.
206*ab19a69eSdjm ** Added support for FIDO 2's hmac-secret extension.
207*ab19a69eSdjm ** New API calls:
208*ab19a69eSdjm  - fido_assert_hmac_secret_len;
209*ab19a69eSdjm  - fido_assert_hmac_secret_ptr;
210*ab19a69eSdjm  - fido_assert_set_extensions;
211*ab19a69eSdjm  - fido_assert_set_hmac_salt;
212*ab19a69eSdjm  - fido_cred_set_extensions;
213*ab19a69eSdjm  - fido_dev_force_fido2.
214*ab19a69eSdjm ** Support for native builds with Microsoft Visual Studio 17.
215*ab19a69eSdjm
216*ab19a69eSdjm* Version 0.2.0 (released 2018-06-20)
217*ab19a69eSdjm ** Added command-line tools.
218*ab19a69eSdjm ** Added a couple of missing get functions.
219*ab19a69eSdjm
220*ab19a69eSdjm* Version 0.1.1 (released 2018-06-05)
221*ab19a69eSdjm ** Added documentation.
222*ab19a69eSdjm ** Added OpenSSL 1.0 support.
223*ab19a69eSdjm ** Minor fixes.
224*ab19a69eSdjm
225*ab19a69eSdjm* Version 0.1.0 (released 2018-05-18)
226*ab19a69eSdjm ** First beta release.
227