We convert the given password to a string to avoid errors with the crypto module.

fix #193
This commit is contained in:
Antoine Nguyen
2011-12-28 11:58:50 +01:00
parent bdad3b675f
commit 880880a374
+5 -4
View File
@@ -8,10 +8,11 @@ import base64
from modoboa.lib import parameters
def encrypt(clear):
obj = AES.new(parameters.get_admin("SECRET_KEY"),
AES.MODE_ECB)
key = parameters.get_admin("SECRET_KEY")
obj = AES.new(key, AES.MODE_ECB)
clear = str(clear)
if len(clear) % AES.block_size:
clear += "\0" * (AES.block_size - len(clear) % AES.block_size)
clear += " " * (AES.block_size - len(clear) % AES.block_size)
ciph = obj.encrypt(clear)
ciph = base64.b64encode(ciph)
return ciph
@@ -20,7 +21,7 @@ def decrypt(ciph):
obj = AES.new(parameters.get_admin("SECRET_KEY"), AES.MODE_ECB)
ciph = base64.b64decode(ciph)
clear = obj.decrypt(ciph)
return clear.rstrip('\0')
return clear.rstrip(' ')
def get_password(request):
return decrypt(request.session["password"])