from __future__ import annotations import hashlib from pathlib import Path def sha256_file(file_path: Path) -> str: digest = hashlib.sha256() with file_path.open("rb") as handle: for chunk in iter(lambda: handle.read(1024 * 1024), b""): digest.update(chunk) return digest.hexdigest() def verify_sha256(file_path: Path, expected: str) -> bool: return sha256_file(file_path).lower() == expected.lower()