OpenSSL 4.1.0

Source: github.com
184 points by petecooper 19 hours ago on hackernews | 62 comments

OpenSSL 4.1.0 is a feature release adding significant new functionality
to OpenSSL.

This release incorporates the following potentially significant or incompatible
changes:

  • Added VC-WIN32-MSVC2013 and VC-WIN64A-MSVC2013 build targets to provide
    internal functions for bridging the gaps in C99 standard support
    that are present in MSVC 2013.

  • Added optimized ML-DSA and ML-KEM NTT operations on ppc64le;
    optimized ML-DSA operations on x86_64;
    AVX-512-optimized SHAKE x4 operations for ML-DSA on x86_64;
    AVX-512 and VAES optimizations for AES-CBC decryption on x86_64.

  • Changed tsget utility to use Net::Curl::Easy (from the Net-Curl CPAN
    distribution) instead of the abandoned WWW::Curl::Easy. Users who rely
    on tsget should install Net::Curl::Easy before upgrading.

  • Dropped Windows-on-Itanium (VC-WIN64I) and Windows CE (VC-CE) targets
    from Configurations.

  • Dropped no-ecdsa and no-ecdh options from Configure, as these options
    did not really disable the implementations. Use no-ec to disable
    the elliptic curve support.

This release adds the following new features:

  • Support for DTLS 1.3 (RFC 9147).
    Refer to the ossl-guide-dtlsv13(7) manual page for details.

  • Support for RFC 8701 GREASE (Generate Random Extensions And Sustain
    Extensibility).

  • DTLS support in the SSL listener API.

  • Support for IKEV2 KDF.

  • Initial support for the Elbrus2000 (e2k) architecture.

Known issues in 4.1.0:

  • #32878
    When a DTLS 1.3 KeyUpdate is received, all other outstanding
    post-handshake records are dropped from the retransmission buffer.
    This means post-handshake records still awaiting an ACK (such as a
    NewSessionTicket) will no longer be retransmitted if the original
    transmission is lost. A fix is in progress and planned for a future
    release.

  • #33277
    A permanent receive failure on a DTLS listener can be reported as
    SSL_ERROR_WANT_READ on an accepted connection. Polling and subsequent
    accept calls may also fail to report the error, causing applications
    to continue waiting after a permanent failure.

  • #33278
    A retryable write failure on a nonblocking connection accepted from a
    DTLS listener can be reported as SSL_ERROR_SYSCALL instead of
    SSL_ERROR_WANT_WRITE. Applications treating this result as fatal may
    close a connection that is still usable.

  • #33242
    DTLS 1.3 servers may abort handshakes with an unexpected_message alert
    when a client acknowledges part or all of the server's first flight
    before sending its response. This can occur after packet loss or while
    the client is preparing its authentication response.