OpenSSL 4.0 Beta Release Announcement
The OpenSSL Project is pleased to announce that OpenSSL 4.0 Beta1 pre-release is available, adding significant functionality to the OpenSSL Library.
OpenSSL 4.0.0 is a feature pre-release adding significant new functionality, bug fixes and mitigations:
-
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_HMACAPI with FIPS provider. -
Added AKID verification checks when
X509_V_FLAG_X509_STRICTis set. -
Augmented CRL verification process with several additional checks.
-
libcryptono longer cleans up globally allocated data viaatexit(). -
OPENSSL_cleanup()now runs in a global destructor, or not at all by default. -
ASN1_STRINGhas been made opaque. -
Signatures of numerous API functions, including those that are related to X509 processing, are changed to include
constqualifiers for argument and return types, where suitable. -
Deprecated
X509_cmp_time(),X509_cmp_current_time(), andX509_cmp_timeframe()in favor ofX509_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-enginebuild option and theOPENSSL_NO_ENGINEmacro 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-ecconfiguration option. -
Support of explicit EC curves was disabled at compile-time by default. To enable it, use the
enable-ec_explicit_curvesconfiguration option. -
Removed
c_rehashscript tool. Useopenssl rehashinstead. -
Removed the deprecated
msie-hackoption from theopenssl cacommand. -
Removed
BIO_f_reliable()implementation without replacement. It was broken since 3.0 release without any complaints. -
Removed deprecated functions
ERR_get_state(),ERR_remove_state()andERR_remove_thread_state(). TheERR_STATEobject is now always opaque. -
Dropped
darwin-i386{,-cc}anddarwin-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.mdfor details. -
Support for RFC 8998, signature algorithm
sm2sig_sm3, key exchange groupcurveSM2, and [tls-hybrid-sm2-mlkem] post-quantum groupcurveSM2MLKEM768. -
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_testsoption of theopenssl fipsinstallcommand. -
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.
You can download the Alpha release from our download page or from the GitHub release page