summaryrefslogtreecommitdiffstats
path: root/module/lib/beaker/crypto/pycrypto.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/lib/beaker/crypto/pycrypto.py')
-rw-r--r--module/lib/beaker/crypto/pycrypto.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/module/lib/beaker/crypto/pycrypto.py b/module/lib/beaker/crypto/pycrypto.py
index a3eb4d9db..6657bff56 100644
--- a/module/lib/beaker/crypto/pycrypto.py
+++ b/module/lib/beaker/crypto/pycrypto.py
@@ -9,23 +9,26 @@ try:
def aesEncrypt(data, key):
cipher = aes.AES(key)
return cipher.process(data)
-
+
# magic.
aesDecrypt = aesEncrypt
-
+
except ImportError:
from Crypto.Cipher import AES
+ from Crypto.Util import Counter
def aesEncrypt(data, key):
- cipher = AES.new(key)
-
- data = data + (" " * (16 - (len(data) % 16)))
+ cipher = AES.new(key, AES.MODE_CTR,
+ counter=Counter.new(128, initial_value=0))
+
return cipher.encrypt(data)
def aesDecrypt(data, key):
- cipher = AES.new(key)
+ cipher = AES.new(key, AES.MODE_CTR,
+ counter=Counter.new(128, initial_value=0))
+ return cipher.decrypt(data)
+
- return cipher.decrypt(data).rstrip()
def getKeyLength():
return 32