Crypto is Cryptodome, the package has a own Namespace
--- a/src/meshcore/meshcore_parser.py
+++ b/src/meshcore/meshcore_parser.py
@@ -3,8 +3,8 @@
 import time
 import io
 from typing import Any, Dict
-from Crypto.Cipher import AES
-from Crypto.Hash import HMAC, SHA256
+from Cryptodome.Cipher import AES
+from Cryptodome.Hash import HMAC, SHA256
 
 logger = logging.getLogger("meshcore")
 
--- a/src/meshcore/reader.py
+++ b/src/meshcore/reader.py
@@ -11,7 +11,7 @@
 from .parsing import lpp_parse, lpp_parse_mma, parse_acl, parse_status
 from cayennelpp import LppFrame, LppData
 from meshcore.lpp_json_encoder import lpp_json_encoder
-from Crypto.Hash import SHA256
+from Cryptodome.Hash import SHA256
 
 logger = logging.getLogger("meshcore")
 
--- a/tests/unit/test_reader.py
+++ b/tests/unit/test_reader.py
@@ -218,8 +218,8 @@
 @pytest.mark.asyncio
 async def test_parse_packet_payload_txt_type_decodes_high_bits():
     """txt_type must decode the high 6 bits of byte 4, not always be 0."""
-    from Crypto.Cipher import AES
-    from Crypto.Hash import HMAC, SHA256
+    from Cryptodome.Cipher import AES
+    from Cryptodome.Hash import HMAC, SHA256
     from meshcore.meshcore_parser import MeshcorePacketParser
 
     parser = MeshcorePacketParser()
@@ -277,4 +277,4 @@
     )
     assert log_data["attempt"] == 1, (
         f"Expected attempt=1, got {log_data['attempt']}"
-    )
\ No newline at end of file
+    )
