예제 #1
0
 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
예제 #2
0
 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)
예제 #3
0
 def test_salted_data(self):
     salted = SaltyString(b64encode(b"Salted__SSSSSSSSDDDDDDDD"))
     self.assertEqual(b"SSSSSSSS", salted.salt)
     self.assertEqual(b"DDDDDDDD", salted.data)
예제 #4
0
 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)