Paul Fagerburg has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/35604 )
Change subject: util/mb/googl/hatch: update CRC calculation for correctness ......................................................................
util/mb/googl/hatch: update CRC calculation for correctness
The CRC result is treated as a signed value, and so in certain situations, the calculated value for the last four digits will not be correct. Ensure that the CRC is treated as an unsigned 32-bit value prior to converting the last 4 decimal digits to a string.
Signed-off-by: Paul Fagerburg pfagerburg@chromium.org Change-Id: I92f9ce1ceb7450f90b89c94e0ace6f79a9419b42 --- M util/mainboard/google/hatch/kconfig.py 1 file changed, 3 insertions(+), 2 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/04/35604/1
diff --git a/util/mainboard/google/hatch/kconfig.py b/util/mainboard/google/hatch/kconfig.py index ecc24ee..2a2972d 100755 --- a/util/mainboard/google/hatch/kconfig.py +++ b/util/mainboard/google/hatch/kconfig.py @@ -64,8 +64,9 @@ converted to all uppercase as part of this function.""" hwid = variant_name + ' test' upperhwid = hwid.upper() - suffix = zlib.crc32(upperhwid.encode('UTF-8')) % 10000 - gbb_hwid = upperhwid + ' ' + str(suffix).zfill(4) + # Force conversion to unsigned by bitwise AND with (2^32)-1 + crc = zlib.crc32(upperhwid.encode('UTF-8')) & 0xffffffff + gbb_hwid = upperhwid + ' ' + str(crc % 10000).zfill(4) return gbb_hwid