xref: /freebsd/contrib/libfido2/NEWS (revision 60a517b66a69b8c011b04063ef63a938738719bd)
1*60a517b6SEd Maste* Version 1.14.0 (2023-11-13)
2*60a517b6SEd Maste ** fido2-cred -M, fido2-token -G: support raw client data via -w flag.
3*60a517b6SEd Maste ** winhello: support U2F AppID extension for assertions.
4*60a517b6SEd Maste ** winhello: fix restrictive parsing of the hmac-secret on assertions.
5*60a517b6SEd Maste ** winhello: translate NTE_USER_CANCELLED to FIDO_ERR_OPERATION_DENIED; gh#685.
6*60a517b6SEd Maste ** New API calls:
7*60a517b6SEd Maste    ** fido_assert_authdata_raw_len;
8*60a517b6SEd Maste    ** fido_assert_authdata_raw_ptr;
9*60a517b6SEd Maste    ** fido_assert_set_winhello_appid.
10*60a517b6SEd Maste
112ccfa855SEd Maste* Version 1.13.0 (2023-02-20)
122ccfa855SEd Maste ** Support for linking against OpenSSL on Windows; gh#668.
132ccfa855SEd Maste ** New API calls:
142ccfa855SEd Maste  - fido_assert_empty_allow_list;
152ccfa855SEd Maste  - fido_cred_empty_exclude_list.
162ccfa855SEd Maste ** fido2-token: fix issue when listing large blobs.
172ccfa855SEd Maste ** Improved support for different fuzzing engines.
182ccfa855SEd Maste
192ccfa855SEd Maste* Version 1.12.0 (2022-09-22)
202ccfa855SEd Maste ** Support for COSE_ES384.
212ccfa855SEd Maste ** Support for hidraw(4) on FreeBSD; gh#597.
222ccfa855SEd Maste ** Improved support for FIDO 2.1 authenticators.
232ccfa855SEd Maste ** New API calls:
242ccfa855SEd Maste  - es384_pk_free;
252ccfa855SEd Maste  - es384_pk_from_EC_KEY;
262ccfa855SEd Maste  - es384_pk_from_EVP_PKEY;
272ccfa855SEd Maste  - es384_pk_from_ptr;
282ccfa855SEd Maste  - es384_pk_new;
292ccfa855SEd Maste  - es384_pk_to_EVP_PKEY;
302ccfa855SEd Maste  - fido_cbor_info_certs_len;
312ccfa855SEd Maste  - fido_cbor_info_certs_name_ptr;
322ccfa855SEd Maste  - fido_cbor_info_certs_value_ptr;
332ccfa855SEd Maste  - fido_cbor_info_maxrpid_minpinlen;
342ccfa855SEd Maste  - fido_cbor_info_minpinlen;
352ccfa855SEd Maste  - fido_cbor_info_new_pin_required;
362ccfa855SEd Maste  - fido_cbor_info_rk_remaining;
372ccfa855SEd Maste  - fido_cbor_info_uv_attempts;
382ccfa855SEd Maste  - fido_cbor_info_uv_modality.
392ccfa855SEd Maste ** Documentation and reliability fixes.
402ccfa855SEd Maste
412ccfa855SEd Maste* Version 1.11.0 (2022-05-03)
422ccfa855SEd Maste ** Experimental PCSC support; enable with -DUSE_PCSC.
432ccfa855SEd Maste ** Improved OpenSSL 3.0 compatibility.
442ccfa855SEd Maste ** Use RFC1951 raw deflate to compress CTAP 2.1 largeBlobs.
452ccfa855SEd Maste ** winhello: advertise "uv" instead of "clientPin".
462ccfa855SEd Maste ** winhello: support hmac-secret in fido_dev_get_assert().
472ccfa855SEd Maste ** New API calls:
482ccfa855SEd Maste  - fido_cbor_info_maxlargeblob.
492ccfa855SEd Maste ** Documentation and reliability fixes.
502ccfa855SEd Maste ** Separate build and regress targets.
512ccfa855SEd Maste
523e696dfbSEd Maste* Version 1.10.0 (2022-01-17)
533e696dfbSEd Maste ** hid_osx: handle devices with paths > 511 bytes; gh#462.
543e696dfbSEd Maste ** bio: fix CTAP2 canonical CBOR encoding in fido_bio_dev_enroll_*(); gh#480.
553e696dfbSEd Maste ** winhello: fallback to GetTopWindow() if GetForegroundWindow() fails.
563e696dfbSEd Maste ** winhello: fallback to hid_win.c if webauthn.dll isn't available.
573e696dfbSEd Maste ** New API calls:
583e696dfbSEd Maste  - fido_dev_info_set;
593e696dfbSEd Maste  - fido_dev_io_handle;
603e696dfbSEd Maste  - fido_dev_new_with_info;
613e696dfbSEd Maste  - fido_dev_open_with_info.
623e696dfbSEd Maste ** Cygwin and NetBSD build fixes.
633e696dfbSEd Maste ** Documentation and reliability fixes.
643e696dfbSEd Maste ** Support for TPM 2.0 attestation of COSE_ES256 credentials.
653e696dfbSEd Maste
66f540a430SEd Maste* Version 1.9.0 (2021-10-27)
67f540a430SEd Maste ** Enabled NFC support on Linux.
68f540a430SEd Maste ** Added OpenSSL 3.0 compatibility.
69f540a430SEd Maste ** Removed OpenSSL 1.0 compatibility.
70f540a430SEd Maste ** Support for FIDO 2.1 "minPinLength" extension.
71f540a430SEd Maste ** Support for COSE_EDDSA, COSE_ES256, and COSE_RS1 attestation.
72f540a430SEd Maste ** Support for TPM 2.0 attestation.
73f540a430SEd Maste ** Support for device timeouts; see fido_dev_set_timeout().
74f540a430SEd Maste ** New API calls:
75f540a430SEd Maste  - es256_pk_from_EVP_PKEY;
76f540a430SEd Maste  - fido_cred_attstmt_len;
77f540a430SEd Maste  - fido_cred_attstmt_ptr;
78f540a430SEd Maste  - fido_cred_pin_minlen;
79f540a430SEd Maste  - fido_cred_set_attstmt;
80f540a430SEd Maste  - fido_cred_set_pin_minlen;
81f540a430SEd Maste  - fido_dev_set_pin_minlen_rpid;
82f540a430SEd Maste  - fido_dev_set_timeout;
83f540a430SEd Maste  - rs256_pk_from_EVP_PKEY.
84f540a430SEd Maste ** Reliability and portability fixes.
85f540a430SEd Maste ** Better handling of HID devices without identification strings; gh#381.
86f540a430SEd Maste ** Fixed detection of Windows's native webauthn API; gh#382.
87f540a430SEd Maste
880afa8e06SEd Maste* Version 1.8.0 (2021-07-22)
890afa8e06SEd Maste ** Dropped 'Requires.private' entry from pkg-config file.
900afa8e06SEd Maste ** Better support for FIDO 2.1 authenticators.
910afa8e06SEd Maste ** Support for Windows's native webauthn API.
920afa8e06SEd Maste ** Support for attestation format 'none'.
930afa8e06SEd Maste ** New API calls:
940afa8e06SEd Maste  - fido_assert_set_clientdata;
950afa8e06SEd Maste  - fido_cbor_info_algorithm_cose;
960afa8e06SEd Maste  - fido_cbor_info_algorithm_count;
970afa8e06SEd Maste  - fido_cbor_info_algorithm_type;
980afa8e06SEd Maste  - fido_cbor_info_transports_len;
990afa8e06SEd Maste  - fido_cbor_info_transports_ptr;
1000afa8e06SEd Maste  - fido_cred_set_clientdata;
1010afa8e06SEd Maste  - fido_cred_set_id;
1020afa8e06SEd Maste  - fido_credman_set_dev_rk;
1030afa8e06SEd Maste  - fido_dev_is_winhello.
1040afa8e06SEd Maste ** fido2-token: new -Sc option to update a resident credential.
1050afa8e06SEd Maste ** Documentation and reliability fixes.
1060afa8e06SEd Maste ** HID access serialisation on Linux.
1070afa8e06SEd Maste
1080afa8e06SEd Maste* Version 1.7.0 (2021-03-29)
1090afa8e06SEd Maste ** New dependency on zlib.
1100afa8e06SEd Maste ** Fixed musl build; gh#259.
1110afa8e06SEd Maste ** hid_win: detect devices with vendor or product IDs > 0x7fff; gh#264.
1120afa8e06SEd Maste ** Support for FIDO 2.1 authenticator configuration.
1130afa8e06SEd Maste ** Support for FIDO 2.1 UV token permissions.
1140afa8e06SEd Maste ** Support for FIDO 2.1 "credBlobs" and "largeBlobs" extensions.
1150afa8e06SEd Maste ** New API calls:
1160afa8e06SEd Maste  - fido_assert_blob_len;
1170afa8e06SEd Maste  - fido_assert_blob_ptr;
1180afa8e06SEd Maste  - fido_assert_largeblob_key_len;
1190afa8e06SEd Maste  - fido_assert_largeblob_key_ptr;
1200afa8e06SEd Maste  - fido_assert_set_hmac_secret;
1210afa8e06SEd Maste  - fido_cbor_info_maxcredbloblen;
1220afa8e06SEd Maste  - fido_cred_largeblob_key_len;
1230afa8e06SEd Maste  - fido_cred_largeblob_key_ptr;
1240afa8e06SEd Maste  - fido_cred_set_blob;
1250afa8e06SEd Maste  - fido_dev_enable_entattest;
1260afa8e06SEd Maste  - fido_dev_force_pin_change;
1270afa8e06SEd Maste  - fido_dev_has_uv;
1280afa8e06SEd Maste  - fido_dev_largeblob_get;
1290afa8e06SEd Maste  - fido_dev_largeblob_get_array;
1300afa8e06SEd Maste  - fido_dev_largeblob_remove;
1310afa8e06SEd Maste  - fido_dev_largeblob_set;
1320afa8e06SEd Maste  - fido_dev_largeblob_set_array;
1330afa8e06SEd Maste  - fido_dev_set_pin_minlen;
1340afa8e06SEd Maste  - fido_dev_set_sigmask;
1350afa8e06SEd Maste  - fido_dev_supports_credman;
1360afa8e06SEd Maste  - fido_dev_supports_permissions;
1370afa8e06SEd Maste  - fido_dev_supports_uv;
1380afa8e06SEd Maste  - fido_dev_toggle_always_uv.
1390afa8e06SEd Maste ** New fido_init flag to disable fido_dev_open's U2F fallback; gh#282.
1400afa8e06SEd Maste ** Experimental NFC support on Linux; enable with -DNFC_LINUX.
1410afa8e06SEd Maste
1420afa8e06SEd Maste* Version 1.6.0 (2020-12-22)
1430afa8e06SEd Maste ** Fix OpenSSL 1.0 and Cygwin builds.
1440afa8e06SEd Maste ** hid_linux: fix build on 32-bit systems.
1450afa8e06SEd Maste ** hid_osx: allow reads from spawned threads.
1460afa8e06SEd Maste ** Documentation and reliability fixes.
1470afa8e06SEd Maste ** New API calls:
1480afa8e06SEd Maste  - fido_cred_authdata_raw_len;
1490afa8e06SEd Maste  - fido_cred_authdata_raw_ptr;
1500afa8e06SEd Maste  - fido_cred_sigcount;
1510afa8e06SEd Maste  - fido_dev_get_uv_retry_count;
1520afa8e06SEd Maste  - fido_dev_supports_credman.
1530afa8e06SEd Maste ** Hardened Windows build.
1540afa8e06SEd Maste ** Native FreeBSD and NetBSD support.
1550afa8e06SEd Maste ** Use CTAP2 canonical CBOR when combining hmac-secret and credProtect.
1560afa8e06SEd Maste
1570afa8e06SEd Maste* Version 1.5.0 (2020-09-01)
1580afa8e06SEd Maste ** hid_linux: return FIDO_OK if no devices are found.
1590afa8e06SEd Maste ** hid_osx:
1600afa8e06SEd Maste  - repair communication with U2F tokens, gh#166;
1610afa8e06SEd Maste  - reliability fixes.
1620afa8e06SEd Maste ** fido2-{assert,cred}: new options to explicitly toggle UP, UV.
1630afa8e06SEd Maste ** Support for configurable report lengths.
1640afa8e06SEd Maste ** New API calls:
1650afa8e06SEd Maste  - fido_cbor_info_maxcredcntlst;
1660afa8e06SEd Maste  - fido_cbor_info_maxcredidlen;
1670afa8e06SEd Maste  - fido_cred_aaguid_len;
1680afa8e06SEd Maste  - fido_cred_aaguid_ptr;
1690afa8e06SEd Maste  - fido_dev_get_touch_begin;
1700afa8e06SEd Maste  - fido_dev_get_touch_status.
1710afa8e06SEd Maste ** Use COSE_ECDH_ES256 with CTAP_CBOR_CLIENT_PIN; gh#154.
1720afa8e06SEd Maste ** Allow CTAP messages up to 2048 bytes; gh#171.
1730afa8e06SEd Maste ** Ensure we only list USB devices by default.
1740afa8e06SEd Maste
1750afa8e06SEd Maste* Version 1.4.0 (2020-04-15)
1760afa8e06SEd Maste ** hid_hidapi: hidapi backend; enable with -DUSE_HIDAPI=1.
1770afa8e06SEd Maste ** Fall back to U2F if the key claims to, but does not support FIDO2.
1780afa8e06SEd Maste ** FIDO2 credential protection (credprot) support.
1790afa8e06SEd Maste ** New API calls:
1800afa8e06SEd Maste  - fido_cbor_info_fwversion;
1810afa8e06SEd Maste  - fido_cred_prot;
1820afa8e06SEd Maste  - fido_cred_set_prot;
1830afa8e06SEd Maste  - fido_dev_set_transport_functions;
1840afa8e06SEd Maste  - fido_set_log_handler.
1850afa8e06SEd Maste ** Support for FreeBSD.
1860afa8e06SEd Maste ** Support for C++.
1870afa8e06SEd Maste ** Support for MSYS.
1880afa8e06SEd Maste ** Fixed EdDSA and RSA self-attestation.
1890afa8e06SEd Maste
1900afa8e06SEd Maste* Version 1.3.1 (2020-02-19)
1910afa8e06SEd Maste ** fix zero-ing of le1 and le2 when talking to a U2F device.
1920afa8e06SEd Maste ** dropping sk-libfido2 middleware, please find it in the openssh tree.
1930afa8e06SEd Maste
1940afa8e06SEd Maste* Version 1.3.0 (2019-11-28)
1950afa8e06SEd Maste ** assert/hmac: encode public key as per spec, gh#60.
1960afa8e06SEd Maste ** fido2-cred: fix creation of resident keys.
1970afa8e06SEd Maste ** fido2-{assert,cred}: support for hmac-secret extension.
1980afa8e06SEd Maste ** hid_osx: detect device removal, gh#56.
1990afa8e06SEd Maste ** hid_osx: fix device detection in MacOS Catalina.
2000afa8e06SEd Maste ** New API calls:
2010afa8e06SEd Maste  - fido_assert_set_authdata_raw;
2020afa8e06SEd Maste  - fido_assert_sigcount;
2030afa8e06SEd Maste  - fido_cred_set_authdata_raw;
2040afa8e06SEd Maste  - fido_dev_cancel.
2050afa8e06SEd Maste ** Middleware library for use by OpenSSH.
2060afa8e06SEd Maste ** Support for biometric enrollment.
2070afa8e06SEd Maste ** Support for OpenBSD.
2080afa8e06SEd Maste ** Support for self-attestation.
2090afa8e06SEd Maste
2100afa8e06SEd Maste* Version 1.2.0 (released 2019-07-26)
2110afa8e06SEd Maste ** Credential management support.
2120afa8e06SEd Maste ** New API reflecting FIDO's 3-state booleans (true, false, absent):
2130afa8e06SEd Maste  - fido_assert_set_up;
2140afa8e06SEd Maste  - fido_assert_set_uv;
2150afa8e06SEd Maste  - fido_cred_set_rk;
2160afa8e06SEd Maste  - fido_cred_set_uv.
2170afa8e06SEd Maste ** Command-line tools for Windows.
2180afa8e06SEd Maste ** Documentation and reliability fixes.
2190afa8e06SEd Maste ** fido_{assert,cred}_set_options() are now marked as deprecated.
2200afa8e06SEd Maste
2210afa8e06SEd Maste* Version 1.1.0 (released 2019-05-08)
2220afa8e06SEd Maste ** MacOS: fix IOKit crash on HID read.
2230afa8e06SEd Maste ** Windows: fix contents of release file.
2240afa8e06SEd Maste ** EdDSA (Ed25519) support.
2250afa8e06SEd Maste ** fido_dev_make_cred: fix order of CBOR map keys.
2260afa8e06SEd Maste ** fido_dev_get_assert: plug memory leak when operating on U2F devices.
2270afa8e06SEd Maste
2280afa8e06SEd Maste* Version 1.0.0 (released 2019-03-21)
2290afa8e06SEd Maste ** Native HID support on Linux, MacOS, and Windows.
2300afa8e06SEd Maste ** fido2-{assert,cred}: new -u option to force U2F on dual authenticators.
2310afa8e06SEd Maste ** fido2-assert: support for multiple resident keys with the same RP.
2320afa8e06SEd Maste ** Strict checks for CTAP2 compliance on received CBOR payloads.
2330afa8e06SEd Maste ** Better fuzzing harnesses.
2340afa8e06SEd Maste ** Documentation and reliability fixes.
2350afa8e06SEd Maste
2360afa8e06SEd Maste* Version 0.4.0 (released 2019-01-07)
2370afa8e06SEd Maste ** fido2-assert: print the user id for resident credentials.
2380afa8e06SEd Maste ** Fix encoding of COSE algorithms when making a credential.
2390afa8e06SEd Maste ** Rework purpose of fido_cred_set_type; no ABI change.
2400afa8e06SEd Maste ** Minor documentation and code fixes.
2410afa8e06SEd Maste
2420afa8e06SEd Maste* Version 0.3.0 (released 2018-09-11)
2430afa8e06SEd Maste ** Various reliability fixes.
2440afa8e06SEd Maste ** Merged fuzzing instrumentation.
2450afa8e06SEd Maste ** Added regress tests.
2460afa8e06SEd Maste ** Added support for FIDO 2's hmac-secret extension.
2470afa8e06SEd Maste ** New API calls:
2480afa8e06SEd Maste  - fido_assert_hmac_secret_len;
2490afa8e06SEd Maste  - fido_assert_hmac_secret_ptr;
2500afa8e06SEd Maste  - fido_assert_set_extensions;
2510afa8e06SEd Maste  - fido_assert_set_hmac_salt;
2520afa8e06SEd Maste  - fido_cred_set_extensions;
2530afa8e06SEd Maste  - fido_dev_force_fido2.
2540afa8e06SEd Maste ** Support for native builds with Microsoft Visual Studio 17.
2550afa8e06SEd Maste
2560afa8e06SEd Maste* Version 0.2.0 (released 2018-06-20)
2570afa8e06SEd Maste ** Added command-line tools.
2580afa8e06SEd Maste ** Added a couple of missing get functions.
2590afa8e06SEd Maste
2600afa8e06SEd Maste* Version 0.1.1 (released 2018-06-05)
2610afa8e06SEd Maste ** Added documentation.
2620afa8e06SEd Maste ** Added OpenSSL 1.0 support.
2630afa8e06SEd Maste ** Minor fixes.
2640afa8e06SEd Maste
2650afa8e06SEd Maste* Version 0.1.0 (released 2018-05-18)
2660afa8e06SEd Maste ** First beta release.
267