@@ -102,7 +102,7 @@ async def _get_next_chunk(self):
102102
103103 topic = mqtt_topics .build_firmware_update_request_topic (self ._firmware_request_id , self ._current_chunk )
104104 mqtt_message = MqttPublishMessage (topic , payload )
105- await self ._client ._message_queue .publish (mqtt_message , wait_for_publish = True )
105+ await self ._client ._message_queue .publish (mqtt_message )
106106
107107 async def _verify_downloaded_firmware (self ):
108108 self ._log .info ('Verifying downloaded firmware...' )
@@ -111,8 +111,8 @@ async def _verify_downloaded_firmware(self):
111111 await self ._send_current_firmware_info ()
112112
113113 verified = self .verify_checksum (self ._firmware_data ,
114- self ._target_checksum ,
115- self ._target_checksum_alg )
114+ self ._target_checksum_alg ,
115+ self ._target_checksum )
116116
117117 if verified :
118118 self ._log .debug ('Checksum verified.' )
@@ -201,8 +201,8 @@ async def _firmware_info_callback(self, response, *args, **kwargs):
201201
202202 self ._firmware_request_id += 1
203203 self ._target_firmware_length = fetched_firmware_info [FW_SIZE_ATTR ]
204- self ._target_checksum = fetched_firmware_info [FW_CHECKSUM_ALG_ATTR ]
205- self ._target_checksum_alg = fetched_firmware_info [FW_CHECKSUM_ATTR ]
204+ self ._target_checksum = fetched_firmware_info [FW_CHECKSUM_ATTR ]
205+ self ._target_checksum_alg = fetched_firmware_info [FW_CHECKSUM_ALG_ATTR ]
206206 self ._target_title = fetched_firmware_info [FW_TITLE_ATTR ]
207207 self ._target_version = fetched_firmware_info [FW_VERSION_ATTR ]
208208
@@ -239,27 +239,28 @@ def verify_checksum(self, firmware_data, checksum_alg, checksum):
239239 checksum_of_received_firmware = None
240240
241241 self ._log .debug ('Checksum algorithm is: %s' % checksum_alg )
242- if checksum_alg .lower () == "sha256" :
242+ lower_checksum_alg = checksum_alg .lower ()
243+ if lower_checksum_alg == "sha256" :
243244 checksum_of_received_firmware = sha256 (firmware_data ).digest ().hex ()
244- elif checksum_alg . lower () == "sha384" :
245+ elif lower_checksum_alg == "sha384" :
245246 checksum_of_received_firmware = sha384 (firmware_data ).digest ().hex ()
246- elif checksum_alg . lower () == "sha512" :
247+ elif lower_checksum_alg == "sha512" :
247248 checksum_of_received_firmware = sha512 (firmware_data ).digest ().hex ()
248- elif checksum_alg . lower () == "md5" :
249+ elif lower_checksum_alg == "md5" :
249250 checksum_of_received_firmware = md5 (firmware_data ).digest ().hex ()
250- elif checksum_alg . lower () == "murmur3_32" :
251+ elif lower_checksum_alg == "murmur3_32" :
251252 reversed_checksum = f'{ hash (firmware_data , signed = False ):0>2X} '
252253 if len (reversed_checksum ) % 2 != 0 :
253254 reversed_checksum = '0' + reversed_checksum
254255 checksum_of_received_firmware = "" .join (
255256 reversed ([reversed_checksum [i :i + 2 ] for i in range (0 , len (reversed_checksum ), 2 )])).lower ()
256- elif checksum_alg . lower () == "murmur3_128" :
257+ elif lower_checksum_alg == "murmur3_128" :
257258 reversed_checksum = f'{ hash128 (firmware_data , signed = False ):0>2X} '
258259 if len (reversed_checksum ) % 2 != 0 :
259260 reversed_checksum = '0' + reversed_checksum
260261 checksum_of_received_firmware = "" .join (
261262 reversed ([reversed_checksum [i :i + 2 ] for i in range (0 , len (reversed_checksum ), 2 )])).lower ()
262- elif checksum_alg . lower () == "crc32" :
263+ elif lower_checksum_alg == "crc32" :
263264 reversed_checksum = f'{ crc32 (firmware_data ) & 0xffffffff :0>2X} '
264265 if len (reversed_checksum ) % 2 != 0 :
265266 reversed_checksum = '0' + reversed_checksum
@@ -268,11 +269,4 @@ def verify_checksum(self, firmware_data, checksum_alg, checksum):
268269 else :
269270 self ._log .error ('Client error. Unsupported checksum algorithm.' )
270271
271- self ._log .debug (checksum_of_received_firmware )
272-
273- random_value = randint (0 , 5 )
274- if random_value > 3 :
275- self ._log .debug ('Dummy fail! Do not panic, just restart and try again the chance of this fail is ~20%' )
276- return False
277-
278272 return checksum_of_received_firmware == checksum
0 commit comments