Module armorlib::scan_modules [] [src]

This module defines and manages the default scan modules available to ArmorLib.

To contribute a new ScanModule, you must: 1. publicly import it into this module via pub mod. 2. instantiate it in make_default_scan_modules().

Modules

exif

This scan module searches for EXIF metadata in JPEG and TIFF files. EXIF metadata often contains sensitive private information (like location), and poses a serious threat to privacy and security.

strings

This scan module searches for common problematic strings. It uses the Aho–Corasick algorithm for n*log(s) search time complexity, wheren` is the length of the string and s is the number of strings in the string database.

unicode_watermark

Implements a module that attempts to catch a common techinique used to compromise privacy and find sources: Unicode watermarking. There are lots of techniques that are used to do this: right now, this library catches the most common one, using zero-width joiner characters which are invisible to humans but uniquely mark text depending on their locations.

Functions

make_default_scan_modules

Create a Vec<Box<ScanModule>> of the core scan modules available to ArmorLib. This will instantiate the scan modules.

process

Process the given Vec<Box<ScanModule>> on the given ScanObject and return a ScanResult. While concurrency is not yet available in ArmorLib, it will be implemented in this function, if anywhere. Be sure that the given ScanObject has the necessary metadata for the scan modules; no preprocessor checking is done here.