コード例 #1
0
        public void SHA512_ByteAmount()
        {
            var sha = SHA512Value.ComputeFileSHA512(ThisFile);

            sha.GetBytes().Count.Should().Be(64);
            sha.ToString().Length.Should().Be(128);
        }
コード例 #2
0
        public void SHA512_ToString_and_Parse()
        {
            var sha    = SHA512Value.ComputeFileSHA512(ThisFile);
            var s      = sha.ToString();
            var shaBis = SHA512Value.Parse(s);

            shaBis.Should().Be(sha);
        }
コード例 #3
0
        public void SHA512_CompareTo(string v1, string v2, char cmp)
        {
            var s1 = SHA512Value.Parse(v1);
            var s2 = SHA512Value.Parse(v2);

            switch (cmp)
            {
            case '>': s1.CompareTo(s2).Should().BeGreaterThan(0); break;

            case '<': s1.CompareTo(s2).Should().BeLessThan(0); break;

            default: s1.CompareTo(s2).Should().Be(0); break;
            }
        }
コード例 #4
0
        public async Task SHA512_from_file_async()
        {
            var sha  = SHA512Value.ComputeFileSHA512(ThisFile);
            var sha2 = await SHA512Value.ComputeFileSHA512Async(ThisFile);

            sha2.Should().Be(sha);
            using (var compressedPath = new TemporaryFile())
            {
                using (var input = new FileStream(ThisFile, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, FileOptions.SequentialScan | FileOptions.Asynchronous))
                    using (var compressed = new FileStream(compressedPath.Path, FileMode.Truncate, FileAccess.Write, FileShare.None, 4096, FileOptions.SequentialScan | FileOptions.Asynchronous))
                    {
                        var writer = GetCompressShellAsync(w => input.CopyToAsync(w));
                        await writer(compressed);
                    }
                var shaCompressed = await SHA512Value.ComputeFileSHA512Async(compressedPath.Path);

                shaCompressed.Should().NotBe(sha);
                var localSha = await SHA512Value.ComputeFileSHA512Async(compressedPath.Path, r => new GZipStream(r, CompressionMode.Decompress, true));

                localSha.Should().Be(sha);
            }
        }
コード例 #5
0
        public void SHA512_invalid_parse(int offset, string s, bool success)
        {
            SHA512Value v;

            SHA512Value.TryParse(s, offset, out v).Should().Be(success);
        }