diff options
author | chai <215380520@qq.com> | 2023-10-12 22:09:49 +0800 |
---|---|---|
committer | chai <215380520@qq.com> | 2023-10-12 22:09:49 +0800 |
commit | 8d2a2cd5de40e2b94ef5007c32832ed9a063dc40 (patch) | |
tree | a63dfbe815855925c9fb8f2804bd6ccfeffbd2eb /Tools/Hazel-Networking/Hazel.UnitTests/Crypto/Sha256Tests.cs | |
parent | dd0c5d50e377d9be1e728463670908a6c9d2c14f (diff) |
+hazel-networking
Diffstat (limited to 'Tools/Hazel-Networking/Hazel.UnitTests/Crypto/Sha256Tests.cs')
-rw-r--r-- | Tools/Hazel-Networking/Hazel.UnitTests/Crypto/Sha256Tests.cs | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Tools/Hazel-Networking/Hazel.UnitTests/Crypto/Sha256Tests.cs b/Tools/Hazel-Networking/Hazel.UnitTests/Crypto/Sha256Tests.cs new file mode 100644 index 0000000..5309988 --- /dev/null +++ b/Tools/Hazel-Networking/Hazel.UnitTests/Crypto/Sha256Tests.cs @@ -0,0 +1,70 @@ +using Hazel.Crypto; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System.Text; + +namespace Hazel.UnitTests.Crypto +{ + [TestClass] + public class Sha256Tests + { + [TestMethod] + public void TestOneBlockMessage() + { + ByteSpan message = Encoding.ASCII.GetBytes( + "abc" + ); + byte[] expectedDigest = Utils.HexToBytes( + "ba7816bf 8f01cfea 414140de 5dae2223 b00361a3 96177a9c b410ff61 f20015ad" + ); + byte[] actualDigest = new byte[Sha256Stream.DigestSize]; + + using (Sha256Stream sha256 = new Sha256Stream()) + { + sha256.AddData(message); + sha256.CopyOrCalculateFinalHash(actualDigest); + } + + CollectionAssert.AreEqual(expectedDigest, actualDigest); + } + + [TestMethod] + public void TestMultiBlockMessage() + { + ByteSpan message = Encoding.ASCII.GetBytes( + "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" + ); + byte[] expectedDigest = Utils.HexToBytes( + "248d6a61 d20638b8 e5c02693 0c3e6039 a33ce459 64ff2167 f6ecedd4 19db06c1" + ); + byte[] actualDigest = new byte[Sha256Stream.DigestSize]; + + using (Sha256Stream sha256 = new Sha256Stream()) + { + sha256.AddData(message); + sha256.CopyOrCalculateFinalHash(actualDigest); + } + + CollectionAssert.AreEqual(expectedDigest, actualDigest); + } + + [TestMethod] + public void TestLongMessage() + { + ByteSpan message = Encoding.ASCII.GetBytes( + new string('a', 1000000) + ); + byte[] expectedDigest = Utils.HexToBytes( + "cdc76e5c 9914fb92 81a1c7e2 84d73e67 f1809a48 a497200e 046d39cc c7112cd0" + ); + byte[] actualDigest = new byte[Sha256Stream.DigestSize]; + + using (Sha256Stream sha256 = new Sha256Stream()) + { + sha256.AddData(message); + sha256.CopyOrCalculateFinalHash(actualDigest); + } + + CollectionAssert.AreEqual(expectedDigest, actualDigest); + } + } +} |