public byte[] GetChecksum(string fileName, Guid md5HashGuid)
        {
            byte[] hashData = null;

            if (HostFileManager != null)
            {
                object docData = HostFileManager.GetFileDocData(fileName);
                IPersistFileCheckSum fileChecksummer = docData as IPersistFileCheckSum;
                if (fileChecksummer != null)
                {
                    byte[] tempBytes = new byte[1024];
                    int    actualSize;
                    fileChecksummer.CalculateCheckSum(md5HashGuid, tempBytes.Length, tempBytes, out actualSize);
                    hashData = new byte[actualSize];
                    for (int i = 0; i < actualSize; i++)
                    {
                        hashData[i] = tempBytes[i];
                    }
                }
            }
            if (hashData == null)
            {
                HashAlgorithm MD5cryptoProvider = new MD5CryptoServiceProvider();
                using (Stream fileStream = File.OpenRead(fileName))
                {
                    hashData = MD5cryptoProvider.ComputeHash(fileStream);
                }
            }
            return(hashData);
        }
Esempio n. 2
0
        public byte[] GetChecksum(string fileName, Guid hashGuid)
        {
            byte[] hashData = null;

            if (HostFileManager != null)
            {
                object docData = HostFileManager.GetFileDocData(fileName);
                IPersistFileCheckSum fileChecksummer = docData as IPersistFileCheckSum;
                if (fileChecksummer != null)
                {
                    byte[] tempBytes = new byte[1024];
                    int    actualSize;
                    fileChecksummer.CalculateCheckSum(hashGuid, tempBytes.Length, tempBytes, out actualSize);
                    hashData = new byte[actualSize];
                    for (int i = 0; i < actualSize; i++)
                    {
                        hashData[i] = tempBytes[i];
                    }
                }
            }
            if (hashData == null)
            {
                HashAlgorithm hashAlgorithm;

                if (hashGuid == s_hashSHA256Guid)
                {
                    hashAlgorithm = SHA256.Create();
                }
                else if (hashGuid == s_hashSHA1Guid)
                {
                    hashAlgorithm = SHA1.Create();
                }
                else if (hashGuid == s_hashMD5Guid)
                {
                    hashAlgorithm = MD5.Create();
                }
                else
                {
                    hashAlgorithm = null;
                }

                if (hashAlgorithm != null)
                {
                    using (Stream fileStream = File.OpenRead(fileName))
                    {
                        hashData = hashAlgorithm.ComputeHash(fileStream);
                    }
                }
            }
            return(hashData);
        }