filehash
filehash copied to clipboard
Bug with SHA256 checksums
On MacOS, "sha256sum" generates a file with two spaces between the hash and the filename. This causes filehash to fail verification while sha256sum works fine. This is due to the fact that text files are marked with a " " / space, and binary files with "*": https://linux.die.net/man/1/sha256sum
To replicate, run the following commands:
cd testdata/
sha256sum *.zip >mac_test.txt
sha256sum --check mac_test.txt
chkfilehash -c mac_test.txt
Output from sha256sum:
lorem_ipsum.zip: OK
Output from fileshash:
Traceback (most recent call last):
File "/usr/local/bin/chkfilehash", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/filehash/filehash_cli.py", line 100, in main
process_checksum_file(args.checksums, hasher)
File "/usr/local/lib/python3.9/site-packages/filehash/filehash_cli.py", line 82, in process_checksum_file
results = hasher.verify_checksums(checksum_filename)
File "/usr/local/lib/python3.9/site-packages/filehash/filehash.py", line 268, in verify_checksums
actual_hash = self.hash_file(filename)
File "/usr/local/lib/python3.9/site-packages/filehash/filehash.py", line 176, in hash_file
with open(filename, mode="rb", buffering=0) as fp:
FileNotFoundError: [Errno 2] No such file or directory: ' lorem_ipsum.zip'
```
I added a pull request with a fix