aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/contrib
diff options
context:
space:
mode:
authorUjjwal Verma <ujjwalverma1111@gmail.com>2017-05-26 06:38:32 +0530
committerUjjwal Verma <ujjwalverma1111@gmail.com>2017-05-26 06:38:32 +0530
commit9edfe1004b8cf02e12297670cd7db61eb4d0e2fd (patch)
tree5ed8548b2fa984b07f9484aee5341294f4f693ea /mitmproxy/contrib
parent6637630e3ec0cf002f07762ec5592759e12e6b6b (diff)
downloadmitmproxy-9edfe1004b8cf02e12297670cd7db61eb4d0e2fd.tar.gz
mitmproxy-9edfe1004b8cf02e12297670cd7db61eb4d0e2fd.tar.bz2
mitmproxy-9edfe1004b8cf02e12297670cd7db61eb4d0e2fd.zip
Added ksy file and updated make.sh
Diffstat (limited to 'mitmproxy/contrib')
-rwxr-xr-xmitmproxy/contrib/kaitaistruct/make.sh1
-rw-r--r--mitmproxy/contrib/tls_client_hello.ksy139
2 files changed, 140 insertions, 0 deletions
diff --git a/mitmproxy/contrib/kaitaistruct/make.sh b/mitmproxy/contrib/kaitaistruct/make.sh
index 218d5198..9ef68886 100755
--- a/mitmproxy/contrib/kaitaistruct/make.sh
+++ b/mitmproxy/contrib/kaitaistruct/make.sh
@@ -6,5 +6,6 @@ wget -N https://raw.githubusercontent.com/kaitai-io/kaitai_struct_formats/master
wget -N https://raw.githubusercontent.com/kaitai-io/kaitai_struct_formats/master/image/gif.ksy
wget -N https://raw.githubusercontent.com/kaitai-io/kaitai_struct_formats/master/image/jpeg.ksy
wget -N https://raw.githubusercontent.com/kaitai-io/kaitai_struct_formats/master/image/png.ksy
+wget -N https://raw.githubusercontent.com/mitmproxy/mitmproxy/master/mitmproxy/contrib/tls_client_hello.py
kaitai-struct-compiler --target python --opaque-types=true *.ksy
diff --git a/mitmproxy/contrib/tls_client_hello.ksy b/mitmproxy/contrib/tls_client_hello.ksy
new file mode 100644
index 00000000..5b6eb0fb
--- /dev/null
+++ b/mitmproxy/contrib/tls_client_hello.ksy
@@ -0,0 +1,139 @@
+meta:
+ id: tls_client_hello
+ endian: be
+
+seq:
+ - id: version
+ type: version
+
+ - id: random
+ type: random
+
+ - id: session_id
+ type: session_id
+
+ - id: cipher_suites
+ type: cipher_suites
+
+ - id: compression_methods
+ type: compression_methods
+
+ - id: extensions
+ size: 0
+ repeat: expr
+ repeat-expr: 0
+ if: _io.eof == true
+
+ - id: extensions
+ type: extensions
+ if: _io.eof == false
+
+types:
+ version:
+ seq:
+ - id: major
+ type: u1
+
+ - id: minor
+ type: u1
+
+ random:
+ seq:
+ - id: gmt_unix_time
+ type: u4
+
+ - id: random
+ size: 28
+
+ session_id:
+ seq:
+ - id: len
+ type: u1
+
+ - id: sid
+ size: len
+
+ cipher_suites:
+ seq:
+ - id: len
+ type: u2
+
+ - id: cipher_suites
+ type: cipher_suite
+ repeat: expr
+ repeat-expr: len/2
+
+ cipher_suite:
+ seq:
+ - id: cipher_suite
+ type: u2
+
+ compression_methods:
+ seq:
+ - id: len
+ type: u1
+
+ - id: compression_methods
+ size: len
+
+ extensions:
+ seq:
+ - id: len
+ type: u2
+
+ - id: extensions
+ type: extension
+ repeat: eos
+
+ extension:
+ seq:
+ - id: type
+ type: u2
+
+ - id: len
+ type: u2
+
+ - id: body
+ size: len
+ type:
+ switch-on: type
+ cases:
+ 0: sni
+ 16: alpn
+
+ sni:
+ seq:
+ - id: list_length
+ type: u2
+
+ - id: server_names
+ type: server_name
+ repeat: eos
+
+ server_name:
+ seq:
+ - id: name_type
+ type: u1
+
+ - id: length
+ type: u2
+
+ - id: host_name
+ size: length
+
+ alpn:
+ seq:
+ - id: ext_len
+ type: u2
+
+ - id: alpn_protocols
+ type: protocol
+ repeat: eos
+
+ protocol:
+ seq:
+ - id: strlen
+ type: u1
+
+ - id: name
+ size: strlen