예제 #1
0
        public void GivesCorrectOutputWithNoInput()
        {
            var digest = new SHA1Digest();

            var result = digest.Digest();

            AssertSHA1("da39a3ee5e6b4b0d3255bfef95601890afd80709", result);
        }
예제 #2
0
        private SHA1Digest(SHA1Digest source)
            : base(source)
        {
            h0 = source.h0;
            h1 = source.h1;
            h2 = source.h2;
            h3 = source.h3;
            h4 = source.h4;

            complete = source.complete;
        }
예제 #3
0
        public void GivesCorrectOutputWithStringInput()
        {
            var digest = new SHA1Digest();

            var buffer = Encoding.UTF8.GetBytes("The quick brown fox jumps over the lazy dog");
            digest.Update(buffer, 0, buffer.Length);

            var result = digest.Digest();

            AssertSHA1("2fd4e1c67a2d28fced849ee1bb76e7391b93eb12", result);
        }
예제 #4
0
        public void GivesCorrectOutputWithSimpleStringInput()
        {
            var digest = new SHA1Digest();

            var buffer = new byte[] { 0x24 };
            digest.Update(buffer, 0, buffer.Length);

            var result = digest.Digest();

            AssertSHA1("3cdf2936da2fc556bfa533ab1eb59ce710ac80e5", result);
        }
예제 #5
0
        private void RunNIST(string file)
        {
            var lines = File.ReadAllLines("Hashing/TestVectors/" + file);

            for (var i = 0; i < lines.Length; i += 4)
            {
                var digest = new SHA1Digest();

                var len = int.Parse(lines[i].Substring(6)) / 8;
                var msg = HexConverter.FromHex(lines[i + 1].Substring(6));
                var expectedHash = lines[i + 2].Substring(5);

                digest.Update(msg, 0, len);
                var hash = digest.Digest();

                AssertSHA1(expectedHash, hash);
            }
        }