5#ifndef POLITICIAN_NO_STD_FUNCTION
22#define CAP_EAPOL_CSA 0x03
23#define CAP_EAPOL_HALF 0x04
24#define CAP_EAPOL_GROUP 0x05
28#define ATTACK_PMKID 0x01
29#define ATTACK_CSA 0x02
30#define ATTACK_PASSIVE 0x04
31#define ATTACK_DEAUTH 0x08
32#define ATTACK_STIMULATE 0x10
33#define ATTACK_ALL 0x1F
40#define LOG_FILTER_HANDSHAKES 0x01
41#define LOG_FILTER_PROBES 0x02
42#define LOG_FILTER_BEACONS 0x04
43#define LOG_FILTER_PROBE_REQ 0x08
44#define LOG_FILTER_MGMT_DISRUPT 0x10
45#define LOG_FILTER_ALL 0xFF
48#ifndef POLITICIAN_NO_STD_FUNCTION
49using LogCb = std::function<void(
const char *msg)>;
51typedef void (*
LogCb)(
const char *msg);
63typedef void (*
PacketCb)(
const uint8_t *payload, uint16_t len, int8_t rssi, uint8_t channel, uint32_t ts_usec);
181 uint8_t eapol_m2[256];
182 uint8_t sae_data[256];
187 uint16_t eapol_m2_len;
222typedef void (*
ClientFoundCb)(
const uint8_t *bssid,
const uint8_t *sta, int8_t rssi);
237#ifndef POLITICIAN_NO_STD_FUNCTION
280#define FP_MATCH_OUI 0x01
281#define FP_MATCH_PROBE_SSID 0x02
282#define FP_MATCH_HT_CAP 0x04
283#define FP_MATCH_RATES 0x08
284#define FP_MATCH_IE_FLAGS 0x10
287#define FP_IEF_NO_HT 0x01
288#define FP_IEF_NO_EXT_CAP 0x02
289#define FP_IEF_HAS_WMM 0x04
290#define FP_IEF_HAS_WPS 0x08
#define LOG_FILTER_HANDSHAKES
#define LOG_FILTER_PROBES
void(* EapolCb)(const HandshakeRecord &rec)
uint16_t channel_frames[200]
const char * soft_ap_ssid
bool deauth_reason_cycling
uint32_t probe_hidden_interval_ms
void(* AttackResultCb)(const AttackResultRecord &rec)
int(* TargetScoreCb)(const ApRecord &ap, const char *vendor)
bool skip_immune_networks
uint16_t hop_max_dwell_ms
void(* ProbeRequestCb)(const ProbeRequestRecord &rec)
bool capture_half_handshakes
uint16_t probe_aggr_interval_s
void(* ApFoundCb)(const ApRecord &ap)
void(* IdentityCb)(const EapIdentityRecord &rec)
uint16_t hop_min_dwell_ms
void(* ClientFoundCb)(const uint8_t *bssid, const uint8_t *sta, int8_t rssi)
bool require_active_clients
std::function< void(const char *msg)> LogCb
void(* PacketCb)(const uint8_t *payload, uint16_t len, int8_t rssi, uint8_t channel, uint32_t ts_usec)
uint8_t max_total_attempts
volatile uint32_t dropped
std::function< void(const RogueApRecord &rec)> RogueApCb
uint32_t session_timeout_ms
void(* DisruptCb)(const DisruptRecord &rec)
uint8_t deauth_burst_count
Snapshot of a discovered Access Point from the internal cache.
Identifies the AP and failure reason for a failed attack, delivered to the AttackResultCb callback.
Configuration for the Politician engine.
One fingerprint entry in the built-in or user-defined database.
A matched device, delivered to the DeviceFoundCb callback.
A deauthentication or disassociation frame observed on the air, delivered to the DisruptCb callback.
A harvested 802.1X Enterprise plaintext identity, delivered to the IdentityCb callback.
A captured handshake or PMKID record delivered to the EapolCb callback.
A probe request frame observed on the air, delivered to the ProbeRequestCb callback.
Fired when a second BSSID advertising the same SSID is observed on the same channel.
Cumulative frame and capture counters for the engine session.