namespace StellaOps.Feedser.BinaryAnalysis; using StellaOps.Feedser.BinaryAnalysis.Models; /// /// Interface for extracting binary fingerprints from compiled artifacts. /// public interface IBinaryFingerprinter { /// /// Fingerprinting method this implementation provides. /// FingerprintMethod Method { get; } /// /// Extract fingerprint from binary file. /// /// Path to binary file. /// Associated CVE ID. /// Optional function name to fingerprint. /// Cancellation token. /// Binary fingerprint. Task ExtractAsync( string binaryPath, string? cveId, string? targetFunction = null, CancellationToken cancellationToken = default); /// /// Extract fingerprint from binary bytes. /// /// Binary data. /// Binary name for identification. /// Associated CVE ID. /// Optional function name to fingerprint. /// Cancellation token. /// Binary fingerprint. Task ExtractAsync( ReadOnlyMemory binaryData, string binaryName, string? cveId, string? targetFunction = null, CancellationToken cancellationToken = default); /// /// Match candidate binary against known fingerprint. /// /// Path to candidate binary. /// Known fingerprint to match against. /// Cancellation token. /// Match result. Task MatchAsync( string candidatePath, BinaryFingerprint knownFingerprint, CancellationToken cancellationToken = default); /// /// Match candidate binary bytes against known fingerprint. /// /// Candidate binary data. /// Known fingerprint to match against. /// Cancellation token. /// Match result. Task MatchAsync( ReadOnlyMemory candidateData, BinaryFingerprint knownFingerprint, CancellationToken cancellationToken = default); }