logo
Kurashizu Blogwhere ideas flow
  • Home
  • News
  • Blog
  • About
  • Home
  • News
  • Blog
  • About

© 2026 Kurashizu. All rights reserved.

Admin·New Post·Service Status
Powered by Cloudflare·26.10.26
← Back to news

OpenSSL 4.1.0

Original article
github.com|165 points|47 comments|by petecooper|Oct 23, 2026

OpenSSL 4.1.0 Release Overview

OpenSSL Machine

OpenSSL has launched version 4.1.0, a major feature release designed to introduce significant new capabilities and architectural improvements to the library.

🛠️ Build & Compatibility Changes

This version introduces several modifications that may impact how the software is compiled or integrated.

New Build Targets

To address gaps in C99 standard support within MSVC 2013, the following targets have been added to provide necessary internal bridging functions:

  • VC-WIN32-MSVC2013
  • VC-WIN64A-MSVC2013

Hardware Optimizations

The release includes specialized performance enhancements for various architectures:

ArchitectureOptimization Detail
ppc64leOptimized NTT operations for ML-DSA and ML-KEM
x86_64Optimized ML-DSA operations
x86_64AVX-512-optimized SHAKE x4 operations (specifically for ML-DSA)
x86_64VAES and AVX-512 optimizations for AES-CBC decryption

[!IMPORTANT] Utility Update: The tsget tool has transitioned from the obsolete WWW::Curl::Easy to Net::Curl::Easy (available via CPAN). Action Required: Users relying on tsget must install Net::Curl::Easy prior to performing the upgrade.

Deprecations and Removals

The following targets and configuration options have been removed:

  • VC-WIN64I (Windows-on-Itanium)
  • VC-CE (Windows CE)
  • no-ecdsa and no-ecdh (These options were removed as they failed to effectively disable the underlying implementations).

✨ New Feature Set

The 4.1.0 release expands protocol support through the implementation of the following:

  • DTLS 1.3 Support: Full implementation of RFC 9147\text{RFC 9147}RFC 9147.
  • GREASE Support: Implementation of RFC 8701\text{RFC 8701}RFC 8701 (Generate Random Extensions And Sustain Extensibility).

Note: The NTT (Number Theoretic Transform) optimizations mentioned above improve the efficiency of polynomial multiplication, typically reducing complexity to O(nlog⁡n)O(n \log n)O(nlogn).


⚠️ Known Issues

There are several documented bugs in this release, primarily affecting DTLS 1.3:

Retransmission and Handshake Errors

  • Issue #32878: Upon receiving a DTLS 1.3 KeyUpdate, the retransmission buffer is cleared of all other pending post-handshake records. Consequently, records like NewSessionTicket will not be resent if the initial packet is lost.
  • Issue #33242: Servers may terminate handshakes with an unexpected_message alert if a client acknowledges the server's first flight (partially or fully) before sending its own response. This is common during packet loss or while the client generates authentication.

Connection Reporting Errors

  • Issue #33277: A permanent failure in receiving on a DTLS listener might be incorrectly reported as SSL_ERROR_WANT_READ on an accepted connection. This can lead to applications hanging while waiting for a recovery that will never happen.
  • Issue #33278: On nonblocking connections from a DTLS listener, a retryable write failure may return SSL_ERROR_SYSCALL instead of the expected SSL_ERROR_WANT_WRITE.

Summary of Error Codes

// Potential misleading return values in 4.1.0
int result = SSL_do_handshake(s);
if (result == SSL_ERROR_WANT_READ) {
    // Might actually be a permanent failure (#33277)
} else if (result == SSL_ERROR_SYSCALL) {
    // Might actually be a retryable write failure (#33278)
}