1 diff --git a/third_party/tlslite/tlslite/utils/compat.py b/third_party/tlslite/tlslite/utils/compat.py
2 index 2bcaede..db95ac1 100755
3 --- a/third_party/tlslite/tlslite/utils/compat.py
4 +++ b/third_party/tlslite/tlslite/utils/compat.py
5 @@ -51,6 +51,9 @@ if sys.version_info >= (3,0):
7 return sys.stdin.buffer.read()
13 # Python 2.6 requires strings instead of bytearrays in a couple places,
14 # so we define this function so it does the conversion if needed.
15 diff --git a/third_party/tlslite/tlslite/utils/cryptomath.py b/third_party/tlslite/tlslite/utils/cryptomath.py
16 index ce56b4b..30354b2 100755
17 --- a/third_party/tlslite/tlslite/utils/cryptomath.py
18 +++ b/third_party/tlslite/tlslite/utils/cryptomath.py
19 @@ -94,7 +94,9 @@ def bytesToNumber(b):
21 total += multiplier * byte
24 + # Force-cast to long to appease PyCrypto.
25 + # https://github.com/trevp/tlslite/issues/15
28 def numberToByteArray(n, howManyBytes=None):
29 """Convert an integer into a bytearray, zero-pad to howManyBytes.
30 diff --git a/third_party/tlslite/tlslite/utils/pycrypto_rsakey.py b/third_party/tlslite/tlslite/utils/pycrypto_rsakey.py
31 index 3d56228..4de5436 100755
32 --- a/third_party/tlslite/tlslite/utils/pycrypto_rsakey.py
33 +++ b/third_party/tlslite/tlslite/utils/pycrypto_rsakey.py
34 @@ -26,13 +26,13 @@ if pycryptoLoaded:
35 return self.rsa.has_private()
37 def _rawPrivateKeyOp(self, m):
38 - s = numberToString(m, numBytes(self.n))
39 - c = stringToNumber(self.rsa.decrypt((s,)))
40 + s = bytes(numberToByteArray(m, numBytes(self.n)))
41 + c = bytesToNumber(bytearray(self.rsa.decrypt((s,))))
44 def _rawPublicKeyOp(self, c):
45 - s = numberToString(c, numBytes(self.n))
46 - m = stringToNumber(self.rsa.encrypt(s, None)[0])
47 + s = bytes(numberToByteArray(c, numBytes(self.n)))
48 + m = bytesToNumber(bytearray(self.rsa.encrypt(s, None)[0]))