18 lines
443 B
Python
18 lines
443 B
Python
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()
|
|
|