Trait ScanModule

Source
pub trait ScanModule {
    // Required methods
    fn scan(
        &self,
        scan_object: &ScanObject,
    ) -> Result<Vec<Finding>, ArmorlibError>;
    fn required_preprocessors(&self) -> Vec<&'static str>;
    fn info(&self) -> (&'static str, &'static str);

    // Provided methods
    fn name(&self) -> &'static str { ... }
    fn description(&self) -> &'static str { ... }
    fn subscribed_filetypes(&self) -> Option<Vec<&'static str>> { ... }
}
Expand description

A trait that defines the necessary functions for ScanModules to implement. To contribute a new scan module, it will also need to be included in mod.rs inside the scan_modules directory. A scan module is a modular component that finds vulnerabilities to privacy and security inside ScanObjects. The ScanModule is the core component of ArmorLib.

Required Methods§

Source

fn scan(&self, scan_object: &ScanObject) -> Result<Vec<Finding>, ArmorlibError>

Scan the given scan_object and return either a vector of Findings or, in case of an error, an ArmorlibError.

Source

fn required_preprocessors(&self) -> Vec<&'static str>

Return a Vec of &'static strs indicating the preprocessors that the scan module relies on for running. These names should match the name provided by the processor in its name() function.

Source

fn info(&self) -> (&'static str, &'static str)

Returns a tuple containing the name and description of the scan module.

Provided Methods§

Source

fn name(&self) -> &'static str

Returns a &'static str of the name of the scan module. This information is drawn from the information provided by info() in its default implementation.

Source

fn description(&self) -> &'static str

Returns a &'static str of the description of the scan module. This information is drawn from the information provided by info() in its default implementation.

Source

fn subscribed_filetypes(&self) -> Option<Vec<&'static str>>

Returns an Option<Vec<&'static str>> of the filetypes that the scan module is subscribed to. If a scan module subscribes to a filetype, it will only be run if the data is detected to be of any of the subscribed filetypes. If a scan module’s subscribed_filetypes() function returns None (default), it will be run for every filetype.

These filetypes must match those defined in preprocessors/filetype.

Implementors§