Opened 3 weeks ago

Closed 2 weeks ago

#5475 closed enhancement (fixed)

openssl-3.3.0

Reported by: Bruce Dubbs Owned by: lfs-book
Priority: normal Milestone: 12.2
Component: Book Version: git
Severity: normal Keywords:
Cc:

Description

New minor version.

Change History (2)

comment:1 by Bruce Dubbs, 2 weeks ago

OpenSSL 3.3

Changes between 3.2 and 3.3.0 [9 Apr 2024]

  • The -verify option to the openssl crl and openssl req will make the program exit with 1 on failure.
  • The BIO_get_new_index() function can only be called 127 times before it reaches its upper bound of BIO_TYPE_MASK. It will now correctly return an error of -1 once it is exhausted. Users may need to reserve using this function for cases where BIO_find_type() is required. Either BIO_TYPE_NONE or BIO_get_new_index() can be used to supply a type to BIO_meth_new().
  • Added API functions SSL_SESSION_get_time_ex(), SSL_SESSION_set_time_ex() using time_t which is Y2038 safe on 32 bit systems when 64 bit time is enabled (e.g via setting glibc macro _TIME_BITS=64).
  • The d2i_ASN1_GENERALIZEDTIME(), d2i_ASN1_UTCTIME(), ASN1_TIME_check(), and related functions have been augmented to check for a minimum length of the input string, in accordance with ITU-T X.690 section 11.7 and 11.8.
  • Unknown entries in TLS SignatureAlgorithms, ClientSignatureAlgorithms config options and the respective calls to SSL[_CTX]_set1_sigalgs() and SSL[_CTX]_set1_client_sigalgs() that start with ? character are ignored and the configuration will still be used.

Similarly unknown entries that start with ? character in a TLS Groups config option or set with SSL[_CTX]_set1_groups_list() are ignored and the configuration will still be used.

In both cases if the resulting list is empty, an error is returned.

  • The EVP_PKEY_fromdata function has been augmented to allow for the derivation of CRT (Chinese Remainder Theorem) parameters when requested. See the OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ param in the EVP_PKEY-RSA documentation.
  • The activate and soft_load configuration settings for providers in openssl.cnf have been updated to require a value of [1|yes|true|on] (in lower or UPPER case) to enable the setting. Conversely a value of [0|no|false|off] will disable the setting. All other values, or the omission of a value for these settings will result in an error.

  • Added -set_issuer and -set_subject options to openssl x509 to override the Issuer and Subject when creating a certificate. The -subj option now is an alias for -set_subject.
  • OPENSSL_sk_push() and sk_<TYPE>_push() functions now return 0 instead of -1 if called with a NULL stack argument.

  • In openssl speed, changed the default hash function used with hmac from md5 to sha256.
  • Added several new features of CMPv3 defined in RFC 9480 and RFC 9483:
    • certProfile request message header and respective -profile CLI option
    • support for delayed delivery of all types of response messages
  • The build of exporters (such as .pc files for pkg-config) cleaned up to be less hard coded in the build file templates, and to allow easier addition of more exporters. With that, an exporter for CMake is also added.
  • The BLAKE2s hash algorithm matches BLAKE2b's support for configurable output length.
  • New option SSL_OP_PREFER_NO_DHE_KEX, which allows configuring a TLS1.3 server to prefer session resumption using PSK-only key exchange over PSK with DHE, if both are available.
  • New API SSL_write_ex2, which can be used to send an end-of-stream (FIN) condition in an optimised way when using QUIC.
  • New atexit configuration switch, which controls whether the OPENSSL_cleanup is registered when libcrypto is unloaded. This is turned off on NonStop configurations because of loader differences on that platform compared to Linux.
  • Support for qlog for tracing QUIC connections has been added.

The qlog output from OpenSSL currently uses a pre-standard draft version of qlog. The output from OpenSSL will change in incompatible ways in future releases, and is not subject to any format stability or compatibility guarantees at this time. This functionality can be disabled with the build-time option no-unstable-qlog. See the openssl-qlog(7) manpage for details.

  • Added APIs to allow configuring the negotiated idle timeout for QUIC connections, and to allow determining the number of additional streams that can currently be created for a QUIC connection.
  • Added APIs to allow disabling implicit QUIC event processing for QUIC SSL objects, allowing applications to control when event handling occurs. Refer to the SSL_get_value_uint(3) manpage for details.
  • Limited support for polling of QUIC connection and stream objects in a non-blocking manner. Refer to the SSL_poll(3) manpage for details.
  • Added APIs to allow querying the size and utilisation of a QUIC stream's write buffer. Refer to the SSL_get_value_uint(3) manpage for details.
  • New limit on HTTP response headers is introduced to HTTP client. The default limit is set to 256 header lines. If limit is exceeded the response processing stops with error HTTP_R_RESPONSE_TOO_MANY_HDRLINES. Application may call OSSL_HTTP_REQ_CTX_set_max_response_hdr_lines(3) to change the default. Setting the value to 0 disables the limit.
  • Applied AES-GCM unroll8 optimisation to Microsoft Azure Cobalt 100
  • Added X509_STORE_get1_objects to avoid issues with the existing X509_STORE_get0_objects API in multi-threaded applications. Refer to the documentation for details.
  • Added assembly implementation for md5 on loongarch64
  • Optimized AES-CTR for ARM Neoverse V1 and V2
  • Enable AES and SHA3 optimisations on Applie Silicon M3-based MacOS systems similar to M1/M2.
  • Added a new EVP_DigestSqueeze() API. This allows SHAKE to squeeze multiple times with different output sizes.
  • Various optimizations for cryptographic routines using RISC-V vector crypto extensions
  • Accept longer context for TLS 1.2 exporters

While RFC 5705 implies that the maximum length of a context for exporters is 65535 bytes as the length is embedded in uint16, the previous implementation enforced a much smaller limit, which is less than 1024 bytes. This restriction has been removed.

comment:2 by Bruce Dubbs, 2 weeks ago

Resolution: fixed
Status: newclosed

Fixed at commit 185b763812:

Update to setuptools-69.5.1.
Update to python3-3.12.3.
Update to openssl-3.3.0.
Update to ninja-1.12.0.
Update to man-db-2.12.1.
Update to linux-6.8.6.
Update to iana-etc-20240412.
Update to vim-9.1.0330.
Note: See TracTickets for help on using tickets.