# Sha256 Utility Overview `Sha256.cpp` provides a small helper to compute the SHA-256 digest of a file. The function is used during import to assign a stable, unique identifier for books; this id becomes the primary key in SQLite and the filename for cached covers. ## Responsibilities - Stream a file from disk. - Feed the bytes through OpenSSL’s SHA-256 implementation. - Return the digest as a lowercase hexadecimal string. ## Expected usage ```cpp std::string digest = sha256_file(path); ``` The caller is responsible for handling I/O errors (the helper throws if the file cannot be read). Since the digest is deterministic, re-importing the same file produces the same id, allowing updates to merge cleanly.