OpenSSL 4.0.0 has been released as a feature update to the widely used cryptographic and TLS library. This version introduces new protocol capabilities, API changes, and the long-anticipated removal of legacy code.
A key addition in OpenSSL 4.0 is support for Encrypted Client Hello (ECH). The release also includes cSHAKE support, new SM2-related TLS and signature features from RFC 8998, support for SNMP KDF and SRTP KDF, “ML-DSA-MU” digest algorithm support, and negotiated FFDHE key exchange for TLS 1.2.
For FIPS users, self-tests can now be deferred and executed as needed during FIPS module installation using the -defer_tests option of openssl fipsinstall.
OpenSSL 4.0 also introduces several compatibility-breaking changes. It removes support for SSLv3 and the SSLv2 Client Hello, eliminates engine support, replaces the c_rehash script with openssl rehash, and disables deprecated TLS elliptic curves and explicit EC curves at compile time by default unless re-enabled during configuration.
Additionally, ASN1_STRING is now opaque, several X.509-related APIs use added const qualifiers, and older certificate time comparison functions have been deprecated in favor of X509_check_certificate_times().
Additional changes in the 4.0 branch affect verification behavior and internal cleanup. Lower-bound checks are now enforced for PKCS5_PBKDF2_HMAC when used with the FIPS provider. Stricter validation paths include added AKID and CRL verification checks. Libcrypto no longer performs global cleanup through atexit(); instead, OPENSSL_cleanup() runs through a global destructor or does not run by default, depending on the environment.
For developers and downstream projects, OpenSSL 4.0 is a significant upgrade. It adds important new cryptographic and TLS features, but also removes interfaces and behaviors that some legacy software may still require.
For more details, see the changelog.
Finally, it is important to note the support cycle. OpenSSL 4.0 is now the latest feature branch, while OpenSSL 3.5 remains the current LTS series. Users seeking the latest features can upgrade to 4.0, while those prioritizing extended maintenance support may continue using 3.5 LTS.
