openssl 4.0.0 rpms released and added to all supported platforms (Alma Linux, Rocky Linux, Red Hat Enterprise Linux RHEL, Oracle Linux).
OpenSSL 4.0.0 is a feature release adding significant new functionality to OpenSSL. This release incorporates the following potentially significant or incompatible changes:
– Removed extra leading ’00:’ when printing key data such as an RSA modulus in hexadecimal format where the first (most significant) byte is >= 0x80.
– Standardized the width of hexadecimal dumps to 24 bytes for signatures (to stay within the 80 characters limit) and 16 bytes for everything else.
– Lower bounds checks are now enforced when using `PKCS5_PBKDF2_HMAC` API with FIPS provider.
– Added AKID verification checks when `X509_V_FLAG_X509_STRICT` is set.
– Augmented CRL verification process with several additional checks.
– `libcrypto` no longer cleans up globally allocated data via `atexit()`.
– `BIO_snprintf()` now uses `snprintf()` provided by libc instead of internal implementation.
– `OPENSSL_cleanup()` now runs in a global destructor, or not at all by default.
– `ASN1_STRING` has been made opaque.
– Signatures of numerous API functions, including those that are related to X509 processing, are changed to include `const` qualifiers for argument and return types, where suitable.
– Deprecated `X509_cmp_time()`, `X509_cmp_current_time()`, and `X509_cmp_timeframe()` in favor of `X509_check_certificate_times()`.
– Removed support for the SSLv2 Client Hello.
– Removed support for SSLv3. SSLv3 has been deprecated since 2015, and OpenSSL had it disabled by default since version 1.1.0 (2016).
– Removed support for engines. The `no-engine` build option and the `OPENSSL_NO_ENGINE` macro are always present.
– Support of deprecated elliptic curves in TLS according to RFC 8422 was disabled at compile-time by default. To enable it, use the `enable-tls-deprecated-ec` configuration option.
– Support of explicit EC curves was disabled at compile-time by default. To enable it, use the `enable-ec_explicit_curves` configuration option.
– Removed `c_rehash` script tool. Use `openssl rehash` instead.
– Removed the deprecated `msie-hack` option from the `openssl ca` command.
– Removed `BIO_f_reliable()` implementation without replacement. It was broken since 3.0 release without any complaints.
– Removed deprecated support for custom `EVP_CIPHER`, `EVP_MD`, `EVP_PKEY`, and `EVP_PKEY_ASN1` methods.
– Removed deprecated fixed SSL/TLS version method functions.
– Removed deprecated functions `ERR_get_state()`, `ERR_remove_state()` and `ERR_remove_thread_state()`. The `ERR_STATE` object is now always opaque.
– Dropped `darwin-i386{,-cc}` and `darwin-ppc{,64}{,-cc}` targets from Configurations. This release adds the following new features:
– Support for Encrypted Client Hello (ECH, RFC 9849). See `doc/designs/ech-api.md` for details.
– Support for RFC 8998, signature algorithm `sm2sig_sm3`, key exchange group `curveSM2`, and tls-hybrid-sm2-mlkem post-quantum group `curveSM2MLKEM768`.
– cSHAKE function support as per SP 800-185.
– “ML-DSA-MU” digest algorithm support.
– Support for SNMP KDF and SRTP KDF.
– FIPS self tests can now be deferred and run as needed when installing the FIPS module with the `-defer_tests` option of the `openssl fipsinstall` command.
– Support for using either static or dynamic VC runtime linkage on Windows.
– Support for negotiated FFDHE key exchange in TLS 1.2 in accordance with RFC 7919. RFC 8422: RFC 9849: RFC 8998: SP 800-185: RFC 7919:
.so Suffix changed from 81.3 to 81.4 (/usr/lib64/libcrypto.so.81.4.0.0, /usr/lib64/libcrypto.so.81.4 -> libcrypto.so.81.4.0.0, /usr/lib64/libssl.so.81.4.0.0, /usr/lib64/libssl.so.81.4 -> libssl.so.81.4.0.0).
We continue to build libs with QUIC support as a separate non-conflicting package openssl-quic-libs, with separate .so.81.4 suffixing to avoid conflicts with the official .so.X.