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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
Index: src/common/connection.py
===================================================================
--- src/common/connection.py (revision 14377)
+++ src/common/connection.py (revision 14379)
@@ -1312,19 +1312,22 @@
errnum = con.Connection.ssl_errnum
except AttributeError:
- errnum = -1 # we don't have an errnum
- if errnum > 0 and str(errnum) not in gajim.config.get_per('accounts',
- self.name, 'ignore_ssl_errors').split():
- text = _('The authenticity of the %s certificate could be invalid.'
- ) % hostname
- if errnum in ssl_error:
- text += _('\nSSL Error: <b>%s</b>') % ssl_error[errnum]
- else:
- text += _('\nUnknown SSL error: %d') % errnum
- gajim.nec.push_incoming_event(SSLErrorEvent(None, conn=self,
- error_text=text, error_num=errnum,
- cert=con.Connection.ssl_cert_pem,
- fingerprint=con.Connection.ssl_fingerprint_sha1,
- certificate=con.Connection.ssl_certificate))
- return True
+ errnum = [] # we don't have an errnum
+ i = 0
+ for er in errnum:
+ if er > 0 and str(er) not in gajim.config.get_per('accounts',
+ self.name, 'ignore_ssl_errors').split():
+ text = _('The authenticity of the %s certificate could be '
+ 'invalid.') % hostname
+ if er in ssl_error:
+ text += _('\nSSL Error: <b>%s</b>') % ssl_error[er]
+ else:
+ text += _('\nUnknown SSL error: %d') % er
+ gajim.nec.push_incoming_event(SSLErrorEvent(None, conn=self,
+ error_text=text, error_num=er,
+ cert=con.Connection.ssl_cert_pem[i],
+ fingerprint=con.Connection.ssl_fingerprint_sha1[i],
+ certificate=con.Connection.ssl_certificate[i]))
+ return True
+ i += 1
if hasattr(con.Connection, 'ssl_fingerprint_sha1'):
saved_fingerprint = gajim.config.get_per('accounts', self.name,
@@ -1332,12 +1335,15 @@
if saved_fingerprint:
# Check sha1 fingerprint
- if con.Connection.ssl_fingerprint_sha1 != saved_fingerprint:
+ if con.Connection.ssl_fingerprint_sha1[-1] != saved_fingerprint:
gajim.nec.push_incoming_event(FingerprintErrorEvent(None,
- conn=self, certificate=con.Connection.ssl_certificate,
- new_fingerprint=con.Connection.ssl_fingerprint_sha1))
+ conn=self,
+ certificate=con.Connection.ssl_certificate,
+ new_fingerprint=con.Connection.ssl_fingerprint_sha1[
+ -1]))
return True
else:
gajim.config.set_per('accounts', self.name,
- 'ssl_fingerprint_sha1', con.Connection.ssl_fingerprint_sha1)
+ 'ssl_fingerprint_sha1',
+ con.Connection.ssl_fingerprint_sha1[-1])
if not check_X509.check_certificate(con.Connection.ssl_certificate,
hostname) and '100' not in gajim.config.get_per('accounts',
@@ -1348,6 +1354,6 @@
gajim.nec.push_incoming_event(SSLErrorEvent(None, conn=self,
error_text=txt, error_num=100,
- cert=con.Connection.ssl_cert_pem,
- fingerprint=con.Connection.ssl_fingerprint_sha1,
+ cert=con.Connection.ssl_cert_pem[-1],
+ fingerprint=con.Connection.ssl_fingerprint_sha1[-1],
certificate=con.Connection.ssl_certificate))
return True
|