Deal with ssl.PROTOCOL_TLSv1 removal from Python built with OpenSSL 4+
OpenSSL 4+ removed TLSv1 and TLSv1.1 support, this patched address this issue in rawhide, note the upstream already received another patch: https://github.com/urllib3/urllib3/pull/5097 Resolves: rhbz#2504593 Signed-off-by: Filipe Rosset <rosset.filipe@gmail.com>
This commit is contained in:
parent
d982eea4c7
commit
fed40e731b
2 changed files with 72 additions and 1 deletions
67
python-urllib3-py315-ssl.patch
Normal file
67
python-urllib3-py315-ssl.patch
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
--- a/src/urllib3/contrib/pyopenssl.py
|
||||
+++ b/src/urllib3/contrib/pyopenssl.py
|
||||
@@ -69,9 +69,11 @@
|
||||
_openssl_versions: dict[int, int] = {
|
||||
util.ssl_.PROTOCOL_TLS: OpenSSL.SSL.SSLv23_METHOD, # type: ignore[attr-defined]
|
||||
util.ssl_.PROTOCOL_TLS_CLIENT: OpenSSL.SSL.SSLv23_METHOD, # type: ignore[attr-defined]
|
||||
- ssl.PROTOCOL_TLSv1: OpenSSL.SSL.TLSv1_METHOD,
|
||||
}
|
||||
|
||||
+if hasattr(ssl, "PROTOCOL_TLSv1") and hasattr(OpenSSL.SSL, "TLSv1_METHOD"):
|
||||
+ _openssl_versions[ssl.PROTOCOL_TLSv1] = OpenSSL.SSL.TLSv1_METHOD
|
||||
+
|
||||
if hasattr(ssl, "PROTOCOL_TLSv1_1") and hasattr(OpenSSL.SSL, "TLSv1_1_METHOD"):
|
||||
_openssl_versions[ssl.PROTOCOL_TLSv1_1] = OpenSSL.SSL.TLSv1_1_METHOD
|
||||
|
||||
--- a/test/test_ssl.py
|
||||
+++ b/test/test_ssl.py
|
||||
@@ -173,15 +173,15 @@
|
||||
"kwargs",
|
||||
[
|
||||
{
|
||||
- "ssl_version": ssl.PROTOCOL_TLSv1,
|
||||
+ "ssl_version": getattr(ssl, "PROTOCOL_TLSv1", getattr(ssl, "PROTOCOL_TLSv1_2", 1)),
|
||||
"ssl_minimum_version": ssl.TLSVersion.MINIMUM_SUPPORTED,
|
||||
},
|
||||
{
|
||||
- "ssl_version": ssl.PROTOCOL_TLSv1,
|
||||
+ "ssl_version": getattr(ssl, "PROTOCOL_TLSv1", getattr(ssl, "PROTOCOL_TLSv1_2", 1)),
|
||||
"ssl_maximum_version": ssl.TLSVersion.TLSv1,
|
||||
},
|
||||
{
|
||||
- "ssl_version": ssl.PROTOCOL_TLSv1,
|
||||
+ "ssl_version": getattr(ssl, "PROTOCOL_TLSv1", getattr(ssl, "PROTOCOL_TLSv1_2", 1)),
|
||||
"ssl_minimum_version": ssl.TLSVersion.MINIMUM_SUPPORTED,
|
||||
"ssl_maximum_version": ssl.TLSVersion.MAXIMUM_SUPPORTED,
|
||||
},
|
||||
@@ -222,10 +222,10 @@
|
||||
@pytest.mark.parametrize(
|
||||
"kwargs",
|
||||
[
|
||||
- {"ssl_version": ssl.PROTOCOL_TLSv1, "ssl_minimum_version": None},
|
||||
- {"ssl_version": ssl.PROTOCOL_TLSv1, "ssl_maximum_version": None},
|
||||
+ {"ssl_version": getattr(ssl, "PROTOCOL_TLSv1", getattr(ssl, "PROTOCOL_TLSv1_2", 1)), "ssl_minimum_version": None},
|
||||
+ {"ssl_version": getattr(ssl, "PROTOCOL_TLSv1", getattr(ssl, "PROTOCOL_TLSv1_2", 1)), "ssl_maximum_version": None},
|
||||
{
|
||||
- "ssl_version": ssl.PROTOCOL_TLSv1,
|
||||
+ "ssl_version": getattr(ssl, "PROTOCOL_TLSv1", getattr(ssl, "PROTOCOL_TLSv1_2", 1)),
|
||||
"ssl_minimum_version": None,
|
||||
"ssl_maximum_version": None,
|
||||
},
|
||||
--- a/test/test_util.py
|
||||
+++ b/test/test_util.py
|
||||
@@ -982,9 +982,11 @@
|
||||
@pytest.mark.parametrize(
|
||||
"candidate, version",
|
||||
[
|
||||
- (ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1),
|
||||
- ("PROTOCOL_TLSv1", ssl.PROTOCOL_TLSv1),
|
||||
- ("TLSv1", ssl.PROTOCOL_TLSv1),
|
||||
+ *([
|
||||
+ (getattr(ssl, "PROTOCOL_TLSv1", None), getattr(ssl, "PROTOCOL_TLSv1", None)),
|
||||
+ ("PROTOCOL_TLSv1", getattr(ssl, "PROTOCOL_TLSv1", None)),
|
||||
+ ("TLSv1", getattr(ssl, "PROTOCOL_TLSv1", None)),
|
||||
+ ] if hasattr(ssl, "PROTOCOL_TLSv1") else []),
|
||||
(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv23),
|
||||
],
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue