pub use forensicnomicon_core::catalog::*;
mod descriptors;
pub static CATALOG: ForensicCatalog = ForensicCatalog::new(descriptors::CATALOG_ENTRIES);
pub fn container_profile_for_artifact(id: &str) -> Option<&'static ContainerProfile> {
CATALOG.container_profile(id)
}
pub fn container_signature_for_artifact(id: &str) -> Option<&'static ContainerSignature> {
CATALOG.container_signature(id)
}
pub fn record_signatures_for_artifact(id: &str) -> Vec<&'static RecordSignature> {
CATALOG.record_signatures(id)
}
#[cfg(test)]
#[doc(hidden)]
pub(crate) use descriptors::*;
#[cfg(test)]
mod tests;
#[cfg(test)]
mod refactor_contract {
#[test]
fn artifact_facade_fns_delegate_to_catalog() {
for id in [
"userassist_exe",
"prefetch_file",
"run_key_hklm",
"not-a-real-id",
] {
assert_eq!(
container_profile_for_artifact(id).is_some(),
CATALOG.container_profile(id).is_some(),
);
assert_eq!(
container_signature_for_artifact(id).is_some(),
CATALOG.container_signature(id).is_some(),
);
assert_eq!(
record_signatures_for_artifact(id).len(),
CATALOG.record_signatures(id).len(),
);
}
}
use super::*;
#[test]
fn catalog_api_surface_intact() {
let _ = CATALOG.by_id("userassist_exe");
let _ = CATALOG.for_triage();
let _ = CATALOG.by_mitre("T1547.001");
let _ = CATALOG.filter_by_keyword("prefetch");
let _: ArtifactLocation = ArtifactLocation::File;
let _: TriagePriority = TriagePriority::Critical;
let _: DataScope = DataScope::User;
let _: OsScope = OsScope::Win10Plus;
let _: HiveTarget = HiveTarget::NtUser;
let _ = all_container_profiles();
let _ = all_container_signatures();
let _ = all_parsing_profiles();
let _ = all_record_signatures();
}
}