summaryrefslogtreecommitdiff
path: root/src/leap/common/certs.py
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2015-11-10 17:34:54 -0500
committerMicah Anderson <micah@riseup.net>2015-11-10 17:34:54 -0500
commit93ac9288e301643a4b9c31e2750a231f4e7bc8d8 (patch)
tree92d7ea2d18f288cd7dfd852ee6af8787c722c87c /src/leap/common/certs.py
parent42814b5bf836a83724d2c74d6bb32bc168b7a81c (diff)
parente074eac10c6e08757857c770cb190cdb9d3a4583 (diff)
Merge branch 'debian/experimental' into debian/platform-0.8
Diffstat (limited to 'src/leap/common/certs.py')
-rw-r--r--src/leap/common/certs.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/leap/common/certs.py b/src/leap/common/certs.py
index db513f6..37ede8e 100644
--- a/src/leap/common/certs.py
+++ b/src/leap/common/certs.py
@@ -178,3 +178,21 @@ def should_redownload(certfile, now=time.gmtime):
return True
return False
+
+
+def get_compatible_ssl_context_factory(cert_path=None):
+ import twisted
+ cert = None
+ if twisted.version.base() > '14.0.1':
+ from twisted.web.client import BrowserLikePolicyForHTTPS
+ from twisted.internet import ssl
+ if cert_path:
+ cert = ssl.Certificate.loadPEM(open(cert_path).read())
+ policy = BrowserLikePolicyForHTTPS(cert)
+ return policy
+ else:
+ raise Exception(("""
+ Twisted 14.0.2 is needed in order to have secure
+ Client Web SSL Contexts, not %s
+ See: http://twistedmatrix.com/trac/ticket/7647
+ """) % (twisted.version.base()))