blob: 736fdf3334fb7ef6f12b56b5a9c35a294bd2df42 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
From 077f628d8ac9714f0c31a0d05b670bb8bda5ac24 Mon Sep 17 00:00:00 2001
From: Etoh <etoh@syncplay.pl>
Date: Thu, 7 May 2026 22:11:06 +0100
Subject: [PATCH] Support TLS on pyOpenSSL 26.2.0 (#774)
---
syncplay/protocols.py | 24 +++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/syncplay/protocols.py b/syncplay/protocols.py
index 6554cb1..3e1d8b0 100755
--- a/syncplay/protocols.py
+++ b/syncplay/protocols.py
@@ -401,9 +401,27 @@ class SyncClientProtocol(JSONCommandProtocol):
self.sendHello()
return
- for x in range(0,self._serverCertificateTLS.get_extension_count()):
- if (self._serverCertificateTLS.get_extension(x).get_short_name() == b'subjectAltName'):
- self._subjectTLS = self._serverCertificateTLS.get_extension(x).__str__().replace("DNS:", "")
+ self._subjectTLS = ""
+ try:
+ from cryptography import x509
+ cryptographyCertificate = self._serverCertificateTLS.to_cryptography()
+ subjectAltName = cryptographyCertificate.extensions.get_extension_for_class(x509.SubjectAlternativeName).value
+ names = subjectAltName.get_values_for_type(x509.DNSName)
+ names = names + ["IP Address:{}".format(ipAddress) for ipAddress in subjectAltName.get_values_for_type(x509.IPAddress)]
+ self._subjectTLS = ", ".join([str(name) for name in names])
+ except Exception:
+ pass
+
+ if not self._subjectTLS:
+ try:
+ if hasattr(self._serverCertificateTLS, "get_extension_count") and hasattr(self._serverCertificateTLS, "get_extension"):
+ for x in range(0,self._serverCertificateTLS.get_extension_count()):
+ extension = self._serverCertificateTLS.get_extension(x)
+ if extension.get_short_name() == b'subjectAltName':
+ self._subjectTLS = str(extension).replace("DNS:", "")
+ break
+ except Exception:
+ pass
if not self._subjectTLS:
self._subjectTLS = self._client._config.get("host", "") or ""
--
2.53.0
|