1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-08-02 11:58:32 +00:00
trezor-firmware/nordic/trezor/scripts/extract_hash.py
2025-07-22 14:04:28 +02:00

46 lines
1.3 KiB
Python

#!/usr/bin/env python3
import re
import sys
def extract_sha256_from_file(filename):
with open(filename, 'r') as f:
lines = f.readlines()
collecting = False
sha_record = False
bytes_list = []
for line in lines:
if not sha_record:
if "type: SHA256" in line:
sha_record = True
continue
if not collecting:
# look for the line that starts the data block
m = re.match(r'\s*data:\s*(.*)$', line)
if m:
collecting = True
# grab any 0x?? tokens on this same line
bytes_list += re.findall(r'0x([0-9A-Fa-f]{2})', m.group(1))
else:
# continuation lines: indented and starting with 0x
if re.match(r'\s*0x[0-9A-Fa-f]', line):
bytes_list += re.findall(r'0x([0-9A-Fa-f]{2})', line)
else:
break # end of the data block
if not bytes_list:
sys.exit("Error: No SHA256 data bytes found in file.")
# join and print the full hash
print(''.join(bytes_list).lower())
if __name__ == "__main__":
if len(sys.argv) != 2:
print(f"Usage: {sys.argv[0]} <dump.txt>", file=sys.stderr)
sys.exit(1)
extract_sha256_from_file(sys.argv[1])