コード例 #1
0
        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");
            }
        }
コード例 #2
0
        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());
            }
        }