Sat, 16 Feb 2019 17:40:24 +0100
conda package manager moved to default branch
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
6645
ad476851d7e0
Updated copyright for 2019.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6613
diff
changeset
|
3 | # Copyright (c) 2013 - 2019 Detlev Offenbach <detlev@die-offenbachs.de> |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a SSL error handler. |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
3145
a9de05d4a22f
# __IGNORE_WARNING__ added/ removed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3060
diff
changeset
|
10 | from __future__ import unicode_literals |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2360
diff
changeset
|
11 | |
6613
7b7523fd4c80
E5SslErrorHandler: fixed a compatibility issue with Windows 7 causing SSL handshakes to fail (without sending the sslErrors signal).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6607
diff
changeset
|
12 | import platform |
7b7523fd4c80
E5SslErrorHandler: fixed a compatibility issue with Windows 7 causing SSL handshakes to fail (without sending the sslErrors signal).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6607
diff
changeset
|
13 | |
5736
000ea446ff4b
Prepared the code for Qt > 5.9.99.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
14 | from PyQt5.QtCore import QObject, QByteArray |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
15 | from PyQt5.QtNetwork import QSslCertificate, QSslConfiguration, QSslSocket, \ |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | QSslError, QSsl |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | from E5Gui import E5MessageBox |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | import Preferences |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | import Utilities |
4241
545629046c45
Fixed a bug in the message filter causing a traceback when no message filters are configured.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
22 | import Globals |
5736
000ea446ff4b
Prepared the code for Qt > 5.9.99.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
23 | from Globals import qVersionTuple |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | class E5SslErrorHandler(QObject): |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | """ |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | Class implementing a handler for SSL errors. |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | It also initializes the default SSL configuration with certificates |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | permanently accepted by the user already. |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | """ |
2360
b6bf3925e3e1
Improved the SSL error handling logic a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2354
diff
changeset
|
33 | NotIgnored = 0 |
b6bf3925e3e1
Improved the SSL error handling logic a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2354
diff
changeset
|
34 | SystemIgnored = 1 |
b6bf3925e3e1
Improved the SSL error handling logic a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2354
diff
changeset
|
35 | UserIgnored = 2 |
b6bf3925e3e1
Improved the SSL error handling logic a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2354
diff
changeset
|
36 | |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | def __init__(self, parent=None): |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | """ |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | Constructor |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | @param parent reference to the parent object (QObject) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | """ |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2360
diff
changeset
|
43 | super(E5SslErrorHandler, self).__init__(parent) |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | caList = self.__getSystemCaCertificates() |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | if Preferences.Prefs.settings.contains("Help/CaCertificatesDict"): |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | # port old entries stored under 'Help' |
4241
545629046c45
Fixed a bug in the message filter causing a traceback when no message filters are configured.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
48 | certificateDict = Globals.toDict( |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
49 | Preferences.Prefs.settings.value("Help/CaCertificatesDict")) |
3022
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
50 | Preferences.Prefs.settings.setValue( |
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
51 | "Ssl/CaCertificatesDict", certificateDict) |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | Preferences.Prefs.settings.remove("Help/CaCertificatesDict") |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | else: |
4241
545629046c45
Fixed a bug in the message filter causing a traceback when no message filters are configured.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
54 | certificateDict = Globals.toDict( |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | Preferences.Prefs.settings.value("Ssl/CaCertificatesDict")) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | for server in certificateDict: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | for cert in QSslCertificate.fromData(certificateDict[server]): |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | if cert not in caList: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | caList.append(cert) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | sslCfg = QSslConfiguration.defaultConfiguration() |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | sslCfg.setCaCertificates(caList) |
6607
5237edb40b88
E5SslErrorHandler: some tweaking of the SSL setup code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
62 | try: |
6613
7b7523fd4c80
E5SslErrorHandler: fixed a compatibility issue with Windows 7 causing SSL handshakes to fail (without sending the sslErrors signal).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6607
diff
changeset
|
63 | sslProtocol = QSsl.TlsV1_1OrLater |
7b7523fd4c80
E5SslErrorHandler: fixed a compatibility issue with Windows 7 causing SSL handshakes to fail (without sending the sslErrors signal).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6607
diff
changeset
|
64 | if Globals.isWindowsPlatform() and platform.win32_ver()[0] == '7': |
7b7523fd4c80
E5SslErrorHandler: fixed a compatibility issue with Windows 7 causing SSL handshakes to fail (without sending the sslErrors signal).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6607
diff
changeset
|
65 | sslProtocol = QSsl.SecureProtocols |
6607
5237edb40b88
E5SslErrorHandler: some tweaking of the SSL setup code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
66 | except AttributeError: |
6613
7b7523fd4c80
E5SslErrorHandler: fixed a compatibility issue with Windows 7 causing SSL handshakes to fail (without sending the sslErrors signal).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6607
diff
changeset
|
67 | sslProtocol = QSsl.SecureProtocols |
7b7523fd4c80
E5SslErrorHandler: fixed a compatibility issue with Windows 7 causing SSL handshakes to fail (without sending the sslErrors signal).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6607
diff
changeset
|
68 | sslCfg.setProtocol(sslProtocol) |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | try: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | sslCfg.setSslOption(QSsl.SslOptionDisableCompression, True) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | except AttributeError: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | pass |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | QSslConfiguration.setDefaultConfiguration(sslCfg) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | def sslErrorsReplySlot(self, reply, errors): |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | """ |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | Public slot to handle SSL errors for a network reply. |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | @param reply reference to the reply object (QNetworkReply) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | @param errors list of SSL errors (list of QSslError) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | """ |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | self.sslErrorsReply(reply, errors) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | def sslErrorsReply(self, reply, errors): |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | """ |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | Public slot to handle SSL errors for a network reply. |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | @param reply reference to the reply object (QNetworkReply) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | @param errors list of SSL errors (list of QSslError) |
2360
b6bf3925e3e1
Improved the SSL error handling logic a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2354
diff
changeset
|
90 | @return tuple indicating to ignore the SSL errors (one of NotIgnored, |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
91 | SystemIgnored or UserIgnored) and indicating a change of the |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
92 | default SSL configuration (boolean) |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | """ |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | url = reply.url() |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | ignore, defaultChanged = self.sslErrors(errors, url.host(), url.port()) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | if ignore: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | if defaultChanged: |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
98 | reply.setSslConfiguration( |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
99 | QSslConfiguration.defaultConfiguration()) |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | reply.ignoreSslErrors() |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | else: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | reply.abort() |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | return ignore, defaultChanged |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | def sslErrors(self, errors, server, port=-1): |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | """ |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | Public method to handle SSL errors. |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | @param errors list of SSL errors (list of QSslError) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | @param server name of the server (string) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | @keyparam port value of the port (integer) |
2360
b6bf3925e3e1
Improved the SSL error handling logic a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2354
diff
changeset
|
113 | @return tuple indicating to ignore the SSL errors (one of NotIgnored, |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
114 | SystemIgnored or UserIgnored) and indicating a change of the |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
115 | default SSL configuration (boolean) |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | """ |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | caMerge = {} |
4241
545629046c45
Fixed a bug in the message filter causing a traceback when no message filters are configured.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
118 | certificateDict = Globals.toDict( |
3035
36e9f388958b
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
119 | Preferences.Prefs.settings.value("Ssl/CaCertificatesDict")) |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | for caServer in certificateDict: |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
121 | caMerge[caServer] = QSslCertificate.fromData( |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
122 | certificateDict[caServer]) |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | caNew = [] |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | errorStrings = [] |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | if port != -1: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | server += ":{0:d}".format(port) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | if errors: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | for err in errors: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | if err.error() == QSslError.NoError: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | continue |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | if server in caMerge and err.certificate() in caMerge[server]: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | continue |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | errorStrings.append(err.errorString()) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | if not err.certificate().isNull(): |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | cert = err.certificate() |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | if cert not in caNew: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | caNew.append(cert) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | if not errorStrings: |
2360
b6bf3925e3e1
Improved the SSL error handling logic a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2354
diff
changeset
|
140 | return E5SslErrorHandler.SystemIgnored, False |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | errorString = '.</li><li>'.join(errorStrings) |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2990
diff
changeset
|
143 | ret = E5MessageBox.yesNo( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2990
diff
changeset
|
144 | None, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
145 | self.tr("SSL Errors"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
146 | self.tr("""<p>SSL Errors for <br /><b>{0}</b>""" |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
147 | """<ul><li>{1}</li></ul></p>""" |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
148 | """<p>Do you want to ignore these errors?</p>""") |
3035
36e9f388958b
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
149 | .format(server, errorString), |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | icon=E5MessageBox.Warning) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | if ret: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | caRet = False |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | if len(caNew) > 0: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | certinfos = [] |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | for cert in caNew: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | certinfos.append(self.__certToString(cert)) |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2990
diff
changeset
|
158 | caRet = E5MessageBox.yesNo( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2990
diff
changeset
|
159 | None, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
160 | self.tr("Certificates"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
161 | self.tr( |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
162 | """<p>Certificates:<br/>{0}<br/>""" |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
163 | """Do you want to accept all these certificates?""" |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3022
diff
changeset
|
164 | """</p>""") |
3035
36e9f388958b
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
165 | .format("".join(certinfos))) |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | if caRet: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | if server not in caMerge: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | caMerge[server] = [] |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | for cert in caNew: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | caMerge[server].append(cert) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | sslCfg = QSslConfiguration.defaultConfiguration() |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | caList = sslCfg.caCertificates() |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | for cert in caNew: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | caList.append(cert) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | sslCfg.setCaCertificates(caList) |
6607
5237edb40b88
E5SslErrorHandler: some tweaking of the SSL setup code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
177 | try: |
5237edb40b88
E5SslErrorHandler: some tweaking of the SSL setup code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
178 | sslCfg.setProtocol(QSsl.TlsV1_1OrLater) |
5237edb40b88
E5SslErrorHandler: some tweaking of the SSL setup code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
179 | except AttributeError: |
5237edb40b88
E5SslErrorHandler: some tweaking of the SSL setup code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
180 | sslCfg.setProtocol(QSsl.SecureProtocols) |
5237edb40b88
E5SslErrorHandler: some tweaking of the SSL setup code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
181 | try: |
5237edb40b88
E5SslErrorHandler: some tweaking of the SSL setup code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
182 | sslCfg.setSslOption(QSsl.SslOptionDisableCompression, |
5237edb40b88
E5SslErrorHandler: some tweaking of the SSL setup code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
183 | True) |
5237edb40b88
E5SslErrorHandler: some tweaking of the SSL setup code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
184 | except AttributeError: |
5237edb40b88
E5SslErrorHandler: some tweaking of the SSL setup code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
185 | pass |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | QSslConfiguration.setDefaultConfiguration(sslCfg) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | certificateDict = {} |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | for server in caMerge: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | pems = QByteArray() |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | for cert in caMerge[server]: |
4334
423ddcc8c815
Changed code to make eric compatible to PyQt 5.5 (QByteArry issue).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4241
diff
changeset
|
192 | pems.append(cert.toPem() + b'\n') |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | certificateDict[server] = pems |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
194 | Preferences.Prefs.settings.setValue( |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
195 | "Ssl/CaCertificatesDict", |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | certificateDict) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | |
2360
b6bf3925e3e1
Improved the SSL error handling logic a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2354
diff
changeset
|
198 | return E5SslErrorHandler.UserIgnored, caRet |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | else: |
2360
b6bf3925e3e1
Improved the SSL error handling logic a bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2354
diff
changeset
|
201 | return E5SslErrorHandler.NotIgnored, False |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | def __certToString(self, cert): |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | """ |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | Private method to convert a certificate to a formatted string. |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | @param cert certificate to convert (QSslCertificate) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | @return formatted string (string) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | """ |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | result = "<p>" |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | |
5736
000ea446ff4b
Prepared the code for Qt > 5.9.99.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
212 | if qVersionTuple() >= (5, 0, 0): |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
213 | result += self.tr("Name: {0}")\ |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | .format(Utilities.html_encode(Utilities.decodeString( |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | ", ".join(cert.subjectInfo(QSslCertificate.CommonName))))) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
217 | result += self.tr("<br/>Organization: {0}")\ |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | .format(Utilities.html_encode(Utilities.decodeString( |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
219 | ", ".join(cert.subjectInfo( |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
220 | QSslCertificate.Organization))))) |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
222 | result += self.tr("<br/>Issuer: {0}")\ |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | .format(Utilities.html_encode(Utilities.decodeString( |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | ", ".join(cert.issuerInfo(QSslCertificate.CommonName))))) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | else: |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
226 | result += self.tr("Name: {0}")\ |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | .format(Utilities.html_encode(Utilities.decodeString( |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | cert.subjectInfo(QSslCertificate.CommonName)))) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
230 | result += self.tr("<br/>Organization: {0}")\ |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | .format(Utilities.html_encode(Utilities.decodeString( |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | cert.subjectInfo(QSslCertificate.Organization)))) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
234 | result += self.tr("<br/>Issuer: {0}")\ |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | .format(Utilities.html_encode(Utilities.decodeString( |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | cert.issuerInfo(QSslCertificate.CommonName)))) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
238 | result += self.tr( |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
239 | "<br/>Not valid before: {0}<br/>Valid Until: {1}")\ |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
240 | .format(Utilities.html_encode( |
3035
36e9f388958b
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
241 | cert.effectiveDate().toString("yyyy-MM-dd")), |
2990
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
242 | Utilities.html_encode( |
583beaf0b4b8
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2360
diff
changeset
|
243 | cert.expiryDate().toString("yyyy-MM-dd"))) |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | result += "</p>" |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | return result |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | def __getSystemCaCertificates(self): |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | """ |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | Private method to get the list of system certificates. |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | @return list of system certificates (list of QSslCertificate) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | """ |
4241
545629046c45
Fixed a bug in the message filter causing a traceback when no message filters are configured.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4021
diff
changeset
|
255 | caList = QSslCertificate.fromData(Globals.toByteArray( |
2354
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | Preferences.Prefs.settings.value("Ssl/SystemCertificates"))) |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | if not caList: |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | caList = QSslSocket.systemCaCertificates() |
c63de4af553d
Centralized the SSL error handling in E5SslErrorHandler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | return caList |