Chromium Code Reviews| Index: third_party/tlslite/tlslite/tlsrecordlayer.py |
| diff --git a/third_party/tlslite/tlslite/tlsrecordlayer.py b/third_party/tlslite/tlslite/tlsrecordlayer.py |
| index c3bcd8c40ca64a12e426bc1f23ff3eff3d0305b4..d2320b8cd13f34864061202b0507b83e14dd363d 100644 |
| --- a/third_party/tlslite/tlslite/tlsrecordlayer.py |
| +++ b/third_party/tlslite/tlslite/tlsrecordlayer.py |
| @@ -119,6 +119,7 @@ class TLSRecordLayer(object): |
| self._handshake_md5 = hashlib.md5() |
| self._handshake_sha = hashlib.sha1() |
| self._handshake_sha256 = hashlib.sha256() |
| + self._ems_handshake_hash = b"" |
| #TLS Protocol Version |
| self.version = (0,0) #read-only |
| @@ -814,6 +815,8 @@ class TLSRecordLayer(object): |
| self._handshake_md5.update(compat26Str(p.bytes)) |
| self._handshake_sha.update(compat26Str(p.bytes)) |
| self._handshake_sha256.update(compat26Str(p.bytes)) |
| + if subType == HandshakeType.client_key_exchange: |
| + self._ems_handshake_hash = self._getHandshakeHash() |
|
davidben
2015/08/20 15:31:46
Oh. That was the problem. Right. The dumb thing wh
|
| #Parse based on handshake type |
| if subType == HandshakeType.client_hello: |
| @@ -1112,6 +1115,7 @@ class TLSRecordLayer(object): |
| self._handshake_md5 = hashlib.md5() |
| self._handshake_sha = hashlib.sha1() |
| self._handshake_sha256 = hashlib.sha256() |
| + self._ems_handshake_hash = b"" |
| self._handshakeBuffer = [] |
| self.allegedSrpUsername = None |
| self._refCount = 1 |
| @@ -1256,3 +1260,9 @@ class TLSRecordLayer(object): |
| return md5Bytes + shaBytes |
| + def _getHandshakeHash(self): |
| + if self.version in ((3,1), (3,2)): |
| + return self._handshake_md5.digest() + \ |
| + self._handshake_sha.digest() |
| + elif self.version == (3,3): |
| + return self._handshake_sha256.digest() |