OpenSSL version 4.0 alpha 1 released
====================================
OpenSSL - The Open Source toolkit for SSL/TLS
https://www.openssl-library.org/
OpenSSL 4.0 is currently in alpha.
OpenSSL 4.0 alpha 1 has now been made available.
Note: This OpenSSL pre-release has been provided for testing ONLY.
It should NOT be used for security critical purposes.
The beta release is available for download at:
*
https://github.com/openssl/openssl/releases
Please download and check this beta release as soon as possible.
To report a bug, open an issue on GitHub:
*
https://github.com/openssl/openssl/issues
Release notes
=============
OpenSSL 4.0.0-alpha1 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()`.
* `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.
* 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 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 7919]:
https://datatracker.ietf.org/doc/html/rfc7919
[RFC 8422]:
https://datatracker.ietf.org/doc/html/rfc8422
[RFC 8998]:
https://datatracker.ietf.org/doc/html/rfc8998#name-iana-considerations
[RFC 9849]:
https://datatracker.ietf.org/doc/html/rfc9849
[SP 800-185]:
https://csrc.nist.gov/pubs/sp/800/185/final
Yours,
The OpenSSL Project Team.
--
Tomáš Mráz, Chief Technology Officer, OpenSSL Foundation
Join the Code Protectors or support us on Github Sponsors
https://openssl-foundation.org/donate/