user@devops:~$ cat README.md
SHA-256 Hasher
# Description
SHA-256 Hasher is a file integrity hasher and verifier in C++23 that implements the SHA-256 algorithm (FIPS 180-4) entirely from scratch: padding, the compression round and all 64 K constants. It reads files via streaming with a 1 MiB buffer, so files of any size are handled with constant memory usage. Includes verification against an expected hash (-c), sha256sum-style manifest verification (-C), an in-memory throughput benchmark (-b), a self-test against the FIPS 180-4 known-answer vectors (--selftest), stdin input and uppercase hex output. Standard exit codes (0=OK, 1=mismatch, 2=error) make it script/CI-friendly. Built with GCC 14 using only the C++23 standard library (std::print, std::span, std::from_chars, std::filesystem).
# Key features
$ SHA-256 (FIPS 180-4) algorithm implemented from scratch in pure C++23
$ Streaming hashing with a 1 MiB buffer - files of any size
$ Verification against an expected hash (-c) with exit codes 0/1/2
$ sha256sum-style manifest verification (-C)
$ In-memory throughput benchmark (-b N MiB)
$ Self-test against FIPS 180-4 known-answer vectors (--selftest)
$ stdin input (-) and uppercase hex output (-u)
$ Zero dependencies: direct g++ compilation, no CMake
# Gallery
# Technologies used