Skip to content

enh(Crypto,NetSSL): Drop support for OpenSSL < 1.1.1#5108

Merged
matejk merged 1 commit intomainfrom
3739-drop-openssl-1.0-support
Dec 18, 2025
Merged

enh(Crypto,NetSSL): Drop support for OpenSSL < 1.1.1#5108
matejk merged 1 commit intomainfrom
3739-drop-openssl-1.0-support

Conversation

@matejk
Copy link
Copy Markdown
Contributor

@matejk matejk commented Dec 17, 2025

Summary

This PR removes all compatibility code for OpenSSL versions prior to 1.1.1, significantly simplifying the codebase.

Closes #3739

Changes

CMake Requirements

  • Added minimum OpenSSL version 1.1.1 to find_package() calls

Crypto Library

  • Updated compile-time version check in Crypto.h to require OpenSSL 1.1.1
  • OpenSSLInitializer: Removed manual thread locking callbacks (OpenSSL 1.1.0+ handles threading automatically via CRYPTO_set_locking_callback)
  • CipherImpl: Simplified EVP_CIPHER_CTX handling to use pointer-based API only (removed stack allocation path)
  • CipherKeyImpl: Removed version conditional around CTR/GCM/CCM cipher modes
  • EVPPKey: Removed version conditional for EC key support constructor
  • RSAKeyImpl: Simplified RSA_get0_key() usage (removed manual BIGNUM access)
  • X509Certificate: Removed compatibility macros for ASN1_STRING_get0_data, X509_get0_notBefore/notAfter, X509_up_ref, and X509_get_signature_nid

NetSSL_OpenSSL Library

  • Context: Removed all TLS method version conditionals, now uses TLS_method()/TLS_client_method()/TLS_server_method() only. Simplified ECDH initialization and security level functions
  • SecureSocketImpl: Removed conditionals for TLS 1.3 session tickets and OCSP stapling. Added explicit Mutex.h include (previously transitive through OpenSSLInitializer.h)

Rationale

OpenSSL 1.1.1 reached end-of-life on 2023-09-11. All actively maintained systems should have at least this version available. The 1.1.x series introduced significant API changes that required extensive version conditionals in the codebase. Removing this legacy support:

  • Reduces code complexity (~370 lines removed)
  • Eliminates potential bugs in rarely-tested code paths
  • Simplifies maintenance and future development
  • OpenSSL 3.x is backward compatible with 1.1.1 APIs used here

@matejk matejk merged commit 3a6f5b8 into main Dec 18, 2025
122 of 124 checks passed
@matejk matejk deleted the 3739-drop-openssl-1.0-support branch December 18, 2025 09:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Drop support for OpenSSL < 1.1.1 (Poco 1.12.x compile error on systems with OpenSSL 1.0.0)

1 participant