parlov-analysis
Signal detection and oracle classification for parlov. Pure synchronous computation — no I/O, no async, no network stack.
trait
The caller drives an adaptive loop — collect pairs, call evaluate(), stop when Complete. All oracle semantics (how many samples, stability criteria, classification) live in the analyzer.
use it
use ExistenceAnalyzer;
use ;
let analyzer = ExistenceAnalyzer;
// feed it a growing ProbeSet
match analyzer.evaluate
existence oracle
ExistenceAnalyzer implements two detection layers:
- Layer 1 (code-blind): same status on first sample →
NotPresentimmediately. Different status → collect up to 3 pairs and check stability. - Layer 2 (RFC-informed): classifies stable differentials against a 30-pattern table —
403/404→Confirmed/High,409/201→Confirmed/High,304/404→Confirmed/High, etc. Each pattern carries a label, leaks description, and RFC section. Unrecognized stable differentials →Likely/Low.
adding an oracle
Implement Analyzer for a new oracle class:
;
The binary's adaptive loop works unchanged — it just calls evaluate() until Complete, regardless of how many samples the analyzer needs.
license
MIT OR Apache-2.0