diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2015-06-16 10:34:09 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2015-06-16 10:34:09 +1200 |
commit | bb206323ab4248199240e67e7b22510c34770dfe (patch) | |
tree | 80af2b8b9312f60b3612e89174e47f2692b07399 /test/test_tcp.py | |
parent | 08f988e9f65d8628657cf2018fd36ab82a4d0789 (diff) | |
parent | fe764cde5229046b8447062971c61fac745d2d58 (diff) | |
download | mitmproxy-bb206323ab4248199240e67e7b22510c34770dfe.tar.gz mitmproxy-bb206323ab4248199240e67e7b22510c34770dfe.tar.bz2 mitmproxy-bb206323ab4248199240e67e7b22510c34770dfe.zip |
Merge pull request #69 from kyle-m/master
Adding support for upstream certificate validation when using SSL/TLS…
Diffstat (limited to 'test/test_tcp.py')
-rw-r--r-- | test/test_tcp.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/test/test_tcp.py b/test/test_tcp.py index 8aa34d2b..0cecaaa2 100644 --- a/test/test_tcp.py +++ b/test/test_tcp.py @@ -171,6 +171,59 @@ class TestSSLv3Only(test.ServerTestBase): tutils.raises(tcp.NetLibError, c.convert_to_ssl, sni="foo.com") +class TestSSLUpstreamCertVerification(test.ServerTestBase): + handler = EchoHandler + + ssl = dict( + cert=tutils.test_data.path("data/server.crt") + ) + + def test_mode_default(self): + c = tcp.TCPClient(("127.0.0.1", self.port)) + c.connect() + + c.convert_to_ssl() + + testval = "echo!\n" + c.wfile.write(testval) + c.wfile.flush() + assert c.rfile.readline() == testval + + def test_mode_none(self): + c = tcp.TCPClient(("127.0.0.1", self.port)) + c.connect() + + c.convert_to_ssl(verify_options=SSL.VERIFY_NONE) + + testval = "echo!\n" + c.wfile.write(testval) + c.wfile.flush() + assert c.rfile.readline() == testval + + def test_mode_strict_w_bad_cert(self): + c = tcp.TCPClient(("127.0.0.1", self.port)) + c.connect() + + tutils.raises( + tcp.NetLibError, + c.convert_to_ssl, + verify_options=SSL.VERIFY_PEER | SSL.VERIFY_FAIL_IF_NO_PEER_CERT, + ca_pemfile=tutils.test_data.path("data/not-server.crt")) + + def test_mode_strict_w_cert(self): + c = tcp.TCPClient(("127.0.0.1", self.port)) + c.connect() + + c.convert_to_ssl( + verify_options=SSL.VERIFY_PEER | SSL.VERIFY_FAIL_IF_NO_PEER_CERT, + ca_pemfile=tutils.test_data.path("data/server.crt")) + + testval = "echo!\n" + c.wfile.write(testval) + c.wfile.flush() + assert c.rfile.readline() == testval + + class TestSSLClientCert(test.ServerTestBase): class handler(tcp.BaseHandler): |