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);
}
}