| Index: third_party/tlslite/patches/record_client_hello_length.patch
|
| diff --git a/third_party/tlslite/patches/record_client_hello_length.patch b/third_party/tlslite/patches/record_client_hello_length.patch
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e7183a4ba03127912f00b4e9cc4d422e4a0c9e60
|
| --- /dev/null
|
| +++ b/third_party/tlslite/patches/record_client_hello_length.patch
|
| @@ -0,0 +1,38 @@
|
| +diff --git a/third_party/tlslite/tlslite/TLSConnection.py b/third_party/tlslite/tlslite/TLSConnection.py
|
| +index e882e2c..ffe43a1 100644
|
| +--- a/third_party/tlslite/tlslite/TLSConnection.py
|
| ++++ b/third_party/tlslite/tlslite/TLSConnection.py
|
| +@@ -1108,6 +1108,7 @@ class TLSConnection(TLSRecordLayer):
|
| + else:
|
| + break
|
| + clientHello = result
|
| ++ self.client_hello_length = clientHello.client_hello_length
|
| +
|
| + #If client's version is too low, reject it
|
| + if clientHello.client_version < settings.minVersion:
|
| +diff --git a/third_party/tlslite/tlslite/messages.py b/third_party/tlslite/tlslite/messages.py
|
| +index fa4d817..fc23f4c 100644
|
| +--- a/third_party/tlslite/tlslite/messages.py
|
| ++++ b/third_party/tlslite/tlslite/messages.py
|
| +@@ -131,6 +131,9 @@ class ClientHello(HandshakeMsg):
|
| + self.compression_methods = [] # a list of 8-bit values
|
| + self.srp_username = None # a string
|
| + self.channel_id = False
|
| ++ # client_hello_length is the length of the ClientHello record - i.e.
|
| ++ # including the handshake type byte and 3 byte handshake length.
|
| ++ self.client_hello_length = 0
|
| +
|
| + def create(self, version, random, session_id, cipher_suites,
|
| + certificate_types=None, srp_username=None):
|
| +@@ -159,6 +162,11 @@ class ClientHello(HandshakeMsg):
|
| +
|
| + #We're not doing a stopLengthCheck() for SSLv2, oh well..
|
| + else:
|
| ++ self.client_hello_length = len(p.bytes) - p.index
|
| ++ # Account for the handshake type byte which has already been
|
| ++ # removed.
|
| ++ self.client_hello_length += 1
|
| ++
|
| + p.startLengthCheck(3)
|
| + self.client_version = (p.get(1), p.get(1))
|
| + self.random = p.getFixBytes(32)
|
|
|