static byte[] HashFile_SHA3_256(string filePath)
        {
            var sha3      = Sha3Permutation.Sha3_256();
            var fileBytes = File.ReadAllBytes(filePath);

            return(sha3.Process(fileBytes, 256, fileBytes.Length));
        }
        public void Sha3_256_ShouldReturnCorrectHash_Bitstring_WithMessage1630()
        {
            var sha3  = Sha3Permutation.Sha3_256();
            var input = SpongeTests.Message1630;
            var res   = new BitString(sha3.Process(input.Bytes, 256, 1630)).ToHexString();

            Assert.AreEqual("52 86 0A A3 01 21 4C 61 0D 92 2A 6B 6C AB 98 1C CD 06 01 2E 54 EF 68 9D 74 40 21 E7 38 B9 ED 20", res);
        }
        public void Sha3_256_ShouldReturnCorrectHash_Bitstring_WithMessage1605()
        {
            var sha3  = Sha3Permutation.Sha3_256();
            var input = SpongeTests.Message1605;
            var res   = new BitString(sha3.Process(input.Bytes, 256, 1605)).ToHexString();

            Assert.AreEqual("81 EE 76 9B ED 09 50 86 2B 1D DD ED 2E 84 AA A6 AB 7B FD D3 CE AA 47 1B E3 11 63 D4 03 36 36 3C", res);
        }
        public void Sha3_256_ShouldReturnCorrectHash_Bitstring_WithMessage1600()
        {
            var sha3  = Sha3Permutation.Sha3_256();
            var input = SpongeTests.Message1600;
            var res   = new BitString(sha3.Process(input.Bytes, 256)).ToHexString();

            Assert.AreEqual("79 F3 8A DE C5 C2 03 07 A9 8E F7 6E 83 24 AF BF D4 6C FD 81 B2 2E 39 73 C6 5F A1 BD 9D E3 17 87", res);
        }
        public void Sha3_256_ShouldReturnCorrectHash_Bitstring_WithMessage896()
        {
            var sha3  = Sha3Permutation.Sha3_256();
            var input = SpongeTests.Message896;
            var res   = new BitString(sha3.Process(input.Bytes, 256)).ToHexString();

            Assert.AreEqual("91 6F 60 61 FE 87 97 41 CA 64 69 B4 39 71 DF DB 28 B1 A3 2D C3 6C B3 25 4E 81 2B E2 7A AD 1D 18", res);
        }
        public void Sha3_256_ShouldReturnCorrectHash_Bitstring_WithMessage448()
        {
            var sha3  = Sha3Permutation.Sha3_256();
            var input = SpongeTests.Message448;
            var res   = new BitString(sha3.Process(input.Bytes, 256)).ToHexString();

            Assert.AreEqual("41 C0 DB A2 A9 D6 24 08 49 10 03 76 A8 23 5E 2C 82 E1 B9 99 8A 99 9E 21 DB 32 DD 97 49 6D 33 76", res);
        }
        public void Sha3_256_ShouldReturnCorrectHash_Bitstring_WithMessage30()
        {
            var sha3  = Sha3Permutation.Sha3_256();
            var input = SpongeTests.Message30;
            var res   = new BitString(sha3.Process(input.Bytes, 256, 30)).ToHexString();

            Assert.AreEqual("C8 24 2F EF 40 9E 5A E9 D1 F1 C8 57 AE 4D C6 24 B9 2B 19 80 9F 62 AA 8C 07 41 1C 54 A0 78 B1 D0", res);
        }
        public void Sha3_256_ShouldReturnCorrectHash_Bitstring_WithMessage24()
        {
            var sha3  = Sha3Permutation.Sha3_256();
            var input = SpongeTests.Message24;
            var res   = new BitString(sha3.Process(input.Bytes, 256)).ToHexString();

            Assert.AreEqual("3A 98 5D A7 4F E2 25 B2 04 5C 17 2D 6B D3 90 BD 85 5F 08 6E 3E 9D 52 5B 46 BF E2 45 11 43 15 32", res);
        }
        public void Sha3_256_ShouldReturnCorrectHash_Bitstring_WithMessage5()
        {
            var sha3  = Sha3Permutation.Sha3_256();
            var input = SpongeTests.Message5;
            var res   = new BitString(sha3.Process(input.Bytes, 256, 5)).ToHexString();

            Assert.AreEqual("7B 00 47 CF 5A 45 68 82 36 3C BF 0F B0 53 22 CF 65 F4 B7 05 9A 46 36 5E 83 01 32 E3 B5 D9 57 AF", res);
        }
        public void Sha3_256_ShouldReturnCorrectHash_Bitstring_WithMessage0()
        {
            var sha3  = Sha3Permutation.Sha3_256();
            var input = SpongeTests.Message0;
            var res   = new BitString(sha3.Process(input.Bytes, 256)).ToHexString();

            Assert.AreEqual("A7 FF C6 F8 BF 1E D7 66 51 C1 47 56 A0 61 D6 62 F5 80 FF 4D E4 3B 49 FA 82 D8 0A 4B 80 F8 43 4A", res);
        }