From 858f3b01625e2cb23a8861e5b5759dad827de729 Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk Date: Sat, 14 May 2022 15:38:28 -0600 Subject: [PATCH] integrity_verification.py: Deduplicate chunklist logic --- resources/integrity_verification.py | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/resources/integrity_verification.py b/resources/integrity_verification.py index 573085178..ed68256fa 100644 --- a/resources/integrity_verification.py +++ b/resources/integrity_verification.py @@ -5,16 +5,11 @@ import binascii import hashlib -import struct from pathlib import Path CHUNK_LENGTH = 4 + 32 -def hexswap(i): - return struct.unpack("I", i))[0] - - def generate_chunklist_dict(chunklist): chunklist = Path(chunklist).read_bytes() if isinstance(chunklist, str) else chunklist @@ -36,24 +31,7 @@ def generate_chunklist_dict(chunklist): def chunk(file_path, chunklist, verbose): - chunklist = Path(chunklist).read_bytes() if isinstance( - chunklist, str) else chunklist - - header = { - "magic": chunklist[:4], - "length": int.from_bytes(chunklist[4:8], "little"), - "fileVersion": chunklist[8], - "chunkMethod": chunklist[9], - "sigMethod": chunklist[10], - "chunkCount": int.from_bytes(chunklist[12:20], "little"), - "chunkOffset": int.from_bytes(chunklist[20:28], "little"), - "sigOffset": int.from_bytes(chunklist[28:36], "little") - } - - all_chunks = chunklist[header["chunkOffset"]:header["chunkOffset"]+header["chunkCount"]*CHUNK_LENGTH] - chunks = [{"length": int.from_bytes(all_chunks[i:i+4], "little"), "checksum": all_chunks[i+4:i+CHUNK_LENGTH]} - for i in range(0, len(all_chunks), CHUNK_LENGTH)] - + chunks = generate_chunklist_dict(chunklist) with Path(file_path).open("rb") as f: for chunk in chunks: status = hashlib.sha256(f.read(chunk["length"])).digest()