wpa_supplicant / hostapd
2.5
|
wpa_supplicant - WPA definitions More...
#include "common/defs.h"
#include "common/eapol_common.h"
#include "common/wpa_common.h"
#include "common/ieee802_11_defs.h"
Go to the source code of this file.
Data Structures | |
struct | wpa_sm_ctx |
struct | rsn_supp_config |
Functions | |
struct wpa_sm * | wpa_sm_init (struct wpa_sm_ctx *ctx) |
Initialize WPA state machine. More... | |
void | wpa_sm_deinit (struct wpa_sm *sm) |
Deinitialize WPA state machine. More... | |
void | wpa_sm_notify_assoc (struct wpa_sm *sm, const u8 *bssid) |
Notify WPA state machine about association. More... | |
void | wpa_sm_notify_disassoc (struct wpa_sm *sm) |
Notify WPA state machine about disassociation. More... | |
void | wpa_sm_set_pmk (struct wpa_sm *sm, const u8 *pmk, size_t pmk_len, const u8 *bssid) |
Set PMK. More... | |
void | wpa_sm_set_pmk_from_pmksa (struct wpa_sm *sm) |
Set PMK based on the current PMKSA. More... | |
void | wpa_sm_set_fast_reauth (struct wpa_sm *sm, int fast_reauth) |
Set fast reauthentication (EAP) enabled/disabled. More... | |
void | wpa_sm_set_scard_ctx (struct wpa_sm *sm, void *scard_ctx) |
Set context pointer for smartcard callbacks. More... | |
void | wpa_sm_set_config (struct wpa_sm *sm, struct rsn_supp_config *config) |
Notification of current configration change. More... | |
void | wpa_sm_set_own_addr (struct wpa_sm *sm, const u8 *addr) |
Set own MAC address. More... | |
void | wpa_sm_set_ifname (struct wpa_sm *sm, const char *ifname, const char *bridge_ifname) |
Set network interface name. More... | |
void | wpa_sm_set_eapol (struct wpa_sm *sm, struct eapol_sm *eapol) |
Set EAPOL state machine pointer. More... | |
int | wpa_sm_set_assoc_wpa_ie (struct wpa_sm *sm, const u8 *ie, size_t len) |
Set own WPA/RSN IE from (Re)AssocReq. More... | |
int | wpa_sm_set_assoc_wpa_ie_default (struct wpa_sm *sm, u8 *wpa_ie, size_t *wpa_ie_len) |
Generate own WPA/RSN IE from configuration. More... | |
int | wpa_sm_set_ap_wpa_ie (struct wpa_sm *sm, const u8 *ie, size_t len) |
Set AP WPA IE from Beacon/ProbeResp. More... | |
int | wpa_sm_set_ap_rsn_ie (struct wpa_sm *sm, const u8 *ie, size_t len) |
Set AP RSN IE from Beacon/ProbeResp. More... | |
int | wpa_sm_get_mib (struct wpa_sm *sm, char *buf, size_t buflen) |
Dump text list of MIB entries. More... | |
int | wpa_sm_set_param (struct wpa_sm *sm, enum wpa_sm_conf_params param, unsigned int value) |
Set WPA state machine parameters. More... | |
int | wpa_sm_get_status (struct wpa_sm *sm, char *buf, size_t buflen, int verbose) |
Get WPA state machine. More... | |
int | wpa_sm_pmf_enabled (struct wpa_sm *sm) |
void | wpa_sm_key_request (struct wpa_sm *sm, int error, int pairwise) |
Send EAPOL-Key Request. More... | |
int | wpa_parse_wpa_ie (const u8 *wpa_ie, size_t wpa_ie_len, struct wpa_ie_data *data) |
Parse WPA/RSN IE. More... | |
void | wpa_sm_aborted_cached (struct wpa_sm *sm) |
Notify WPA that PMKSA caching was aborted. More... | |
int | wpa_sm_rx_eapol (struct wpa_sm *sm, const u8 *src_addr, const u8 *buf, size_t len) |
Process received WPA EAPOL frames. More... | |
int | wpa_sm_parse_own_wpa_ie (struct wpa_sm *sm, struct wpa_ie_data *data) |
Parse own WPA/RSN IE. More... | |
int | wpa_sm_pmksa_cache_list (struct wpa_sm *sm, char *buf, size_t len) |
void | wpa_sm_drop_sa (struct wpa_sm *sm) |
int | wpa_sm_has_ptk (struct wpa_sm *sm) |
void | wpa_sm_update_replay_ctr (struct wpa_sm *sm, const u8 *replay_ctr) |
void | wpa_sm_pmksa_cache_flush (struct wpa_sm *sm, void *network_ctx) |
int | wpa_sm_get_p2p_ip_addr (struct wpa_sm *sm, u8 *buf) |
void | wpa_sm_set_rx_replay_ctr (struct wpa_sm *sm, const u8 *rx_replay_counter) |
void | wpa_sm_set_ptk_kck_kek (struct wpa_sm *sm, const u8 *ptk_kck, size_t ptk_kck_len, const u8 *ptk_kek, size_t ptk_kek_len) |
void | wpa_tdls_ap_ies (struct wpa_sm *sm, const u8 *ies, size_t len) |
void | wpa_tdls_assoc_resp_ies (struct wpa_sm *sm, const u8 *ies, size_t len) |
int | wpa_tdls_start (struct wpa_sm *sm, const u8 *addr) |
Initiate TDLS handshake (send TPK Handshake Message 1) More... | |
void | wpa_tdls_remove (struct wpa_sm *sm, const u8 *addr) |
int | wpa_tdls_teardown_link (struct wpa_sm *sm, const u8 *addr, u16 reason_code) |
int | wpa_tdls_send_discovery_request (struct wpa_sm *sm, const u8 *addr) |
int | wpa_tdls_init (struct wpa_sm *sm) |
Initialize driver interface parameters for TDLS. More... | |
void | wpa_tdls_teardown_peers (struct wpa_sm *sm) |
void | wpa_tdls_deinit (struct wpa_sm *sm) |
Deinitialize driver interface parameters for TDLS. More... | |
void | wpa_tdls_enable (struct wpa_sm *sm, int enabled) |
void | wpa_tdls_disable_unreachable_link (struct wpa_sm *sm, const u8 *addr) |
const char * | wpa_tdls_get_link_status (struct wpa_sm *sm, const u8 *addr) |
int | wpa_tdls_is_external_setup (struct wpa_sm *sm) |
int | wpa_tdls_enable_chan_switch (struct wpa_sm *sm, const u8 *addr, u8 oper_class, struct hostapd_freq_params *freq_params) |
int | wpa_tdls_disable_chan_switch (struct wpa_sm *sm, const u8 *addr) |
int | wpa_wnmsleep_install_key (struct wpa_sm *sm, u8 subelem_id, u8 *buf) |
wpa_supplicant - WPA definitions
int wpa_parse_wpa_ie | ( | const u8 * | wpa_ie, |
size_t | wpa_ie_len, | ||
struct wpa_ie_data * | data | ||
) |
Parse WPA/RSN IE.
wpa_ie | Pointer to WPA or RSN IE |
wpa_ie_len | Length of the WPA/RSN IE |
data | Pointer to data area for parsing results |
Parse the contents of WPA or RSN IE and write the parsed data into data.
void wpa_sm_aborted_cached | ( | struct wpa_sm * | sm | ) |
Notify WPA that PMKSA caching was aborted.
sm | Pointer to WPA state machine data from wpa_sm_init() |
void wpa_sm_deinit | ( | struct wpa_sm * | sm | ) |
Deinitialize WPA state machine.
sm | Pointer to WPA state machine data from wpa_sm_init() |
int wpa_sm_get_mib | ( | struct wpa_sm * | sm, |
char * | buf, | ||
size_t | buflen | ||
) |
Dump text list of MIB entries.
sm | Pointer to WPA state machine data from wpa_sm_init() |
buf | Buffer for the list |
buflen | Length of the buffer |
This function is used fetch dot11 MIB variables.
int wpa_sm_get_status | ( | struct wpa_sm * | sm, |
char * | buf, | ||
size_t | buflen, | ||
int | verbose | ||
) |
Get WPA state machine.
sm | Pointer to WPA state machine data from wpa_sm_init() |
buf | Buffer for status information |
buflen | Maximum buffer length |
verbose | Whether to include verbose status information |
Query WPA state machine for status information. This function fills in a text area with current status information. If the buffer (buf) is not large enough, status information will be truncated to fit the buffer.
struct wpa_sm* wpa_sm_init | ( | struct wpa_sm_ctx * | ctx | ) |
Initialize WPA state machine.
ctx | Context pointer for callbacks; this needs to be an allocated buffer |
This function is used to allocate a new WPA state machine and the returned value is passed to all WPA state machine calls.
void wpa_sm_key_request | ( | struct wpa_sm * | sm, |
int | error, | ||
int | pairwise | ||
) |
Send EAPOL-Key Request.
sm | Pointer to WPA state machine data from wpa_sm_init() |
error | Indicate whether this is an Michael MIC error report |
pairwise | 1 = error report for pairwise packet, 0 = for group packet |
Send an EAPOL-Key Request to the current authenticator. This function is used to request rekeying and it is usually called when a local Michael MIC failure is detected.
void wpa_sm_notify_assoc | ( | struct wpa_sm * | sm, |
const u8 * | bssid | ||
) |
Notify WPA state machine about association.
sm | Pointer to WPA state machine data from wpa_sm_init() |
bssid | The BSSID of the new association |
This function is called to let WPA state machine know that the connection was established.
void wpa_sm_notify_disassoc | ( | struct wpa_sm * | sm | ) |
Notify WPA state machine about disassociation.
sm | Pointer to WPA state machine data from wpa_sm_init() |
This function is called to let WPA state machine know that the connection was lost. This will abort any existing pre-authentication session.
int wpa_sm_parse_own_wpa_ie | ( | struct wpa_sm * | sm, |
struct wpa_ie_data * | data | ||
) |
Parse own WPA/RSN IE.
sm | Pointer to WPA state machine data from wpa_sm_init() |
data | Pointer to data area for parsing results |
Parse the contents of the own WPA or RSN IE from (Re)AssocReq and write the parsed data into data.
int wpa_sm_rx_eapol | ( | struct wpa_sm * | sm, |
const u8 * | src_addr, | ||
const u8 * | buf, | ||
size_t | len | ||
) |
Process received WPA EAPOL frames.
sm | Pointer to WPA state machine data from wpa_sm_init() |
src_addr | Source MAC address of the EAPOL packet |
buf | Pointer to the beginning of the EAPOL data (EAPOL header) |
len | Length of the EAPOL frame |
This function is called for each received EAPOL frame. Other than EAPOL-Key frames can be skipped if filtering is done elsewhere. wpa_sm_rx_eapol() is only processing WPA and WPA2 EAPOL-Key frames.
The received EAPOL-Key packets are validated and valid packets are replied to. In addition, key material (PTK, GTK) is configured at the end of a successful key handshake.
int wpa_sm_set_ap_rsn_ie | ( | struct wpa_sm * | sm, |
const u8 * | ie, | ||
size_t | len | ||
) |
Set AP RSN IE from Beacon/ProbeResp.
sm | Pointer to WPA state machine data from wpa_sm_init() |
ie | Pointer to IE data (starting from id) |
len | IE length |
Inform WPA state machine about the RSN IE used in Beacon / Probe Response frame.
int wpa_sm_set_ap_wpa_ie | ( | struct wpa_sm * | sm, |
const u8 * | ie, | ||
size_t | len | ||
) |
Set AP WPA IE from Beacon/ProbeResp.
sm | Pointer to WPA state machine data from wpa_sm_init() |
ie | Pointer to IE data (starting from id) |
len | IE length |
Inform WPA state machine about the WPA IE used in Beacon / Probe Response frame.
int wpa_sm_set_assoc_wpa_ie | ( | struct wpa_sm * | sm, |
const u8 * | ie, | ||
size_t | len | ||
) |
Set own WPA/RSN IE from (Re)AssocReq.
sm | Pointer to WPA state machine data from wpa_sm_init() |
ie | Pointer to IE data (starting from id) |
len | IE length |
Inform WPA state machine about the WPA/RSN IE used in (Re)Association Request frame. The IE will be used to override the default value generated with wpa_sm_set_assoc_wpa_ie_default().
int wpa_sm_set_assoc_wpa_ie_default | ( | struct wpa_sm * | sm, |
u8 * | wpa_ie, | ||
size_t * | wpa_ie_len | ||
) |
Generate own WPA/RSN IE from configuration.
sm | Pointer to WPA state machine data from wpa_sm_init() |
wpa_ie | Pointer to buffer for WPA/RSN IE |
wpa_ie_len | Pointer to the length of the wpa_ie buffer |
void wpa_sm_set_config | ( | struct wpa_sm * | sm, |
struct rsn_supp_config * | config | ||
) |
Notification of current configration change.
sm | Pointer to WPA state machine data from wpa_sm_init() |
config | Pointer to current network configuration |
Notify WPA state machine that configuration has changed. config will be stored as a backpointer to network configuration. This can be NULL to clear the stored pointed.
Set EAPOL state machine pointer.
sm | Pointer to WPA state machine data from wpa_sm_init() |
eapol | Pointer to EAPOL state machine allocated with eapol_sm_init() |
void wpa_sm_set_fast_reauth | ( | struct wpa_sm * | sm, |
int | fast_reauth | ||
) |
Set fast reauthentication (EAP) enabled/disabled.
sm | Pointer to WPA state machine data from wpa_sm_init() |
fast_reauth | Whether fast reauthentication (EAP) is allowed |
void wpa_sm_set_ifname | ( | struct wpa_sm * | sm, |
const char * | ifname, | ||
const char * | bridge_ifname | ||
) |
Set network interface name.
sm | Pointer to WPA state machine data from wpa_sm_init() |
ifname | Interface name |
bridge_ifname | Optional bridge interface name (for pre-auth) |
void wpa_sm_set_own_addr | ( | struct wpa_sm * | sm, |
const u8 * | addr | ||
) |
Set own MAC address.
sm | Pointer to WPA state machine data from wpa_sm_init() |
addr | Own MAC address |
int wpa_sm_set_param | ( | struct wpa_sm * | sm, |
enum wpa_sm_conf_params | param, | ||
unsigned int | value | ||
) |
Set WPA state machine parameters.
sm | Pointer to WPA state machine data from wpa_sm_init() |
param | Parameter field |
value | Parameter value |
void wpa_sm_set_pmk | ( | struct wpa_sm * | sm, |
const u8 * | pmk, | ||
size_t | pmk_len, | ||
const u8 * | bssid | ||
) |
Set PMK.
sm | Pointer to WPA state machine data from wpa_sm_init() |
pmk | The new PMK |
pmk_len | The length of the new PMK in bytes |
bssid | AA to add into PMKSA cache or NULL to not cache the PMK |
Configure the PMK for WPA state machine.
void wpa_sm_set_pmk_from_pmksa | ( | struct wpa_sm * | sm | ) |
Set PMK based on the current PMKSA.
sm | Pointer to WPA state machine data from wpa_sm_init() |
Take the PMK from the current PMKSA into use. If no PMKSA is active, the PMK will be cleared.
void wpa_sm_set_scard_ctx | ( | struct wpa_sm * | sm, |
void * | scard_ctx | ||
) |
Set context pointer for smartcard callbacks.
sm | Pointer to WPA state machine data from wpa_sm_init() |
scard_ctx | Context pointer for smartcard related callback functions |
void wpa_tdls_deinit | ( | struct wpa_sm * | sm | ) |
Deinitialize driver interface parameters for TDLS.
This function is called to recover driver interface parameters for TDLS and frees resources allocated for it.
int wpa_tdls_init | ( | struct wpa_sm * | sm | ) |
Initialize driver interface parameters for TDLS.
wpa_s | Pointer to wpa_supplicant data |
This function is called to initialize driver interface parameters for TDLS. wpa_drv_init() must have been called before this function to initialize the driver interface.
int wpa_tdls_start | ( | struct wpa_sm * | sm, |
const u8 * | addr | ||
) |
Initiate TDLS handshake (send TPK Handshake Message 1)
sm | Pointer to WPA state machine data from wpa_sm_init() |
peer | MAC address of the peer STA |
Send TPK Handshake Message 1 info to driver to start TDLS handshake with the peer.