pad the payload for AES encryption (16) (#92)

This commit is contained in:
kost 2017-05-07 20:32:52 +02:00 committed by Matthew Garrett
parent f1d62380c9
commit f7e30344c5

View file

@ -245,6 +245,11 @@ class device:
packet[0x32] = self.id[2] packet[0x32] = self.id[2]
packet[0x33] = self.id[3] 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 checksum = 0xbeaf
for i in range(len(payload)): for i in range(len(payload)):
checksum += payload[i] checksum += payload[i]
@ -539,4 +544,4 @@ def setup(ssid, password, security_mode):
socket.SOCK_DGRAM) # UDP socket.SOCK_DGRAM) # UDP
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(payload, ('255.255.255.255', 80)) sock.sendto(payload, ('255.255.255.255', 80))