equal
deleted
inserted
replaced
12 from mercurial.i18n import _ |
12 from mercurial.i18n import _ |
13 try: |
13 try: |
14 # avoid using deprecated/broken FakeSocket in python 2.6 |
14 # avoid using deprecated/broken FakeSocket in python 2.6 |
15 import ssl |
15 import ssl |
16 CERT_REQUIRED = ssl.CERT_REQUIRED |
16 CERT_REQUIRED = ssl.CERT_REQUIRED |
17 PROTOCOL_SSLv23 = ssl.PROTOCOL_SSLv23 |
|
18 PROTOCOL_TLSv1 = ssl.PROTOCOL_TLSv1 |
17 PROTOCOL_TLSv1 = ssl.PROTOCOL_TLSv1 |
19 def ssl_wrap_socket(sock, keyfile, certfile, ssl_version=PROTOCOL_TLSv1, |
18 def ssl_wrap_socket(sock, keyfile, certfile, ssl_version=PROTOCOL_TLSv1, |
20 cert_reqs=ssl.CERT_NONE, ca_certs=None): |
19 cert_reqs=ssl.CERT_NONE, ca_certs=None): |
21 sslsocket = ssl.wrap_socket(sock, keyfile, certfile, |
20 sslsocket = ssl.wrap_socket(sock, keyfile, certfile, |
22 cert_reqs=cert_reqs, ca_certs=ca_certs, |
21 cert_reqs=cert_reqs, ca_certs=ca_certs, |
27 raise util.Abort(_('ssl connection failed')) |
26 raise util.Abort(_('ssl connection failed')) |
28 return sslsocket |
27 return sslsocket |
29 except ImportError: |
28 except ImportError: |
30 CERT_REQUIRED = 2 |
29 CERT_REQUIRED = 2 |
31 |
30 |
32 PROTOCOL_SSLv23 = 2 |
|
33 PROTOCOL_TLSv1 = 3 |
31 PROTOCOL_TLSv1 = 3 |
34 |
32 |
35 import socket, httplib |
33 import socket, httplib |
36 |
34 |
37 def ssl_wrap_socket(sock, keyfile, certfile, ssl_version=PROTOCOL_TLSv1, |
35 def ssl_wrap_socket(sock, keyfile, certfile, ssl_version=PROTOCOL_TLSv1, |
101 exe = (sys.executable or '').lower() |
99 exe = (sys.executable or '').lower() |
102 return (exe.startswith('/usr/bin/python') or |
100 return (exe.startswith('/usr/bin/python') or |
103 exe.startswith('/system/library/frameworks/python.framework/')) |
101 exe.startswith('/system/library/frameworks/python.framework/')) |
104 |
102 |
105 def sslkwargs(ui, host): |
103 def sslkwargs(ui, host): |
106 forcetls = ui.configbool('ui', 'tls', default=True) |
104 kws = {'ssl_version': PROTOCOL_TLSv1, |
107 if forcetls: |
|
108 ssl_version = PROTOCOL_TLSv1 |
|
109 else: |
|
110 ssl_version = PROTOCOL_SSLv23 |
|
111 kws = {'ssl_version': ssl_version, |
|
112 } |
105 } |
113 hostfingerprint = ui.config('hostfingerprints', host) |
106 hostfingerprint = ui.config('hostfingerprints', host) |
114 if hostfingerprint: |
107 if hostfingerprint: |
115 return kws |
108 return kws |
116 cacerts = ui.config('web', 'cacerts') |
109 cacerts = ui.config('web', 'cacerts') |