| Index: third_party/tlslite/tlslite/utils/python_rc4.py
|
| diff --git a/third_party/tlslite/tlslite/utils/python_rc4.py b/third_party/tlslite/tlslite/utils/python_rc4.py
|
| index c513ce78c8ca82bff73b1a40af86f52f4b1d38c6..15d9fd49113e7e5fdf1269385f0c0b8f5d183fa8 100644
|
| --- a/third_party/tlslite/tlslite/utils/python_rc4.py
|
| +++ b/third_party/tlslite/tlslite/utils/python_rc4.py
|
| @@ -1,15 +1,17 @@
|
| +# Author: Trevor Perrin
|
| +# See the LICENSE file for legal information regarding use of this file.
|
| +
|
| """Pure-Python RC4 implementation."""
|
|
|
| -from rc4 import RC4
|
| -from cryptomath import *
|
| +from .rc4 import RC4
|
| +from .cryptomath import *
|
|
|
| def new(key):
|
| return Python_RC4(key)
|
|
|
| class Python_RC4(RC4):
|
| - def __init__(self, key):
|
| - RC4.__init__(self, key, "python")
|
| - keyBytes = stringToBytes(key)
|
| + def __init__(self, keyBytes):
|
| + RC4.__init__(self, keyBytes, "python")
|
| S = [i for i in range(256)]
|
| j = 0
|
| for i in range(256):
|
| @@ -20,20 +22,20 @@ class Python_RC4(RC4):
|
| self.i = 0
|
| self.j = 0
|
|
|
| - def encrypt(self, plaintext):
|
| - plaintextBytes = stringToBytes(plaintext)
|
| + def encrypt(self, plaintextBytes):
|
| + ciphertextBytes = plaintextBytes[:]
|
| S = self.S
|
| i = self.i
|
| j = self.j
|
| - for x in range(len(plaintextBytes)):
|
| + for x in range(len(ciphertextBytes)):
|
| i = (i + 1) % 256
|
| j = (j + S[i]) % 256
|
| S[i], S[j] = S[j], S[i]
|
| t = (S[i] + S[j]) % 256
|
| - plaintextBytes[x] ^= S[t]
|
| + ciphertextBytes[x] ^= S[t]
|
| self.i = i
|
| self.j = j
|
| - return bytesToString(plaintextBytes)
|
| + return ciphertextBytes
|
|
|
| def decrypt(self, ciphertext):
|
| return self.encrypt(ciphertext)
|
|
|