def __init__(self, data, iterations=0, validation="", identifier=None, level=None): self.identifier = identifier self.level = level self._encrypted_key = SaltyString(data) self._decrypted_key = None self._set_iterations(iterations) self._validation = validation
def test_unsalted_data(self): unsalted = SaltyString(b64encode(b"Unsalted data")) self.assertEqual(b"\x00" * 16, unsalted.salt) self.assertEqual(b"Unsalted data", unsalted.data)
def test_salted_data(self): salted = SaltyString(b64encode(b"Salted__SSSSSSSSDDDDDDDD")) self.assertEqual(b"SSSSSSSS", salted.salt) self.assertEqual(b"DDDDDDDD", salted.data)
def decrypt(self, b64_data): encrypted = SaltyString(b64_data) key, iv = self._derive_openssl(self._decrypted_key, encrypted.salt) return self._aes_decrypt(key=key, iv=iv, encrypted_data=encrypted.data)