diff options
| author | Joel Sing <joel@sing.id.au> | 2021-04-15 15:38:32 +1000 |
|---|---|---|
| committer | Joel Sing <joel@sing.id.au> | 2021-04-15 15:38:32 +1000 |
| commit | d74cf4423308ca26567132b22cbdbb56af925bc5 (patch) | |
| tree | 54c2bc963e9cb729838b677548c6b888165b5d5e /ChangeLog | |
| parent | 0d7d4ec2267bd1b4a49e86cdd251a01f2dc385f1 (diff) | |
| download | portable-d74cf4423308ca26567132b22cbdbb56af925bc5.tar.gz portable-d74cf4423308ca26567132b22cbdbb56af925bc5.tar.bz2 portable-d74cf4423308ca26567132b22cbdbb56af925bc5.zip | |
Tweak changelog for 3.3.2.
Diffstat (limited to 'ChangeLog')
| -rw-r--r-- | ChangeLog | 80 |
1 files changed, 38 insertions, 42 deletions
| @@ -37,18 +37,19 @@ LibreSSL Portable Release Notes: | |||
| 37 | 37 | ||
| 38 | * Switch finish{,_peer}_md_len from an int to a size_t. | 38 | * Switch finish{,_peer}_md_len from an int to a size_t. |
| 39 | 39 | ||
| 40 | * Fix SSL_get{,_peer}_finished() with TLSv1.3. | 40 | * Make SSL_get{,_peer}_finished() work when used with TLSv1.3. |
| 41 | 41 | ||
| 42 | * Use EVP_MD_MAX_MD_SIZE instead of 2 * EVP_MD_MAX_MD_SIZE as size | 42 | * Use EVP_MD_MAX_MD_SIZE instead of 2 * EVP_MD_MAX_MD_SIZE as size |
| 43 | for cert_verify_md[], finish_md[] and peer_finish_md[]. The factor 2 | 43 | for cert_verify_md[], finish_md[] and peer_finish_md[]. The factor 2 |
| 44 | was a historical artefact. | 44 | was a historical artefact. |
| 45 | 45 | ||
| 46 | * Corrected the return value type from ERR_peek_error() to a long. | 46 | * Correct the return value type from ERR_peek_error() to a long. |
| 47 | 47 | ||
| 48 | * Avoid use of uninitialized in ASN1_time_parse which could happen | 48 | * Avoid use of uninitialized in ASN1_time_parse() which could happen |
| 49 | on parsing UTCTime if the caller didn't clear the passed struct tm. | 49 | on parsing UTCTime if the caller did not initialise the passed |
| 50 | struct tm. | ||
| 50 | 51 | ||
| 51 | * Destroy mutex in a tls_config object on tls_config_free(). | 52 | * Destroy the mutex in a tls_config object on tls_config_free(). |
| 52 | 53 | ||
| 53 | * Free alert_data and phh_data in tls13_record_layer_free() | 54 | * Free alert_data and phh_data in tls13_record_layer_free() |
| 54 | these could leak if SSL_shutdown() or tls_close() were called | 55 | these could leak if SSL_shutdown() or tls_close() were called |
| @@ -63,7 +64,7 @@ LibreSSL Portable Release Notes: | |||
| 63 | * Handle X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE in the new | 64 | * Handle X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE in the new |
| 64 | verifier. | 65 | verifier. |
| 65 | 66 | ||
| 66 | * Use the legacy verifier when building auto chains. | 67 | * Use the legacy verifier when building auto chains for TLS. |
| 67 | 68 | ||
| 68 | * Use consistent names in tls13_{client,server}_finished_{recv,send}(). | 69 | * Use consistent names in tls13_{client,server}_finished_{recv,send}(). |
| 69 | 70 | ||
| @@ -77,18 +78,18 @@ LibreSSL Portable Release Notes: | |||
| 77 | * Search the intermediates only after searching the root certs in the | 78 | * Search the intermediates only after searching the root certs in the |
| 78 | new verifier to avoid problems with the legacy callback. | 79 | new verifier to avoid problems with the legacy callback. |
| 79 | 80 | ||
| 80 | * Bail out early after finding a single chain in the new verifier if | 81 | * Bail out early after finding a single chain in the new verifier, if |
| 81 | we have been called from the legacy verifier API. | 82 | we have been called via the legacy verifier API. |
| 82 | 83 | ||
| 83 | * Set (invalid and likely incomplete) chain on the xsc on chain build | 84 | * Set (invalid and likely incomplete) chain on the xsc on chain build |
| 84 | failure prior to calling the callback. This is required by things | 85 | failure prior to calling the callback. This is required by various |
| 85 | like auto chain. | 86 | callers, including auto chain. |
| 86 | 87 | ||
| 87 | * Align SSL_get_shared_ciphers() with OpenSSL. This takes into account | 88 | * Align SSL_get_shared_ciphers() with OpenSSL. This takes into account |
| 88 | that it never returned server ciphers, so now it will fail when | 89 | that it never returned server ciphers, so now it will fail when |
| 89 | called from the client side. | 90 | called from the client side. |
| 90 | 91 | ||
| 91 | * Added support for SSL_get_shared_ciphers() to TLSv1.3. | 92 | * Add support for SSL_get_shared_ciphers() with TLSv1.3. |
| 92 | 93 | ||
| 93 | * Split the record protection from the TLSv1.2 record layer. | 94 | * Split the record protection from the TLSv1.2 record layer. |
| 94 | 95 | ||
| @@ -109,7 +110,7 @@ LibreSSL Portable Release Notes: | |||
| 109 | * Add code to handle change of cipher state in the new TLSv1.2 record | 110 | * Add code to handle change of cipher state in the new TLSv1.2 record |
| 110 | layer. | 111 | layer. |
| 111 | 112 | ||
| 112 | * Mop up unused dtls1_build_sequence_numbers() function. | 113 | * Mop up now unused dtls1_build_sequence_numbers() function. |
| 113 | 114 | ||
| 114 | * Allow setting a keypair on a tls context without specifying the | 115 | * Allow setting a keypair on a tls context without specifying the |
| 115 | private key, and fake it internally in libtls. This removes the | 116 | private key, and fake it internally in libtls. This removes the |
| @@ -133,7 +134,7 @@ LibreSSL Portable Release Notes: | |||
| 133 | draft-ietf-sidrops-rpki-rta, and draft-ietf-opsawg-finding-geofeeds. | 134 | draft-ietf-sidrops-rpki-rta, and draft-ietf-opsawg-finding-geofeeds. |
| 134 | 135 | ||
| 135 | * Fail early in legacy exporter if the master secret is not available | 136 | * Fail early in legacy exporter if the master secret is not available |
| 136 | to avoid a segfault if it is called if the handshake is not | 137 | to avoid a segfault if it is called when the handshake is not |
| 137 | completed. | 138 | completed. |
| 138 | 139 | ||
| 139 | * Factor out legacy stack version checks. | 140 | * Factor out legacy stack version checks. |
| @@ -149,7 +150,7 @@ LibreSSL Portable Release Notes: | |||
| 149 | 150 | ||
| 150 | * Enforce read ahead with DTLS. | 151 | * Enforce read ahead with DTLS. |
| 151 | 152 | ||
| 152 | * Remove bogus DTLS checks to disable ECC and OCSP. | 153 | * Remove bogus DTLS checks that disabled ECC and OCSP. |
| 153 | 154 | ||
| 154 | * Sync cert.pem with Mozilla NSS root CAs except "GeoTrust Global CA". | 155 | * Sync cert.pem with Mozilla NSS root CAs except "GeoTrust Global CA". |
| 155 | 156 | ||
| @@ -186,18 +187,18 @@ LibreSSL Portable Release Notes: | |||
| 186 | x509_vfy_check_chain_extension() for all untrusted certs in the | 187 | x509_vfy_check_chain_extension() for all untrusted certs in the |
| 187 | chain. Take into account that the root is not necessarily trusted. | 188 | chain. Take into account that the root is not necessarily trusted. |
| 188 | 189 | ||
| 189 | * Avoid passing last and depth to x509_verify_cert_error() on ENOMEM | 190 | * Avoid passing last and depth to x509_verify_cert_error() on ENOMEM. |
| 190 | 191 | ||
| 191 | * Rename depth to num_untrusted. | 192 | * Rename depth to num_untrusted. |
| 192 | 193 | ||
| 193 | * Only use TLS versions internally rather than both TLS and DTLS | 194 | * Only use TLS versions internally rather than both TLS and DTLS |
| 194 | versions since the latter are the one's complement of the human | 195 | versions since the latter are the one's complement of the human |
| 195 | readable version numbers, which means that newer versions decrease | 196 | readable version numbers, which means that newer versions decrease |
| 196 | in values. | 197 | in value. |
| 197 | 198 | ||
| 198 | * Fix two bugs in the legacy verifier due to incorrect refactoring of | 199 | * Fix two bugs in the legacy verifier that resulted from refactoring |
| 199 | X509_verify_cert() for the new verifier: a return value was treated | 200 | of X509_verify_cert() for the new verifier: a return value was |
| 200 | as Boolean when it wasn't and thus it was not enough to decide | 201 | incorrectly treated as boolean, making it insufficient to decide |
| 201 | whether validation should carry on or not. | 202 | whether validation should carry on or not. |
| 202 | 203 | ||
| 203 | * Identify DTLS based on the version major value. | 204 | * Identify DTLS based on the version major value. |
| @@ -220,13 +221,13 @@ LibreSSL Portable Release Notes: | |||
| 220 | * Guard against future internal use of TLS1_get_{client,}_version() | 221 | * Guard against future internal use of TLS1_get_{client,}_version() |
| 221 | macros. | 222 | macros. |
| 222 | 223 | ||
| 223 | * Remove the internal ssl_downgrade_max_version() which is no longer | 224 | * Remove the internal ssl_downgrade_max_version() function which is no |
| 224 | needed. | 225 | longer needed. |
| 225 | 226 | ||
| 226 | * Fix checks for memory caps of constraints names. There are internal | 227 | * Fix checks for memory caps of constraints names. There are internal |
| 227 | caps on the number of name constraints and other names that the new | 228 | caps on the number of name constraints and other names, that the new |
| 228 | name constraints code allocates per cert chain. These checks were | 229 | name constraints code allocates per cert chain. These checks were |
| 229 | checked too late, making these caps only partially effective. | 230 | checked too late, making these limits only partially effective. |
| 230 | 231 | ||
| 231 | * Use EXFLAG_INVALID to handle out of memory and parse errors in | 232 | * Use EXFLAG_INVALID to handle out of memory and parse errors in |
| 232 | x509v3_cache_extensions(). | 233 | x509v3_cache_extensions(). |
| @@ -240,15 +241,14 @@ LibreSSL Portable Release Notes: | |||
| 240 | * Remove no longer needed read ahead workarounds in the s_client and | 241 | * Remove no longer needed read ahead workarounds in the s_client and |
| 241 | s_server. | 242 | s_server. |
| 242 | 243 | ||
| 243 | * Fix a copy-paste error a skid was confused with an akid when | 244 | * Fix a copy-paste error - skid was confused with an akid when |
| 244 | checking for EXFLAG_INVALID. This broke OCSP validation with | 245 | checking for EXFLAG_INVALID. This broke OCSP validation with |
| 245 | certain mirrors. | 246 | certain mirrors. |
| 246 | 247 | ||
| 247 | * Made supported protocols and list of DHE more prominent in | 248 | * Made supported protocols and options for DHE params more prominent |
| 248 | tls_config_set_protocols.3. Various mdoc improvements for that | 249 | in tls_config_set_protocols.3. |
| 249 | manual. | ||
| 250 | 250 | ||
| 251 | * Avoid a use-after-scope in tls13_cert_add() | 251 | * Avoid a use-after-scope in tls13_cert_add(). |
| 252 | 252 | ||
| 253 | * Split TLSv1.3 record protection from record layer. | 253 | * Split TLSv1.3 record protection from record layer. |
| 254 | 254 | ||
| @@ -256,7 +256,7 @@ LibreSSL Portable Release Notes: | |||
| 256 | struct. | 256 | struct. |
| 257 | 257 | ||
| 258 | * Fully initialize rrec in tls12_record_layer_open_record_protected() | 258 | * Fully initialize rrec in tls12_record_layer_open_record_protected() |
| 259 | to avoid confusing certain static analyzers. | 259 | to avoid confusing some static analyzers. |
| 260 | 260 | ||
| 261 | * Use tls_set_errorx() on OCSP_basic_verify() failure since the latter | 261 | * Use tls_set_errorx() on OCSP_basic_verify() failure since the latter |
| 262 | does not set errno. | 262 | does not set errno. |
| @@ -271,18 +271,15 @@ LibreSSL Portable Release Notes: | |||
| 271 | 271 | ||
| 272 | * Avoid mangled output in BIO_debug_callback(). | 272 | * Avoid mangled output in BIO_debug_callback(). |
| 273 | 273 | ||
| 274 | * Fix client side renegotiation by replacing use of s->internal-type | 274 | * Fix client initiated renegotiation by replacing use of s->internal-type |
| 275 | with s->server. | 275 | with s->server. |
| 276 | 276 | ||
| 277 | * Avoid a symbol collision with SSL_is_dtls() between libssl and | ||
| 278 | openssl(1) in static builds. | ||
| 279 | |||
| 280 | * Move the TLSv1.2 record number increment into the new record layer. | 277 | * Move the TLSv1.2 record number increment into the new record layer. |
| 281 | 278 | ||
| 282 | * Move finished and peer finished into the handshake struct. | 279 | * Move finished and peer finished into the handshake struct. |
| 283 | 280 | ||
| 284 | * Avoid transcript initialization when sending a TLS HelloRequest | 281 | * Avoid transcript initialization when sending a TLS HelloRequest, |
| 285 | to fix server side renegotiation. | 282 | fixing server initiated renegotiation. |
| 286 | 283 | ||
| 287 | * Remove pointless assignment in SSL_get0_alpn_selected(). | 284 | * Remove pointless assignment in SSL_get0_alpn_selected(). |
| 288 | 285 | ||
| @@ -290,18 +287,19 @@ LibreSSL Portable Release Notes: | |||
| 290 | 287 | ||
| 291 | * Add missing prototype for d2i_DSAPrivateKey_fp(3) to x509.h. | 288 | * Add missing prototype for d2i_DSAPrivateKey_fp(3) to x509.h. |
| 292 | 289 | ||
| 293 | * Show DTLSv1.2 message with openssl(1) s_server and s_client. | 290 | * Add DTLSv1.2 to openssl(1) s_server and s_client protocol message |
| 291 | logging. | ||
| 294 | 292 | ||
| 295 | * Avoid leaking param->name in x509_verify_param_zero(). | 293 | * Avoid leaking param->name in x509_verify_param_zero(). |
| 296 | 294 | ||
| 297 | * Avoid a leak in an error path in openssl x509. | 295 | * Avoid a leak in an error path in openssl(1) x509. |
| 298 | 296 | ||
| 299 | * Add some error checking to openssl x509. | 297 | * Add some error checking to openssl(1) x509. |
| 300 | 298 | ||
| 301 | * When sending an alert in TLSv1.3, only set its error code when no | 299 | * When sending an alert in TLSv1.3, only set its error code when no |
| 302 | other error was set previously. Certain clients rely on specific | 300 | other error was set previously. Certain clients rely on specific |
| 303 | SSL_R_ error codes to determine that they deal with a self signed | 301 | SSL_R_ error codes to identify that they are dealing with a self |
| 304 | cert. | 302 | signed cert. |
| 305 | 303 | ||
| 306 | * Provide SSL_use_certificate_chain_file(3). | 304 | * Provide SSL_use_certificate_chain_file(3). |
| 307 | 305 | ||
| @@ -309,8 +307,6 @@ LibreSSL Portable Release Notes: | |||
| 309 | 307 | ||
| 310 | * Provide various DTLSv1.2 specific functions and defines. | 308 | * Provide various DTLSv1.2 specific functions and defines. |
| 311 | 309 | ||
| 312 | * Remove workarounds for SSL_is_dtls() in openssl(1). | ||
| 313 | |||
| 314 | * Document meaning of '*' in the genrsa output. | 310 | * Document meaning of '*' in the genrsa output. |
| 315 | 311 | ||
| 316 | * Updated documentation for SSL_get_shared_ciphers(3). | 312 | * Updated documentation for SSL_get_shared_ciphers(3). |
