/// <summary> /// Generates the default file hash for the specified priority. /// </summary> /// <param name="filePath">The full path to the file on disk.</param> /// <param name="priority">FileBackupPriority</param> /// <returns></returns> public byte[] GenerateDefaultHash(string filePath, FileBackupPriority priority) { if (priority == FileBackupPriority.Low) { return(Generate20ByteFileHash(filePath)); } else if (priority == FileBackupPriority.Medium) { return(Generate32ByteFileHash(filePath)); } else if (priority == FileBackupPriority.High) { return(Generate64ByteFileHash(filePath)); } else if (priority == FileBackupPriority.Meta) { return(Generate64ByteFileHash(filePath)); } else { throw new NotImplementedException("Unexpected file backup priority type: " + priority); } }
/// <summary> /// Gets the default hash algorithm used for a specified priority type. /// </summary> /// <param name="priority"></param> /// <returns></returns> public HashAlgorithmName GetDefaultHashAlgorithm(FileBackupPriority priority) { if (priority == FileBackupPriority.Low) { return(HashAlgorithmName.SHA1); } else if (priority == FileBackupPriority.Medium) { return(HashAlgorithmName.SHA256); } else if (priority == FileBackupPriority.High) { return(HashAlgorithmName.SHA512); } else if (priority == FileBackupPriority.Meta) { return(HashAlgorithmName.SHA512); } else { throw new NotImplementedException("Unexpected file backup priority type: " + priority); } }