summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--payments/sagepay/__init__.py4
-rw-r--r--payments/sagepay/test_sagepay.py4
-rwxr-xr-xsetup.py2
3 files changed, 7 insertions, 3 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')
diff --git a/setup.py b/setup.py
index c7ced0c..9ed8fae 100755
--- a/setup.py
+++ b/setup.py
@@ -22,7 +22,7 @@ PACKAGES = [
REQUIREMENTS = [
'braintree>=3.14.0',
'Django>=1.5',
- 'pycrypto>=2.6',
+ 'pycryptodome>=3.3.1',
'PyJWT>=1.3.0',
'requests>=1.2.0',
'stripe>=1.9.8',