Repository navigation
gh-159387: Fix TLS 1.0–1.2 availability detection with OpenSSL 4.0 - #159388
Merged
Merged
Conversation
OpenSSL 4.0 removed the version-specific methods but still supports TLS 1.0–1.2 through TLS_method(). Stop reporting these versions as unavailable, and expose legacy PROTOCOL_TLSv1* constants only when their corresponding methods exist.
Member
|
I think Victor is the one who changed the macros, but I think it's right the fix (but I only skimmed through it) |
gpshead
approved these changes
Oct 31, 2026
Contributor
Author
|
I noticed that the 3.15 branch is also affected. Should this fix be backported to 3.15? |
|
GH-161320 is a backport of this pull request to the 3.15 branch. |
Member
Yes, we should. I backported the change to 3.15. |
vstinner
pushed a commit
that referenced
this pull request
Nov 6, 2026
… 4.0 (GH-159388) (#161320) gh-159387: Fix TLS 1.0–1.2 availability detection with OpenSSL 4.0 (GH-159388) Fix TLS 1.0–1.2 availability detection with OpenSSL 4.0 OpenSSL 4.0 removed the version-specific methods but still supports TLS 1.0–1.2 through TLS_method(). Stop reporting these versions as unavailable, and expose legacy PROTOCOL_TLSv1* constants only when their corresponding methods exist. (cherry picked from commit e7acd6a) Co-authored-by: Pengyu Lee <lipengyu@kylinos.cn>
mehw
added a commit
to mehw/cpython
that referenced
this pull request
Nov 6, 2026
Compilation tested with OpenSSL 4.1.0 on Gentoo GNU/Linux (amd64). Upstream commit references: Remove an unneeded call into OpenSSL (pythonGH-6887) python@55e53c3 bpo-40457: Support OpenSSL without TLS 1.0/1.1 (pythonGH-19862) python@6e8cda9 bpo-43669: PEP 644: Require OpenSSL 1.1.1 or newer (pythonGH-23014) python@39258d3 pythongh-146207: Add support for OpenSSL 4.0.0 alpha1 (python#146217) python@3364e7e pythongh-159387: Fix TLS 1.0–1.2 availability detection with OpenSSL 4.0 (pythonGH-159388) python@e7acd6a pythongh-141801: Use accessors for ASN1_STRING fields in libssl python@c41fce0 Remove SSLv2 support openssl/openssl@45f55f6 Removes fixed version TLS methods openssl/openssl@9a46c4c Describe X509 constification and ASN1_STRING changes openssl/openssl@c0f82d9 Constify X509_NAME openssl/openssl@b0f2107 Make ASN1_STRING opaque openssl/openssl@46dbd7f Make ERR_STATE opaque and remove related deprecated functions openssl/openssl@5c14539 Closes: https://bugs.gentoo.org/985562 Signed-off-by: Matthew White <mehw.is.me@proton.me>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
OpenSSL 4.0 removed the version-specific methods but still supports TLS 1.0–1.2 through TLS_method(). Stop reporting these versions as unavailable, and expose legacy PROTOCOL_TLSv1* constants only when their corresponding methods exist.
ssl.HAS_TLSv1_2isFalsewith OpenSSL 4.0 although TLS 1.2 connections work #159387