| Index: third_party/tlslite/tlslite/messages.py
|
| diff --git a/third_party/tlslite/tlslite/messages.py b/third_party/tlslite/tlslite/messages.py
|
| index 532d86bb13c9977834ec1f48e7dd33306339aa3e..550b387f947119e928fbcb120306db1e6f078029 100644
|
| --- a/third_party/tlslite/tlslite/messages.py
|
| +++ b/third_party/tlslite/tlslite/messages.py
|
| @@ -533,31 +533,31 @@ class ServerKeyExchange(HandshakeMsg):
|
| p.stopLengthCheck()
|
| return self
|
|
|
| - def write(self):
|
| + def write_params(self):
|
| w = Writer()
|
| if self.cipherSuite in CipherSuite.srpAllSuites:
|
| w.addVarSeq(numberToByteArray(self.srp_N), 1, 2)
|
| w.addVarSeq(numberToByteArray(self.srp_g), 1, 2)
|
| w.addVarSeq(self.srp_s, 1, 1)
|
| w.addVarSeq(numberToByteArray(self.srp_B), 1, 2)
|
| - if self.cipherSuite in CipherSuite.srpCertSuites:
|
| - w.addVarSeq(self.signature, 1, 2)
|
| - elif self.cipherSuite in CipherSuite.anonSuites:
|
| + elif self.cipherSuite in CipherSuite.dhAllSuites:
|
| w.addVarSeq(numberToByteArray(self.dh_p), 1, 2)
|
| w.addVarSeq(numberToByteArray(self.dh_g), 1, 2)
|
| w.addVarSeq(numberToByteArray(self.dh_Ys), 1, 2)
|
| - if self.cipherSuite in []: # TODO support for signed_params
|
| - w.addVarSeq(self.signature, 1, 2)
|
| + else:
|
| + assert(False)
|
| + return w.bytes
|
| +
|
| + def write(self):
|
| + w = Writer()
|
| + w.bytes += self.write_params()
|
| + if self.cipherSuite in CipherSuite.certAllSuites:
|
| + w.addVarSeq(self.signature, 1, 2)
|
| return self.postWrite(w)
|
|
|
| def hash(self, clientRandom, serverRandom):
|
| - oldCipherSuite = self.cipherSuite
|
| - self.cipherSuite = None
|
| - try:
|
| - bytes = clientRandom + serverRandom + self.write()[4:]
|
| - return MD5(bytes) + SHA1(bytes)
|
| - finally:
|
| - self.cipherSuite = oldCipherSuite
|
| + bytes = clientRandom + serverRandom + self.write_params()
|
| + return MD5(bytes) + SHA1(bytes)
|
|
|
| class ServerHelloDone(HandshakeMsg):
|
| def __init__(self):
|
| @@ -607,7 +607,7 @@ class ClientKeyExchange(HandshakeMsg):
|
| p.getFixBytes(len(p.bytes)-p.index)
|
| else:
|
| raise AssertionError()
|
| - elif self.cipherSuite in CipherSuite.anonSuites:
|
| + elif self.cipherSuite in CipherSuite.dhAllSuites:
|
| self.dh_Yc = bytesToNumber(p.getVarBytes(2))
|
| else:
|
| raise AssertionError()
|
|
|