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>
67 lines
3 KiB
Diff
67 lines
3 KiB
Diff
--- 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),
|
|
],
|
|
)
|