ChecksumCalculatingStream
Checksums stream contents as the stream is progressed through.
            Limited seek support on read. No seek support on write.
            
            All properties pass through except  CanRead,
             CanWrite,  CanSeek, and
             Positionset (get will pass through).
            
            Passes thorugh properties traditionally locked behind seeking (e.g.
             Length) regardless of read or write mode, ensuring
            expected stream  checks are not interrupted and that exceptions only
            throw when unsupported behavior is actually attempted. This is done
            to maintain existing stream behavior as closely as possible, as this
            class is meant to only observe the stream contents as they flow.
            
                
public static Stream GetReadStream(Stream stream, AppendChecksumCalculation appendChecksumCalculation)
public static Stream GetWriteStream(Stream stream, AppendChecksumCalculation appendChecksumCalculation)