aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_tcp.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2013-01-20 22:13:38 +1300
committerAldo Cortesi <aldo@nullcube.com>2013-01-20 22:13:38 +1300
commit00d20abdd4863d15fdda826615dab264c8e14d4a (patch)
treeeac1a86a85e0215a49b18c49d62a9eac86130034 /test/test_tcp.py
parent1499529e62e6d2892a6908472398854094af89fb (diff)
downloadmitmproxy-00d20abdd4863d15fdda826615dab264c8e14d4a.tar.gz
mitmproxy-00d20abdd4863d15fdda826615dab264c8e14d4a.tar.bz2
mitmproxy-00d20abdd4863d15fdda826615dab264c8e14d4a.zip
Beef up client certificate handling substantially.
Diffstat (limited to 'test/test_tcp.py')
-rw-r--r--test/test_tcp.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/test_tcp.py b/test/test_tcp.py
index d27a678a..034e43b9 100644
--- a/test/test_tcp.py
+++ b/test/test_tcp.py
@@ -57,6 +57,16 @@ class EchoHandler(tcp.BaseHandler):
self.wfile.flush()
+class CertHandler(tcp.BaseHandler):
+ sni = None
+ def handle_sni(self, connection):
+ self.sni = connection.get_servername()
+
+ def handle(self):
+ self.wfile.write("%s\n"%self.clientcert.serial)
+ self.wfile.flush()
+
+
class DisconnectHandler(tcp.BaseHandler):
def handle(self):
self.close()
@@ -168,6 +178,18 @@ class TestSSLv3Only(ServerTestBase):
tutils.raises(tcp.NetLibError, c.convert_to_ssl, sni="foo.com", method=tcp.TLSv1_METHOD)
+class TestSSLClientCert(ServerTestBase):
+ @classmethod
+ def makeserver(cls):
+ return TServer(("127.0.0.1", 0), True, cls.q, CertHandler)
+
+ def test_clientcert(self):
+ c = tcp.TCPClient("127.0.0.1", self.port)
+ c.connect()
+ c.convert_to_ssl(clientcert=tutils.test_data.path("data/clientcert/client.pem"))
+ assert c.rfile.readline().strip() == "1"
+
+
class TestSNI(ServerTestBase):
@classmethod
def makeserver(cls):