summaryrefslogtreecommitdiff
path: root/payments
diff options
context:
space:
mode:
authorPatryk Zawadzki <patrys@room-303.com>2015-11-12 01:11:05 +0100
committerPatryk Zawadzki <patrys@room-303.com>2015-11-12 01:11:05 +0100
commit8780a3874032d1effaeb56cf1ee102be3e6f18f4 (patch)
tree5d67cd59bf2438b9f7d75d87c6c658be0a910fa5 /payments
parent09b210db6df16c8bee9a031350a704f4c9227860 (diff)
parentd2353729e3bceecc7066f0816234a1cf8b368eae (diff)
downloaddjango-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__.py4
-rw-r--r--payments/sagepay/test_sagepay.py4
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')