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