From f7e30344c5748e37924c8a4f28522c2bc99a52ee Mon Sep 17 00:00:00 2001 From: kost Date: Sun, 7 May 2017 20:32:52 +0200 Subject: [PATCH] pad the payload for AES encryption (16) (#92) --- broadlink/__init__.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/broadlink/__init__.py b/broadlink/__init__.py index 3fe28a81c..e757f9000 100644 --- a/broadlink/__init__.py +++ b/broadlink/__init__.py @@ -245,6 +245,11 @@ class device: packet[0x32] = self.id[2] packet[0x33] = self.id[3] + # pad the payload for AES encryption + if len(payload)>0: + numpad=(len(payload)//16+1)*16 + payload=payload.ljust(numpad,"\x00") + checksum = 0xbeaf for i in range(len(payload)): checksum += payload[i] @@ -539,4 +544,4 @@ def setup(ssid, password, security_mode): socket.SOCK_DGRAM) # UDP sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) - sock.sendto(payload, ('255.255.255.255', 80)) \ No newline at end of file + sock.sendto(payload, ('255.255.255.255', 80))