sha256 takes a source, not a range
generalize sha256_digest as digest<ByteSize>