in src/nova_act/impl/message_encrypter.py [0:0]
def decrypt(self, encrypted_message: dict) -> dict | None:
"""Decrypt a message using the key"""
if encrypted_message.get("type") != ENCRYPTED_MESSAGE_TYPE:
raise ValueError("Message is not of type encrypted")
# Convert IV and encrypted data from lists to bytes
iv = bytes(encrypted_message["iv"])
encrypted_bytes = bytes(encrypted_message["encrypted"])
decrypted_bytes = self._aesgcm.decrypt(iv, encrypted_bytes, None)
decrypted_json = decrypted_bytes.decode("utf-8") # Convert bytes to string
_LOGGER.debug("Decrypted string %s", decrypted_json)
return json.loads(decrypted_json) # Convert JSON string back to Python object (dict)