Trait armorlib::scan_module::ScanModule
[−]
[src]
pub trait ScanModule { fn scan(
&self,
scan_object: &ScanObject
) -> Result<Vec<Finding>, ArmorlibError>; fn required_preprocessors(&self) -> Vec<&'static str>; fn info(&self) -> (&'static str, &'static str); fn name(&self) -> &'static str { ... } fn description(&self) -> &'static str { ... } fn subscribed_filetypes(&self) -> Option<Vec<&'static str>> { ... } }
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
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
.
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.
fn info(&self) -> (&'static str, &'static str)
Returns a tuple containing the name and description of the scan module.
Provided Methods
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.
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.
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
impl ScanModule for StringsScanModule
impl ScanModule for UnicodeWatermarkScanModule
impl ScanModule for ExifScanModule