Politician 1.0.0
WiFi Auditing Library for ESP32
Loading...
Searching...
No Matches
PoliticianTypes.h File Reference
#include <stdint.h>
#include "politician_compat.h"
+ Include dependency graph for PoliticianTypes.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  politician::Config
 Configuration for the Politician engine. More...
 
struct  politician::ApRecord
 Snapshot of a discovered Access Point from the internal cache. More...
 
struct  politician::Stats
 Cumulative frame and capture counters for the engine session. More...
 
struct  politician::HandshakeRecord
 A captured handshake or PMKID record delivered to the EapolCb callback. More...
 
struct  politician::AttackResultRecord
 Identifies the AP and failure reason for a failed attack, delivered to the AttackResultCb callback. More...
 
struct  politician::RogueApRecord
 Fired when a second BSSID advertising the same SSID is observed on the same channel. More...
 
struct  politician::EapIdentityRecord
 A harvested 802.1X Enterprise plaintext identity, delivered to the IdentityCb callback. More...
 
struct  politician::ProbeRequestRecord
 A probe request frame observed on the air, delivered to the ProbeRequestCb callback. More...
 
struct  politician::DisruptRecord
 A deauthentication or disassociation frame observed on the air, delivered to the DisruptCb callback. More...
 
struct  politician::DeviceFingerprint
 One fingerprint entry in the built-in or user-defined database. More...
 
struct  politician::DeviceRecord
 A matched device, delivered to the DeviceFoundCb callback. More...
 
union  politician::HandshakeRecord.__unnamed3__
 
union  politician::HandshakeRecord.__unnamed5__
 

Namespaces

namespace  politician
 

Macros

#define CAP_PMKID   0x01
 
#define CAP_EAPOL   0x02
 
#define CAP_EAPOL_CSA   0x03
 
#define CAP_EAPOL_HALF   0x04
 
#define CAP_EAPOL_GROUP   0x05
 
#define CAP_SAE   0x06
 
#define ATTACK_PMKID   0x01
 
#define ATTACK_CSA   0x02
 
#define ATTACK_PASSIVE   0x04
 
#define ATTACK_DEAUTH   0x08
 
#define ATTACK_STIMULATE   0x10
 
#define ATTACK_ALL   0x1F
 
#define LOG_FILTER_HANDSHAKES   0x01
 
#define LOG_FILTER_PROBES   0x02
 
#define LOG_FILTER_BEACONS   0x04
 
#define LOG_FILTER_PROBE_REQ   0x08
 
#define LOG_FILTER_MGMT_DISRUPT   0x10
 
#define LOG_FILTER_ALL   0xFF
 
#define FP_MATCH_OUI   0x01
 
#define FP_MATCH_PROBE_SSID   0x02
 
#define FP_MATCH_HT_CAP   0x04
 
#define FP_MATCH_RATES   0x08
 
#define FP_MATCH_IE_FLAGS   0x10
 
#define FP_IEF_NO_HT   0x01
 
#define FP_IEF_NO_EXT_CAP   0x02
 
#define FP_IEF_HAS_WMM   0x04
 
#define FP_IEF_HAS_WPS   0x08
 

Typedefs

typedef void(* politician::LogCb) (const char *msg)
 
typedef void(* politician::ApFoundCb) (const ApRecord &ap)
 
typedef int(* politician::TargetScoreCb) (const ApRecord &ap, const char *vendor)
 
typedef void(* politician::PacketCb) (const uint8_t *payload, uint16_t len, int8_t rssi, uint8_t channel, uint32_t ts_usec)
 
typedef void(* politician::EapolCb) (const HandshakeRecord &rec)
 
typedef void(* politician::IdentityCb) (const EapIdentityRecord &rec)
 
typedef void(* politician::ProbeRequestCb) (const ProbeRequestRecord &rec)
 
typedef void(* politician::DisruptCb) (const DisruptRecord &rec)
 
typedef void(* politician::AttackResultCb) (const AttackResultRecord &rec)
 
typedef void(* politician::ClientFoundCb) (const uint8_t *bssid, const uint8_t *sta, int8_t rssi)
 
typedef void(* politician::RogueApCb) (const RogueApRecord &rec)
 

Enumerations

enum  politician::Error {
  politician::OK = 0 ,
  politician::ERR_WIFI_INIT = 1 ,
  politician::ERR_INVALID_CH = 2 ,
  politician::ERR_NOT_ACTIVE = 3 ,
  politician::ERR_ALREADY_CAPTURED = 4 ,
  politician::ERR_NOT_FOUND = 5
}
 
enum  politician::DisconnectStrategy : uint8_t {
  politician::STRATEGY_AUTO_FALLBACK = 0 ,
  politician::STRATEGY_SIMULTANEOUS = 1
}
 
enum  politician::AttackResult : uint8_t {
  politician::RESULT_PMKID_EXHAUSTED = 1 ,
  politician::RESULT_CSA_EXPIRED = 2
}
 

Class Documentation

◆ politician::Config

struct politician::Config

Configuration for the Politician engine.

Definition at line 73 of file PoliticianTypes.h.

Class Members
uint32_t ap_expiry_ms = 300000
uint8_t capture_filter = LOG_FILTER_HANDSHAKES | LOG_FILTER_PROBES
bool capture_group_keys = false
bool capture_half_handshakes = false
uint8_t csa_beacon_count = 8
uint8_t csa_deauth_count = 15
uint32_t csa_wait_ms = 4000
uint8_t deauth_burst_count = 16
uint8_t deauth_reason = 7
bool deauth_reason_cycling = true
uint8_t enc_filter_mask = 0xFF
uint8_t fish_max_retries = 2
uint32_t fish_timeout_ms = 2000
uint16_t hop_dwell_ms = 200
uint16_t hop_max_dwell_ms = 400
uint16_t hop_min_dwell_ms = 50
uint32_t m1_lock_ms = 800
uint8_t max_total_attempts = 0
uint8_t min_beacon_count = 0
int8_t min_rssi = -100
uint16_t probe_aggr_interval_s = 30
uint32_t probe_hidden_interval_ms = 0
bool require_active_clients = false
uint32_t session_timeout_ms = 60000
bool skip_immune_networks = true
bool smart_hopping = true
char ssid_filter[33] = {}
bool ssid_filter_exact = true
uint8_t sta_filter[6] = {}
bool unicast_deauth = true

◆ politician::ApRecord

struct politician::ApRecord

Snapshot of a discovered Access Point from the internal cache.

Populated by getAp(), getApByBssid(), and the ApFoundCb callback.

Definition at line 108 of file PoliticianTypes.h.

Class Members
uint16_t beacon_interval
uint8_t bssid[6]
bool captured
uint8_t chan_util
uint8_t channel
char country[3]
uint8_t enc
uint32_t first_seen_ms
bool ft_capable
bool is_hidden
uint32_t last_seen_ms
uint8_t max_rate_mbps
uint8_t network_type
bool pmf_capable
bool pmf_required
int8_t rssi
char ssid[33]
uint8_t ssid_len
uint16_t sta_count
uint8_t total_attempts
uint8_t venue_group
uint8_t venue_type
bool wps_enabled

◆ politician::Stats

struct politician::Stats

Cumulative frame and capture counters for the engine session.

Accessible via getStats(), reset with resetStats().

Definition at line 136 of file PoliticianTypes.h.

Class Members
uint32_t beacons
uint32_t captures
uint16_t channel_frames[14]
uint32_t ctrl
uint32_t data
volatile uint32_t dropped
uint32_t eapol
uint32_t failed_csa
uint32_t failed_pmkid
uint32_t mgmt
uint32_t pmkid_found
uint32_t rb_max
uint32_t sae_found
uint32_t total

◆ politician::HandshakeRecord

struct politician::HandshakeRecord

A captured handshake or PMKID record delivered to the EapolCb callback.

The type field identifies the capture path; fields not relevant to that path are zeroed.

Definition at line 155 of file PoliticianTypes.h.

Class Members
union HandshakeRecord.__unnamed3__ __unnamed__
union HandshakeRecord.__unnamed5__ __unnamed__
uint8_t anonce[32]
uint8_t bssid[6]
uint8_t channel
uint8_t eapol_m3[256]
uint16_t eapol_m3_len
uint8_t eapol_m4[256]
uint16_t eapol_m4_len
uint8_t enc
bool has_anonce
bool has_m3
bool has_m4
bool has_mic
bool has_snonce
bool is_full
uint8_t mic[16]
uint8_t pmkid[16]
int8_t rssi
uint8_t sae_seq
uint8_t snonce[32]
char ssid[33]
uint8_t ssid_len
uint8_t sta[6]
uint8_t type

◆ politician::AttackResultRecord

struct politician::AttackResultRecord

Identifies the AP and failure reason for a failed attack, delivered to the AttackResultCb callback.

Definition at line 204 of file PoliticianTypes.h.

Class Members
uint8_t bssid[6]
AttackResult result
char ssid[33]
uint8_t ssid_len

◆ politician::RogueApRecord

struct politician::RogueApRecord

Fired when a second BSSID advertising the same SSID is observed on the same channel.

This indicates a potential evil twin or rogue AP. Both the known AP and the newcomer are included.

Definition at line 218 of file PoliticianTypes.h.

Class Members
uint8_t channel
uint8_t known_bssid[6]
uint8_t rogue_bssid[6]
int8_t rssi
char ssid[33]
uint8_t ssid_len

◆ politician::EapIdentityRecord

struct politician::EapIdentityRecord

A harvested 802.1X Enterprise plaintext identity, delivered to the IdentityCb callback.

Definition at line 231 of file PoliticianTypes.h.

Class Members
uint8_t bssid[6]
uint8_t channel
uint8_t client[6]
char identity[65]
int8_t rssi

◆ politician::ProbeRequestRecord

struct politician::ProbeRequestRecord

A probe request frame observed on the air, delivered to the ProbeRequestCb callback.

Definition at line 241 of file PoliticianTypes.h.

Class Members
uint8_t channel
uint8_t client[6]
bool rand_mac
int8_t rssi
char ssid[33]
uint8_t ssid_len

◆ politician::DisruptRecord

struct politician::DisruptRecord

A deauthentication or disassociation frame observed on the air, delivered to the DisruptCb callback.

Definition at line 252 of file PoliticianTypes.h.

Class Members
uint8_t bssid[6]
uint8_t channel
uint8_t dst[6]
bool rand_mac
uint16_t reason
int8_t rssi
uint8_t src[6]
uint8_t subtype

◆ politician::DeviceFingerprint

struct politician::DeviceFingerprint

One fingerprint entry in the built-in or user-defined database.

Definition at line 279 of file PoliticianTypes.h.

Class Members
uint8_t confidence
uint8_t ht_cap_info[2]
uint8_t ht_cap_mask[2]
uint8_t ie_flags
uint8_t ie_flags_mask
const char * model
uint8_t oui[3]
const char * probeSsid
uint8_t rate_sig[4]
const char * vendor

◆ politician::DeviceRecord

struct politician::DeviceRecord

A matched device, delivered to the DeviceFoundCb callback.

Definition at line 294 of file PoliticianTypes.h.

Class Members
uint8_t channel
uint8_t confidence
uint8_t mac[6]
uint8_t match_flags
char model[32]
int8_t rssi
char vendor[32]

◆ politician::HandshakeRecord.__unnamed3__

union politician::HandshakeRecord.__unnamed3__

Definition at line 170 of file PoliticianTypes.h.

Class Members
uint8_t eapol_m2[256]
uint8_t sae_data[256]

◆ politician::HandshakeRecord.__unnamed5__

union politician::HandshakeRecord.__unnamed5__

Definition at line 176 of file PoliticianTypes.h.

Class Members
uint16_t eapol_m2_len
uint16_t sae_len

Macro Definition Documentation

◆ ATTACK_ALL

#define ATTACK_ALL   0x1F

Definition at line 28 of file PoliticianTypes.h.

◆ ATTACK_CSA

#define ATTACK_CSA   0x02

Definition at line 24 of file PoliticianTypes.h.

◆ ATTACK_DEAUTH

#define ATTACK_DEAUTH   0x08

Definition at line 26 of file PoliticianTypes.h.

◆ ATTACK_PASSIVE

#define ATTACK_PASSIVE   0x04

Definition at line 25 of file PoliticianTypes.h.

◆ ATTACK_PMKID

#define ATTACK_PMKID   0x01

Definition at line 23 of file PoliticianTypes.h.

◆ ATTACK_STIMULATE

#define ATTACK_STIMULATE   0x10

Definition at line 27 of file PoliticianTypes.h.

◆ CAP_EAPOL

#define CAP_EAPOL   0x02

Definition at line 16 of file PoliticianTypes.h.

◆ CAP_EAPOL_CSA

#define CAP_EAPOL_CSA   0x03

Definition at line 17 of file PoliticianTypes.h.

◆ CAP_EAPOL_GROUP

#define CAP_EAPOL_GROUP   0x05

Definition at line 19 of file PoliticianTypes.h.

◆ CAP_EAPOL_HALF

#define CAP_EAPOL_HALF   0x04

Definition at line 18 of file PoliticianTypes.h.

◆ CAP_PMKID

#define CAP_PMKID   0x01

Definition at line 15 of file PoliticianTypes.h.

◆ CAP_SAE

#define CAP_SAE   0x06

Definition at line 20 of file PoliticianTypes.h.

◆ FP_IEF_HAS_WMM

#define FP_IEF_HAS_WMM   0x04

Definition at line 275 of file PoliticianTypes.h.

◆ FP_IEF_HAS_WPS

#define FP_IEF_HAS_WPS   0x08

Definition at line 276 of file PoliticianTypes.h.

◆ FP_IEF_NO_EXT_CAP

#define FP_IEF_NO_EXT_CAP   0x02

Definition at line 274 of file PoliticianTypes.h.

◆ FP_IEF_NO_HT

#define FP_IEF_NO_HT   0x01

Definition at line 273 of file PoliticianTypes.h.

◆ FP_MATCH_HT_CAP

#define FP_MATCH_HT_CAP   0x04

Definition at line 268 of file PoliticianTypes.h.

◆ FP_MATCH_IE_FLAGS

#define FP_MATCH_IE_FLAGS   0x10

Definition at line 270 of file PoliticianTypes.h.

◆ FP_MATCH_OUI

#define FP_MATCH_OUI   0x01

Definition at line 266 of file PoliticianTypes.h.

◆ FP_MATCH_PROBE_SSID

#define FP_MATCH_PROBE_SSID   0x02

Definition at line 267 of file PoliticianTypes.h.

◆ FP_MATCH_RATES

#define FP_MATCH_RATES   0x08

Definition at line 269 of file PoliticianTypes.h.

◆ LOG_FILTER_ALL

#define LOG_FILTER_ALL   0xFF

Definition at line 40 of file PoliticianTypes.h.

◆ LOG_FILTER_BEACONS

#define LOG_FILTER_BEACONS   0x04

Definition at line 37 of file PoliticianTypes.h.

◆ LOG_FILTER_HANDSHAKES

#define LOG_FILTER_HANDSHAKES   0x01

Definition at line 35 of file PoliticianTypes.h.

◆ LOG_FILTER_MGMT_DISRUPT

#define LOG_FILTER_MGMT_DISRUPT   0x10

Definition at line 39 of file PoliticianTypes.h.

◆ LOG_FILTER_PROBE_REQ

#define LOG_FILTER_PROBE_REQ   0x08

Definition at line 38 of file PoliticianTypes.h.

◆ LOG_FILTER_PROBES

#define LOG_FILTER_PROBES   0x02

Definition at line 36 of file PoliticianTypes.h.