Interface IAntivirusScanService
- Namespace
- Archiver.Core.Interfaces
- Assembly
- Archiver.Core.dll
T-F146. Scans an archive's expanded contents for threats via AMSI — deliberately not an extension of IArchiveService/ITarService (see docs/DECISIONS.md's T-F146 entry): this never writes anything to a real destination, has no conflict/MOTW dimension, and adding a method to those interfaces would ripple through every hand-rolled test fake in the repo for a capability that isn't a variant of extraction. Never throws — every failure becomes an Inconclusive ThreatFinding.
public interface IAntivirusScanService
Methods
ScanAsync(AntivirusScanOptions, IProgress<ProgressReport>?, CancellationToken)
Scans one or more archives via AMSI. Never throws — a scan failure (no AV provider, a per-entry read error) becomes an Inconclusive ThreatFinding instead.
Task<ThreatScanResult> ScanAsync(AntivirusScanOptions options, IProgress<ProgressReport>? progress = null, CancellationToken cancellationToken = default)
Parameters
optionsAntivirusScanOptionsprogressIProgress<ProgressReport>cancellationTokenCancellationToken