aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchhsiao90 <chhsiao90@gmail.com>2016-10-26 14:36:14 +0800
committerchhsiao90 <chhsiao90@gmail.com>2016-10-26 14:36:14 +0800
commitd52f35428c835d30b2f2be72d9258a8d908e5072 (patch)
treedffba181c36ef4eba9a8de4a20a9c5b636b963bb
parent960f2e8bf0432ade836f73864e4ed33295194420 (diff)
downloadmitmproxy-d52f35428c835d30b2f2be72d9258a8d908e5072.tar.gz
mitmproxy-d52f35428c835d30b2f2be72d9258a8d908e5072.tar.bz2
mitmproxy-d52f35428c835d30b2f2be72d9258a8d908e5072.zip
Show tls version on console
-rw-r--r--mitmproxy/connections.py5
-rw-r--r--mitmproxy/io_compat.py1
-rw-r--r--mitmproxy/tools/console/flowdetailview.py2
-rw-r--r--test/mitmproxy/tutils.py1
4 files changed, 9 insertions, 0 deletions
diff --git a/mitmproxy/connections.py b/mitmproxy/connections.py
index 89c6b501..b565be78 100644
--- a/mitmproxy/connections.py
+++ b/mitmproxy/connections.py
@@ -22,6 +22,7 @@ class ClientConnection(tcp.BaseHandler, stateobject.StateObject):
timestamp_end: Connection end timestamp
sni: Server Name Indication sent by client during the TLS handshake
cipher_name: The current used cipher
+ tls_version: TLS version
"""
def __init__(self, client_connection, address, server):
@@ -44,6 +45,7 @@ class ClientConnection(tcp.BaseHandler, stateobject.StateObject):
self.protocol = None
self.sni = None
self.cipher_name = None
+ self.tls_version = None
def __bool__(self):
return bool(self.connection) and not self.finished
@@ -67,6 +69,7 @@ class ClientConnection(tcp.BaseHandler, stateobject.StateObject):
timestamp_end=float,
sni=str,
cipher_name=str,
+ tls_version=str,
)
def copy(self):
@@ -95,6 +98,7 @@ class ClientConnection(tcp.BaseHandler, stateobject.StateObject):
timestamp_ssl_setup=None,
sni=None,
cipher_name=None,
+ tls_version=None,
))
def convert_to_ssl(self, *args, **kwargs):
@@ -102,6 +106,7 @@ class ClientConnection(tcp.BaseHandler, stateobject.StateObject):
self.timestamp_ssl_setup = time.time()
self.sni = self.connection.get_servername()
self.cipher_name = self.connection.get_cipher_name()
+ self.tls_version = self.connection.get_protocol_version_name()
def finish(self):
super().finish()
diff --git a/mitmproxy/io_compat.py b/mitmproxy/io_compat.py
index d8ef75e1..e1ca27b2 100644
--- a/mitmproxy/io_compat.py
+++ b/mitmproxy/io_compat.py
@@ -68,6 +68,7 @@ def convert_018_019(data):
data["version"] = (0, 19)
data["client_conn"]["sni"] = None
data["client_conn"]["cipher_name"] = None
+ data["client_conn"]["tls_version"] = None
return data
diff --git a/mitmproxy/tools/console/flowdetailview.py b/mitmproxy/tools/console/flowdetailview.py
index d0aad11e..6e6ca1eb 100644
--- a/mitmproxy/tools/console/flowdetailview.py
+++ b/mitmproxy/tools/console/flowdetailview.py
@@ -82,6 +82,8 @@ def flowdetails(state, flow):
parts = [
["Address", repr(cc.address)],
]
+ if cc.tls_version:
+ parts.append(["TLS Version", cc.tls_version])
if cc.sni:
parts.append(["Server Name Indication", cc.sni])
if cc.cipher_name:
diff --git a/test/mitmproxy/tutils.py b/test/mitmproxy/tutils.py
index 525a0698..5f1dda53 100644
--- a/test/mitmproxy/tutils.py
+++ b/test/mitmproxy/tutils.py
@@ -134,6 +134,7 @@ def tclient_conn():
timestamp_end=3,
sni="address",
cipher_name="cipher",
+ tls_version="TLSv1.2",
))
c.reply = controller.DummyReply()
return c