aboutsummaryrefslogtreecommitdiffstats
path: root/netlib/test.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2015-06-06 11:54:35 +1200
committerAldo Cortesi <aldo@nullcube.com>2015-06-06 11:54:35 +1200
commitfcaabeb4556d299e8489d26f9eedc6db8fe1b86f (patch)
tree2bad0c7cdf1efd62d2c0f5a773085eae686acbbf /netlib/test.py
parent0269d0fb8b8726f8a84ebe916a553ef435a3a50d (diff)
parente39d8aed6d77b6cf5d57c795c69e735a7c1430fa (diff)
downloadmitmproxy-fcaabeb4556d299e8489d26f9eedc6db8fe1b86f.tar.gz
mitmproxy-fcaabeb4556d299e8489d26f9eedc6db8fe1b86f.tar.bz2
mitmproxy-fcaabeb4556d299e8489d26f9eedc6db8fe1b86f.zip
Merge pull request #65 from Kriechi/h2-client
HTTP/2 protocol definition
Diffstat (limited to 'netlib/test.py')
-rw-r--r--netlib/test.py30
1 files changed, 21 insertions, 9 deletions
diff --git a/netlib/test.py b/netlib/test.py
index 14f50157..1e1b5e9d 100644
--- a/netlib/test.py
+++ b/netlib/test.py
@@ -4,6 +4,7 @@ import Queue
import cStringIO
import OpenSSL
from . import tcp, certutils
+from test import tutils
class ServerThread(threading.Thread):
@@ -55,22 +56,33 @@ class TServer(tcp.TCPServer):
dhparams, v3_only
"""
tcp.TCPServer.__init__(self, addr)
- self.ssl, self.q = ssl, q
+
+ if ssl is True:
+ self.ssl = dict()
+ elif isinstance(ssl, dict):
+ self.ssl = ssl
+ else:
+ self.ssl = None
+
+ self.q = q
self.handler_klass = handler_klass
self.last_handler = None
def handle_client_connection(self, request, client_address):
h = self.handler_klass(request, client_address, self)
self.last_handler = h
- if self.ssl:
- cert = certutils.SSLCert.from_pem(
- file(self.ssl["cert"], "rb").read()
- )
- raw = file(self.ssl["key"], "rb").read()
+ if self.ssl is not None:
+ raw_cert = self.ssl.get(
+ "cert",
+ tutils.test_data.path("data/server.crt"))
+ cert = certutils.SSLCert.from_pem(open(raw_cert, "rb").read())
+ raw_key = self.ssl.get(
+ "key",
+ tutils.test_data.path("data/server.key"))
key = OpenSSL.crypto.load_privatekey(
OpenSSL.crypto.FILETYPE_PEM,
- raw)
- if self.ssl["v3_only"]:
+ open(raw_key, "rb").read())
+ if self.ssl.get("v3_only", False):
method = tcp.SSLv3_METHOD
options = OpenSSL.SSL.OP_NO_SSLv2 | OpenSSL.SSL.OP_NO_TLSv1
else:
@@ -81,7 +93,7 @@ class TServer(tcp.TCPServer):
method=method,
options=options,
handle_sni=getattr(h, "handle_sni", None),
- request_client_cert=self.ssl["request_client_cert"],
+ request_client_cert=self.ssl.get("request_client_cert", None),
cipher_list=self.ssl.get("cipher_list", None),
dhparams=self.ssl.get("dhparams", None),
chain_file=self.ssl.get("chain_file", None),