summaryrefslogtreecommitdiff
path: root/src/leap/common/certs.py
diff options
context:
space:
mode:
authorRuben Pollan <meskio@sindominio.net>2015-06-03 00:29:13 +0200
committerRuben Pollan <meskio@sindominio.net>2015-06-03 00:29:13 +0200
commita61e70dcd9a65b23e3775bee9221d6a273ada510 (patch)
tree37041b527b6be4acddcad4843ffc654546c2c414 /src/leap/common/certs.py
parent7826a96e526a450380917f9b89e3714576ca50b7 (diff)
parentbf18c2bc6e3f533187281a3b31febd37ef22f8c0 (diff)
Merge branch 'shyba/feat/twisted_http_get' into develop
Diffstat (limited to 'src/leap/common/certs.py')
-rw-r--r--src/leap/common/certs.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/leap/common/certs.py b/src/leap/common/certs.py
index db513f6..c8e0743 100644
--- a/src/leap/common/certs.py
+++ b/src/leap/common/certs.py
@@ -178,3 +178,20 @@ 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()))