mono/mono — pull request #1281 by madrang (2014-09-12 20:29:09+00:00)
Title: Fixed HashAlgorithm not enforcing State and cases where the hash is re-Initialized before return

Fixed HashAlgorithm not enforcing State when reading HashValue.
in TransformBlock State is != 0 and a call to TransformFinalBlock is required before the hash is valid and readable.
There were also 2 places where Initialize was called before the HashValue was read.
It now copy the hash instead of returning a pointer to it.
Initialize is called in TransformFinalBlock and HashValue is reset to 0.
Tested in a console application in VS2013 with Ms.Net and Initialize is not called.

This change is released under the MIT license.