From 94ff09b946be3c170103b841633e6ec48b4c0297 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= Date: Thu, 3 Aug 2023 09:19:38 +0100 Subject: Don't depend on product ID to enable encrypted protocol. This is a little less automatic in the way it works, but it allows the caller to decide whether to enable the encrypted protocol for the session or not. It also raises earlier in case the encryption keys are not found. --- freestyle_hid/_session.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'freestyle_hid/_session.py') diff --git a/freestyle_hid/_session.py b/freestyle_hid/_session.py index 0debaed..a2c9195 100644 --- a/freestyle_hid/_session.py +++ b/freestyle_hid/_session.py @@ -119,17 +119,18 @@ class Session: text_message_type: int, text_reply_message_type: int, encoding: str = "ascii", + encrypted: bool = False, ) -> None: + if encrypted and not _HAS_LIBRE2_KEYS: + raise MissingFreeStyleKeys() + self._handle = HidWrapper.open(device_path, ABBOTT_VENDOR_ID, product_id) self._text_message_type = text_message_type self._text_reply_message_type = text_reply_message_type self._encoding = encoding - self._encrypted_protocol = product_id in [0x3950] + self._encrypted_protocol = encrypted def encryption_handshake(self): - if not _HAS_LIBRE2_KEYS: - raise MissingFreeStyleKeys() - self.send_command(0x05, b"") response = self.read_response() assert response[0] == 0x06 @@ -179,9 +180,9 @@ class Session: # print("HANDSHAKE SUCCESSFUL!") def connect(self): + """Open connection to the device, starting the knocking sequence.""" if self._encrypted_protocol: self.encryption_handshake() - """Open connection to the device, starting the knocking sequence.""" self.send_command(_INIT_COMMAND, b"") response = self.read_response() if not _is_init_reply(response): -- cgit v1.2.3