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