public void HashableStreamHashes() { var precomputedHashes = new Dictionary <HashProvider, string>() { { HashProvider.SHA256, @"QSz5LmQc4pbDAgZV0T7cfRW6vYHojRcdYIe/E/peFTY=" }, { HashProvider.SHA384, @"mOMV/0r+ZC+qHvgrYnM7d5kGdsLjH5bNW75gEGwldFy5JEdJ2dctt9+aKBkX0lLV" }, { HashProvider.SHA512, @"xl48gTfq6r+CxVxneqx9k3NGw0px6ubRdSnJUj/oR5MyabKlFC4FZwM2xBq0NkvM6lTOeQCGhZV0ET0EN11JZw==" } }; foreach (HashProvider provider in Enum.GetValues(typeof(HashProvider))) { byte[] byteArray = Encoding.ASCII.GetBytes("edb0f9cb-37a5-4c37-b8f7-7242e54bff34"); MemoryStream stream = new MemoryStream(byteArray); var h = new HashableStream(stream, provider); h.ComputeHash(provider); Assert.True(precomputedHashes.ContainsKey(provider), "The stored test hash dictionary has a comparison Hash, and same as HashableString"); var precomputedTestHash = precomputedHashes[provider]; var computedHashString = h.ComputedHash.ToString(); Assert.AreEqual(computedHashString, precomputedTestHash, "Computed and stored hash differ"); } }
public void HashableFromsEquate() { var precomputedHashes = new Dictionary <HashProvider, string>() { { HashProvider.SHA256, @"AYSLdKSodmdJQlMzKiDoAZlUL09GgLyHr9VTZlhQtkg=" }, { HashProvider.SHA384, @"TDQMTam7Wy20bTaD0vV7mCd760L4DNmsp55cgPnltRvVVf18qtTi/6ryuR4bXvJm" }, { HashProvider.SHA512, @"NMp1zZdwa+MmPPwe6YoPe0eS1UxXk0sBCJN6tEzD0/BCHsqk9P282nwS3paL+XJRSdipcCb3EObB7F5r/qe6xQ==" } }; var testFilePath = "HashableFromsEquate.txt"; var testString = "60EC9927-35B3-4CCB-9791-56D0FF00F07B"; File.WriteAllText(testFilePath, testString); var hBytes = new HashableBytes(Encoding.ASCII.GetBytes(testString)); var hString = new HashableString(testString); var hFile = new HashableFile(testFilePath); var hStream = new HashableStream(new MemoryStream(Encoding.ASCII.GetBytes(testString))); foreach (HashProvider provider in Enum.GetValues(typeof(HashProvider))) { hBytes.ComputeHash(provider); hString.ComputeHash(provider); hFile.ComputeHash(provider); hStream.ComputeHash(provider); Assert.True(precomputedHashes.ContainsKey(provider), "The stored test hash dictionary has a comparison Hash, and same as HashableString"); var precomputedTestHash = precomputedHashes[provider]; var hBytesString = hBytes.ComputedHash.ToString(); Assert.AreEqual(hBytesString, precomputedTestHash, "Computed and stored hash differ"); Assert.AreEqual(hBytesString, hString.ComputedHash.ToString()); Assert.AreEqual(hBytesString, hFile.ComputedHash.ToString()); Assert.AreEqual(hBytesString, hStream.ComputedHash.ToString()); } }