Utilities/crypto/__init__.py

changeset 1682
0eefcc28fa74
parent 1680
28e57079dab5
child 2227
b7aceb255831
--- a/Utilities/crypto/__init__.py	Sun Feb 26 19:43:27 2012 +0100
+++ b/Utilities/crypto/__init__.py	Mon Feb 27 19:33:51 2012 +0100
@@ -243,17 +243,21 @@
         MasterPassword = pwEncode(newPassword)
 
 
-def dataEncrypt(data, password):
+def dataEncrypt(data, password, keyLength=32, hashIterations=10000):
     """
     Module function to encrypt a password.
     
     @param data data to encrypt (bytes)
     @param password password to be used for encryption (string)
+    @keyparam keyLength length of the key to be generated for encryption (16, 24 or 32)
+    @keyparam hashIterations number of hashes to be applied to the password for
+        generating the encryption key (integer)
     @return encrypted data (bytes) and flag indicating
         success (boolean)
     """
-    digestname, iterations, salt, hash = hashPasswordTuple(password)
-    key = hash[:32]
+    digestname, iterations, salt, hash = \
+        hashPasswordTuple(password, iterations=hashIterations)
+    key = hash[:keyLength]
     try:
         cipher = encryptData(key, data)
     except ValueError:
@@ -266,12 +270,13 @@
     ]), True
 
 
-def dataDecrypt(edata, password):
+def dataDecrypt(edata, password, keyLength=32):
     """
     Module function to decrypt a password.
     
     @param edata hashed data to decrypt (string)
     @param password password to be used for decryption (string)
+    @keyparam keyLength length of the key to be generated for decryption (16, 24 or 32)
     @return decrypted data (bytes) and flag indicating
         success (boolean)
     """
@@ -282,7 +287,7 @@
     hashParameters = hashParametersBytes.decode()
     try:
         # recreate the key used to encrypt
-        key = rehashPassword(password, hashParameters)[:32]
+        key = rehashPassword(password, hashParameters)[:keyLength]
         plaintext = decryptData(key, base64.b64decode(edata))
     except ValueError:
         return "", False

eric ide

mercurial