Skip to content

gh-159387: Fix TLS 1.0–1.2 availability detection with OpenSSL 4.0 - #159388

Merged
gpshead merged 1 commit into
python:mainfrom
lpyu001:ssl_TSL_1.2
Oct 31, 2026
Merged

gpshead merged 1 commit into
python:mainfrom
lpyu001:ssl_TSL_1.2

Conversation

@lpyu001

@lpyu001 lpyu001 commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

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.

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.
@picnixz

picnixz commented Oct 31, 2026

Copy link
Copy Markdown
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
gpshead enabled auto-merge (squash) October 31, 2026 23:26
@gpshead
gpshead merged commit e7acd6a into python:main Oct 31, 2026
61 checks passed
@lpyu001

lpyu001 commented Nov 1, 2026

Copy link
Copy Markdown
Contributor Author

I noticed that the 3.15 branch is also affected. Should this fix be backported to 3.15?

@vstinner vstinner added the needs backport to 3.15 bugs and security fixes label Nov 4, 2026
@miss-islington-app

Copy link
Copy Markdown

Thanks @lpyu001 for the PR, and @gpshead for merging it 🌮🎉.. I'm working now to backport this PR to: 3.15.
🐍🍒⛏🤖

@bedevere-app

bedevere-app Bot commented Nov 4, 2026

Copy link
Copy Markdown

GH-161320 is a backport of this pull request to the 3.15 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.15 bugs and security fixes label Nov 4, 2026
@vstinner

vstinner commented Nov 4, 2026

Copy link
Copy Markdown
Member

I noticed that the 3.15 branch is also affected. Should this fix be backported to 3.15?

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>
@lpyu001
lpyu001 deleted the ssl_TSL_1.2 branch November 7, 2026 03:39
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.

4 participants