Ejemplo n.º 1
0
        public static void Default_4_ValidateInHex_WithContent()
        {
            var sha256 = Sha256.GetInstance();

            Assert.NotNull(sha256);
            Assert.True(sha256.ValidateInHex("", "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"));
            Assert.True(sha256.ValidateInHex("123", "a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3"));
        }
Ejemplo n.º 2
0
        public static void Default_2_ValidateInBase64_WithContent()
        {
            var sha256 = Sha256.GetInstance();

            Assert.NotNull(sha256);
            Assert.True(sha256.ValidateInBase64("", "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="));
            Assert.True(sha256.ValidateInBase64("123", "pmWkWSBCL51Bfkhn79xPuKBKHz//H6B+mY6G9/eieuM="));
        }
Ejemplo n.º 3
0
        public static void Default_5_ValidateInAll_WithContent()
        {
            var sha256 = Sha256.GetInstance();

            Assert.NotNull(sha256);
            Assert.True(sha256.ValidateInAll("", "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="));
            Assert.True(sha256.ValidateInAll("123", "pmWkWSBCL51Bfkhn79xPuKBKHz//H6B+mY6G9/eieuM="));
            Assert.True(sha256.ValidateInAll("", "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"));
            Assert.True(sha256.ValidateInAll("123", "a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3"));
        }
Ejemplo n.º 4
0
        public static void Default_1_GenerateInBase64_WithContent()
        {
            var sha256 = Sha256.GetInstance();

            Assert.NotNull(sha256);
            var value = sha256.GenerateInBase64("");

            Assert.Equal("47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", value);
            var value2 = sha256.GenerateInBase64("123");

            Assert.Equal("pmWkWSBCL51Bfkhn79xPuKBKHz//H6B+mY6G9/eieuM=", value2);
        }
Ejemplo n.º 5
0
        public static void Default_3_GenerateInHex_WithContent()
        {
            var sha256 = Sha256.GetInstance();

            Assert.NotNull(sha256);
            var value = sha256.GenerateInHex("");

            Assert.Equal("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", value);
            var value2 = sha256.GenerateInHex("123");

            Assert.Equal("a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3", value2);
        }
Ejemplo n.º 6
0
        public static void FileVerifierTest_Default_5_Sha256_Hex()
        {
            var filePath = Path.Combine(Path.GetTempPath(), $"__test_{Guid.NewGuid().ToString()}__");
            var fileInfo = new FileInfo(filePath);

            File.WriteAllText(filePath, Guid.NewGuid().ToString());
            var checksum = Sha256.GetInstance().GenerateInHex(fileInfo);
            var verified = FileVerifier.VerifyAsync(fileInfo, fileInfo.Length, checksum, FileVerifier.ChecksumType.Sha256, CancellationToken.None).Result;

            Assert.True(verified);
            try { fileInfo.Delete(); } catch (Exception) { }
        }
Ejemplo n.º 7
0
        public static void Default_2_ValidateInBase64Async_WithFile()
        {
            var sha256 = Sha256.GetInstance();

            Assert.NotNull(sha256);
            var path = @"%USERPROFILE%\TestData.Sha1.txt";

            if (!Runtime.Platform.IsWindows)
            {
                path = @"%HOME%/TestData.Sha1.txt";
            }
            var file = new FileInfo(Environment.ExpandEnvironmentVariables(path));

            Assert.True(sha256.ValidateInBase64Async(file, "ElwW3xccv1CczBJBzICd7wi1Sgc8PIoKo8DkweLMhWo=").Result);
        }
Ejemplo n.º 8
0
        public static void Default_4_ValidateInHexAsync_WithFile()
        {
            var sha256 = Sha256.GetInstance();

            Assert.NotNull(sha256);
            var path = @"%USERPROFILE%\TestData.Sha1.txt";

            if (!Runtime.Platform.IsWindows)
            {
                path = @"%HOME%/TestData.Sha1.txt";
            }
            var file = new FileInfo(Environment.ExpandEnvironmentVariables(path));

            Assert.True(sha256.ValidateInHexAsync(file, "125c16df171cbf509ccc1241cc809def08b54a073c3c8a0aa3c0e4c1e2cc856a").Result);
        }
Ejemplo n.º 9
0
        public static void Default_5_ValidateInAll_WithFile()
        {
            var sha256 = Sha256.GetInstance();

            Assert.NotNull(sha256);
            var path = @"%USERPROFILE%\TestData.Sha1.txt";

            if (!Runtime.Platform.IsWindows)
            {
                path = @"%HOME%/TestData.Sha1.txt";
            }
            var file = new FileInfo(Environment.ExpandEnvironmentVariables(path));

            Assert.True(sha256.ValidateInAll(file, "ElwW3xccv1CczBJBzICd7wi1Sgc8PIoKo8DkweLMhWo="));
            Assert.True(sha256.ValidateInAll(file, "125c16df171cbf509ccc1241cc809def08b54a073c3c8a0aa3c0e4c1e2cc856a"));
        }
        public static async Task <bool> VerifyAsync(
            FileInfo fileInfo,
            long size,
            string checksum,
            ChecksumType checksumType,
            CancellationToken cancellationToken)
        {
            if (fileInfo == null || !fileInfo.Exists || fileInfo.Length != size)
            {
                return(false);
            }

            switch (checksumType)
            {
            case ChecksumType.Md5:

                if (checksum.Length == 32)
                {
                    return(checksum == await Md5.GetInstance()
                           .GenerateInHexAsync(fileInfo, cancellationToken).ConfigureAwait(false));
                }

                if (checksum.Length == 24)
                {
                    return(checksum == await Md5.GetInstance()
                           .GenerateInBase64Async(fileInfo, cancellationToken).ConfigureAwait(false));
                }

                break;

            case ChecksumType.Sha1:

                if (checksum.Length == 40)
                {
                    return(checksum == await Sha1.GetInstance()
                           .GenerateInHexAsync(fileInfo, cancellationToken).ConfigureAwait(false));
                }

                if (checksum.Length == 28)
                {
                    return(checksum == await Sha1.GetInstance()
                           .GenerateInBase64Async(fileInfo, cancellationToken).ConfigureAwait(false));
                }

                break;

            case ChecksumType.Sha256:

                if (checksum.Length == 64)
                {
                    return(checksum == await Sha256.GetInstance()
                           .GenerateInHexAsync(fileInfo, cancellationToken).ConfigureAwait(false));
                }

                if (checksum.Length == 44)
                {
                    return(checksum == await Sha256.GetInstance()
                           .GenerateInBase64Async(fileInfo, cancellationToken).ConfigureAwait(false));
                }

                break;
            }

            throw new NotSupportedException($"Not supported! path: {fileInfo.FullName} size: {size} checksum: {checksum} checksumType: {checksumType}");
        }
Ejemplo n.º 11
0
        public static void Default_0_GetInstance()
        {
            var sha256 = Sha256.GetInstance();

            Assert.NotNull(sha256);
        }