From 5093190a204d5fc54fe68bc55bb4135612c221c3 Mon Sep 17 00:00:00 2001 From: Kazuki Suzuki Przyborowski Date: Fri, 14 Feb 2025 00:55:38 -0600 Subject: [PATCH] Update pycatfile.py --- pycatfile.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pycatfile.py b/pycatfile.py index 0895412..9368010 100755 --- a/pycatfile.py +++ b/pycatfile.py @@ -1496,6 +1496,17 @@ def SevenZipFileCheck(infile): # initial_value can be 0xFFFF or 0x0000 +def crc_calculate(msg, poly, initial_value, bit_length): + """Generic CRC calculation function.""" + crc = initial_value + for byte in msg: + crc ^= byte << (bit_length - 8) + for _ in range(8): + crc = (crc << 1) ^ poly if crc & (1 << (bit_length - 1)) else crc << 1 + crc &= (1 << bit_length) - 1 + return crc + + def crc16_ansi(msg, initial_value=0xFFFF): # CRC-16-IBM / CRC-16-ANSI polynomial and initial value poly = 0x8005 # Polynomial for CRC-16-IBM / CRC-16-ANSI