Utilities/crypto/__init__.py

changeset 4331
711e7c35a49b
parent 4021
195a471c327b
child 4566
a2e8f3c420ec
equal deleted inserted replaced
4327:ff666d8230f7 4331:711e7c35a49b
278 key = hash[:keyLength] 278 key = hash[:keyLength]
279 try: 279 try:
280 cipher = encryptData(key, data) 280 cipher = encryptData(key, data)
281 except ValueError: 281 except ValueError:
282 return b"", False 282 return b"", False
283 return CryptoMarker.encode() + Delimiter.encode().join([ 283 return CryptoMarker.encode("utf-8") + Delimiter.encode("utf-8").join([
284 digestname.encode(), 284 digestname.encode("utf-8"),
285 str(iterations).encode(), 285 str(iterations).encode("utf-8"),
286 base64.b64encode(salt), 286 base64.b64encode(salt),
287 base64.b64encode(cipher) 287 base64.b64encode(cipher)
288 ]), True 288 ]), True
289 289
290 290
297 @keyparam keyLength length of the key to be generated for decryption 297 @keyparam keyLength length of the key to be generated for decryption
298 (16, 24 or 32) 298 (16, 24 or 32)
299 @return decrypted data (bytes) and flag indicating 299 @return decrypted data (bytes) and flag indicating
300 success (boolean) 300 success (boolean)
301 """ 301 """
302 if not edata.startswith(CryptoMarker.encode()): 302 if not edata.startswith(CryptoMarker.encode("utf-8")):
303 return edata, False # it was not encoded using dataEncrypt 303 return edata, False # it was not encoded using dataEncrypt
304 304
305 from .py3AES import decryptData 305 from .py3AES import decryptData
306 from .py3PBKDF2 import rehashPassword 306 from .py3PBKDF2 import rehashPassword
307 307
308 hashParametersBytes, edata = edata[3:].rsplit(Delimiter.encode(), 1) 308 hashParametersBytes, edata = edata[3:].rsplit(Delimiter.encode("utf-8"), 1)
309 hashParameters = hashParametersBytes.decode() 309 hashParameters = hashParametersBytes.decode()
310 try: 310 try:
311 # recreate the key used to encrypt 311 # recreate the key used to encrypt
312 key = rehashPassword(password, hashParameters)[:keyLength] 312 key = rehashPassword(password, hashParameters)[:keyLength]
313 plaintext = decryptData(key, base64.b64decode(edata)) 313 plaintext = decryptData(key, base64.b64decode(edata))

eric ide

mercurial