AssemblyCSharp.FileHelper.TryReadHashProtectedTextFile C# (CSharp) Метод

TryReadHashProtectedTextFile() публичный статический Метод

public static TryReadHashProtectedTextFile ( string filename, string manifest, string seed ) : string
filename string
manifest string
seed string
Результат string
        public static string TryReadHashProtectedTextFile(string filename, string manifest, string seed)
        {
            if (File.Exists(filename) && File.Exists(manifest))
            {
            using (var md5 = MD5.Create())
            {
                var bytes = Encoding.UTF8.GetBytes(seed);
                md5.TransformBlock(bytes, 0, bytes.Length, bytes, 0);

                var memoryStream = new MemoryStream();
                using (var stream = File.OpenRead(filename))
                {
                    var buffer = Buffer;
                    int byteCount;
                    while ((byteCount = stream.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        md5.TransformBlock(buffer, 0, byteCount, buffer, 0);
                        memoryStream.Write(buffer, 0, byteCount);
                    }
                    md5.TransformFinalBlock(buffer, 0, 0);

                    var testHash = File.ReadAllBytes(manifest);
                    if (CompareHashes(testHash, md5.Hash))
                    {
                        return System.Text.Encoding.UTF8.GetString(memoryStream.GetBuffer());
                    }
                    else
                    {
                        PSDebug.Log("Hash mismatch: {0}", filename);
                        return null;
                    }
                }
            }
            }
            else
            {
            PSDebug.Log("Either file: {0} or manifest {1} not found.",File.Exists(filename), File.Exists(manifest));
            return null;
            }
        }