Unify Digest with a hash for the bytes send to or read from
HashStream. Note that the hash is computed on the stream
buffers. If the stream is an output stream, it is first flushed and the Digest
represents the hash at the current location. If the stream is an input
stream the Digest represents the hash of the processed input
including the already buffered data.