Table of Contents

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

options AntivirusScanOptions
progress IProgress<ProgressReport>
cancellationToken CancellationToken

Returns

Task<ThreatScanResult>