diff options
author | Patryk Zawadzki <patrys@room-303.com> | 2015-11-12 01:11:05 +0100 |
---|---|---|
committer | Patryk Zawadzki <patrys@room-303.com> | 2015-11-12 01:11:05 +0100 |
commit | 8780a3874032d1effaeb56cf1ee102be3e6f18f4 (patch) | |
tree | 5d67cd59bf2438b9f7d75d87c6c658be0a910fa5 /payments | |
parent | 09b210db6df16c8bee9a031350a704f4c9227860 (diff) | |
parent | d2353729e3bceecc7066f0816234a1cf8b368eae (diff) | |
download | django-payments-taler-8780a3874032d1effaeb56cf1ee102be3e6f18f4.tar.gz django-payments-taler-8780a3874032d1effaeb56cf1ee102be3e6f18f4.tar.bz2 django-payments-taler-8780a3874032d1effaeb56cf1ee102be3e6f18f4.zip |
Merge pull request #93 from bogdal/pycryptodome
Use pycryptodome instead of pycrypto
Diffstat (limited to 'payments')
-rw-r--r-- | payments/sagepay/__init__.py | 4 | ||||
-rw-r--r-- | payments/sagepay/test_sagepay.py | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/payments/sagepay/__init__.py b/payments/sagepay/__init__.py index 9ec8fcb..1767e56 100644 --- a/payments/sagepay/__init__.py +++ b/payments/sagepay/__init__.py @@ -24,7 +24,7 @@ class SagepayProvider(BasicProvider): def __init__(self, vendor, encryption_key, endpoint=_action, **kwargs): self._vendor = vendor - self._enckey = encryption_key + self._enckey = encryption_key.encode('utf-8') self._action = endpoint super(SagepayProvider, self).__init__(**kwargs) if not self._capture: @@ -41,7 +41,7 @@ class SagepayProvider(BasicProvider): def aes_enc(self, data): aes = AES.new(self._enckey, AES.MODE_CBC, self._enckey) data = self._aes_pad(data) - enc = aes.encrypt(data) + enc = aes.encrypt(data.encode('utf-8')) enc = b"@" + binascii.hexlify(enc) return enc diff --git a/payments/sagepay/test_sagepay.py b/payments/sagepay/test_sagepay.py index ed494b4..ba317db 100644 --- a/payments/sagepay/test_sagepay.py +++ b/payments/sagepay/test_sagepay.py @@ -61,3 +61,7 @@ class TestSagepayProvider(TestCase): data = self.provider.get_hidden_fields(self.payment) decrypted_data = self.provider.aes_dec(data['Crypt']) self.assertIn(self.payment.billing_first_name, str(decrypted_data)) + + def test_encrypt_method_returns_valid_data(self): + encrypted = self.provider.aes_enc('mirumee') + self.assertEqual(encrypted, b'@e63c293672f50b9c8e291831facb4e4f') |