From 998362a5e67f95462f8a9678b4a846cbb609f8f5 Mon Sep 17 00:00:00 2001 From: Patrick762 Date: Tue, 17 Jun 2025 21:13:07 +0200 Subject: [PATCH] reset keys after each connection --- .../bluetti_bt/bluetti_bt_lib/bluetooth/device_reader.py | 3 +++ .../bluetti_bt/bluetti_bt_lib/bluetooth/encryption.py | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/custom_components/bluetti_bt/bluetti_bt_lib/bluetooth/device_reader.py b/custom_components/bluetti_bt/bluetti_bt_lib/bluetooth/device_reader.py index 952b64f..8cc99d6 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/bluetooth/device_reader.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/bluetooth/device_reader.py @@ -175,6 +175,9 @@ class DeviceReader: if not parsed_data: return None + # Reset Encryption keys + self.encryption.reset() + return parsed_data async def _async_send_command(self, command: ReadHoldingRegisters) -> bytes: diff --git a/custom_components/bluetti_bt/bluetti_bt_lib/bluetooth/encryption.py b/custom_components/bluetti_bt/bluetti_bt_lib/bluetooth/encryption.py index 573e680..6feb697 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/bluetooth/encryption.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/bluetooth/encryption.py @@ -283,3 +283,7 @@ class BluettiEncryption: if self.secure_aes_key is None else (self.secure_aes_key, None) ) + + def reset(self): + self.peer_pubkey = None + self.secure_aes_key = None