using System.Collections.Generic; using BurnOutSharp.Matching; namespace BurnOutSharp { // TODO: This should either include an override that takes a Stream instead of the byte[] // OR have a completely separate check for when it's an executable specifically // TODO: Once more checks have been converted over to using PortableExecutable, NewExecutable, // and DOS Executable, then add an override for `CheckContents` that takes an executable type // as one of the arguments. This will reduce the amount of times the same file will be parsed // into an in-memory header internal interface IContentCheck { /// /// Get a list of content match sets that represent a protection /// /// List of content match sets, null if not applicable List GetContentMatchSets(); /// /// Check a path for protections based on file contents /// /// File to check for protection indicators /// Byte array representing the file contents /// True to include debug data, false otherwise /// String containing any protections found in the file string CheckContents(string file, byte[] fileContent, bool includeDebug); } }