intel/Cargo.toml
[package]
name = "holger-intel"
version = "3.1.2"
edition = "2021"
authors = ["Ignalina ApS", "Vetra Automation AB"]
description = "Holger offline vulnerability intelligence: OSV / NVD / CISA KEV normalized into one advisory set, carried across the airgap as a signed holger.update-bundle/v1 (product holger.intel/v1), verified with anti-rollback, and kept in a persistent local advisory database the scanners read. Network-free unless the `fetch` feature is on."
license = "AGPL-3.0-only"
repository = "https://git.gunnar.rs/nordisk/holger"
[lib]
name = "holger_intel"
# NETWORK-FREE by default. The only HTTP client is `ureq`, behind `fetch`, which
# only the ONLINE side (`holger-server intel build`, server-cli `online`) turns on.
# build-space/tests/auth_ship_small.rs asserts the default tree links no client.
[dependencies]
holger-update-bundle = { version = "3.0.0", path = "../update-bundle" }
# The verdict logic, the OSV / NVD / KEV parsers and the advisory model live in
# modgunn; this crate only normalizes, carries and stores them. Lean `scan` only.
modgunn = { version = "0.0.9", default-features = false, features = ["scan"] }
# Reads every member of an OSV per-ecosystem `all.zip` dump, bounded.
zip_entry = { package = "holger-zip-entry", version = "3.1.0", path = "../server/repository/zip-entry" }
# The NVD JSON 2.0 feeds ship gzip-compressed.
flate2 = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
chrono = { version = "0.4", features = ["serde", "clock"] }
anyhow = "1"
thiserror = "2"
ureq = { version = "3", default-features = false, features = ["rustls"], optional = true }
[features]
default = []
# The online side's HTTP fetcher. Never on in an airgap tier.
fetch = ["dep:ureq"]
[dev-dependencies]
# Test-only PKI: mint ed25519 signer certs in-process — never a committed key.
rcgen = "0.14"
tempfile = "3"
zip_entry = { package = "holger-zip-entry", version = "3.1.0", path = "../server/repository/zip-entry", features = ["fixtures"] }