OLD | NEW |
| 1 # Author: Trevor Perrin |
| 2 # See the LICENSE file for legal information regarding use of this file. |
| 3 |
1 """PyCrypto RC4 implementation.""" | 4 """PyCrypto RC4 implementation.""" |
2 | 5 |
3 from cryptomath import * | 6 from .cryptomath import * |
4 from rc4 import * | 7 from .rc4 import * |
5 | 8 |
6 if pycryptoLoaded: | 9 if pycryptoLoaded: |
7 import Crypto.Cipher.ARC4 | 10 import Crypto.Cipher.ARC4 |
8 | 11 |
9 def new(key): | 12 def new(key): |
10 return PyCrypto_RC4(key) | 13 return PyCrypto_RC4(key) |
11 | 14 |
12 class PyCrypto_RC4(RC4): | 15 class PyCrypto_RC4(RC4): |
13 | 16 |
14 def __init__(self, key): | 17 def __init__(self, key): |
15 RC4.__init__(self, key, "pycrypto") | 18 RC4.__init__(self, key, "pycrypto") |
| 19 key = bytes(key) |
16 self.context = Crypto.Cipher.ARC4.new(key) | 20 self.context = Crypto.Cipher.ARC4.new(key) |
17 | 21 |
18 def encrypt(self, plaintext): | 22 def encrypt(self, plaintext): |
19 return self.context.encrypt(plaintext) | 23 plaintext = bytes(plaintext) |
| 24 return bytearray(self.context.encrypt(plaintext)) |
20 | 25 |
21 def decrypt(self, ciphertext): | 26 def decrypt(self, ciphertext): |
22 return self.context.decrypt(ciphertext) | 27 ciphertext = bytes(ciphertext) |
| 28 return bytearray(self.context.decrypt(ciphertext)) |
OLD | NEW |