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