OLD | NEW |
| 1 # Author: Trevor Perrin |
| 2 # See the LICENSE file for legal information regarding use of this file. |
| 3 |
1 """PyCrypto 3DES implementation.""" | 4 """PyCrypto 3DES implementation.""" |
2 | 5 |
3 from cryptomath import * | 6 from .cryptomath import * |
4 from TripleDES import * | 7 from .tripledes import * |
5 | 8 |
6 if pycryptoLoaded: | 9 if pycryptoLoaded: |
7 import Crypto.Cipher.DES3 | 10 import Crypto.Cipher.DES3 |
8 | 11 |
9 def new(key, mode, IV): | 12 def new(key, mode, IV): |
10 return PyCrypto_TripleDES(key, mode, IV) | 13 return PyCrypto_TripleDES(key, mode, IV) |
11 | 14 |
12 class PyCrypto_TripleDES(TripleDES): | 15 class PyCrypto_TripleDES(TripleDES): |
13 | 16 |
14 def __init__(self, key, mode, IV): | 17 def __init__(self, key, mode, IV): |
15 TripleDES.__init__(self, key, mode, IV, "pycrypto") | 18 TripleDES.__init__(self, key, mode, IV, "pycrypto") |
| 19 key = bytes(key) |
| 20 IV = bytes(IV) |
16 self.context = Crypto.Cipher.DES3.new(key, mode, IV) | 21 self.context = Crypto.Cipher.DES3.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 |