pub struct VerifyConfig {
pub timeout: Duration,
pub max_concurrent_per_service: usize,
pub max_concurrent_global: usize,
pub max_inflight_keys: usize,
pub danger_allow_private_ips: bool,
pub danger_allow_http: bool,
pub proxy: Option<String>,
pub insecure_tls: bool,
}Expand description
Runtime configuration for live verification.
Config-surface boundary: VerifyConfig is an orthogonal subsystem
config, NOT part of the detection/bench config surface. Only
ScanConfig + ScannerConfig (+ nested MultilineConfig) influence
detection accuracy and are exercised by the benchmark. VerifyConfig
governs live HTTP verification (network I/O, concurrency, proxy, TLS)
and is constructed only on the --verify path
(cli/src/orchestrator/postprocess.rs); the bench runs with
--no-verification and never touches it. The sibling orthogonal configs
are OobConfig (verifier/src/oob/session.rs, --verify-oob only),
HttpClientConfig (sources/src/http.rs, per-source network I/O),
MegakernelSessionConfig (scanner GPU slot geometry), and
AwsSigV4Config (S3 request signing). Do NOT fold any of these into the
canonical scan config: they are legitimately separate axes.
Fields§
§timeout: DurationEnd-to-end timeout for one verification attempt.
max_concurrent_per_service: usizeMaximum concurrent requests allowed per service.
max_concurrent_global: usizeMaximum concurrent verification tasks overall.
max_inflight_keys: usizeUpper bound for distinct in-flight deduplication keys.
danger_allow_private_ips: boolWhether to skip SSRF protection for private IP addresses.
danger_allow_http: boolWhether to allow plaintext HTTP verification URLs. Default false:
production paths must use HTTPS so credentials are never sent in the
clear. Test fixtures (mock HTTP servers, in-memory listeners) opt in.
proxy: Option<String>Explicit upstream proxy URL applied to every verifier request and OOB
poll. None falls back to the KEYHOG_PROXY env var; literal "off"
disables proxying entirely. Until this was added, --proxy only
reached the WebSource scanner - verification traffic and interactsh
polls bypassed it silently, surprising operators who pointed Burp at
keyhog and saw only half the traffic.
insecure_tls: boolAccept invalid / self-signed TLS certs for verifier + OOB traffic. Off by default. Required when intercepting through a MITM proxy (Burp, mitmproxy) that re-signs HTTPS with its own CA.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for VerifyConfig
impl RefUnwindSafe for VerifyConfig
impl Send for VerifyConfig
impl Sync for VerifyConfig
impl Unpin for VerifyConfig
impl UnsafeUnpin for VerifyConfig
impl UnwindSafe for VerifyConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more