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 ScanModule
s 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 ScanObject
s. The ScanModule
is the core component of ArmorLib.
Required Methods§
Sourcefn scan(&self, scan_object: &ScanObject) -> Result<Vec<Finding>, ArmorlibError>
fn scan(&self, scan_object: &ScanObject) -> Result<Vec<Finding>, ArmorlibError>
Scan the given scan_object
and return either a vector of Finding
s or, in case of an
error, an ArmorlibError
.
Sourcefn required_preprocessors(&self) -> Vec<&'static str>
fn required_preprocessors(&self) -> Vec<&'static str>
Return a Vec
of &'static str
s 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.
Provided Methods§
Sourcefn name(&self) -> &'static str
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.
Sourcefn description(&self) -> &'static str
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.
Sourcefn subscribed_filetypes(&self) -> Option<Vec<&'static str>>
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
.