wpa_common.c File Reference

#include "includes.h"
#include "common.h"
#include "crypto/md5.h"
#include "crypto/sha1.h"
#include "crypto/sha256.h"
#include "crypto/aes_wrap.h"
#include "crypto/crypto.h"
#include "ieee802_11_defs.h"
#include "defs.h"
Include dependency graph for wpa_common.c:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

static int rsn_key_mgmt_to_bitfield (const u8 *s)
void rsn_pmkid (const u8 *pmk, size_t pmk_len, const u8 *aa, const u8 *spa, u8 *pmkid, int use_sha256)
static int rsn_selector_to_bitfield (const u8 *s)
const char * wpa_cipher_txt (int cipher)
int wpa_compare_rsn_ie (int ft_initial_assoc, const u8 *ie1, size_t ie1len, const u8 *ie2, size_t ie2len)
int wpa_eapol_key_mic (const u8 *key, int ver, const u8 *buf, size_t len, u8 *mic)
const char * wpa_key_mgmt_txt (int key_mgmt, int proto)
int wpa_parse_wpa_ie_rsn (const u8 *rsn_ie, size_t rsn_ie_len, struct wpa_ie_data *data)
void wpa_pmk_to_ptk (const u8 *pmk, size_t pmk_len, const char *label, const u8 *addr1, const u8 *addr2, const u8 *nonce1, const u8 *nonce2, u8 *ptk, size_t ptk_len, int use_sha256)

Function Documentation

static int rsn_key_mgmt_to_bitfield ( const u8 s  )  [static]

Definition at line 213 of file wpa_common.c.

void rsn_pmkid ( const u8 pmk,
size_t  pmk_len,
const u8 aa,
const u8 spa,
u8 pmkid,
int  use_sha256 
)

rsn_pmkid - Calculate PMK identifier : Pairwise master key : Length of pmk in bytes : Authenticator address : Supplicant address : Buffer for PMKID : Whether to use SHA256-based KDF

IEEE Std 802.11i-2004 - 8.5.1.2 Pairwise key hierarchy PMKID = HMAC-SHA1-128(PMK, "PMK Name" || AA || SPA)

Definition at line 585 of file wpa_common.c.

static int rsn_selector_to_bitfield ( const u8 s  )  [static]

Definition at line 193 of file wpa_common.c.

const char* wpa_cipher_txt ( int  cipher  ) 

wpa_cipher_txt - Convert cipher suite to a text string : Cipher suite (WPA_CIPHER_* enum) Returns: Pointer to a text string of the cipher suite name

Definition at line 612 of file wpa_common.c.

int wpa_compare_rsn_ie ( int  ft_initial_assoc,
const u8 ie1,
size_t  ie1len,
const u8 ie2,
size_t  ie2len 
)

Definition at line 674 of file wpa_common.c.

int wpa_eapol_key_mic ( const u8 key,
int  ver,
const u8 buf,
size_t  len,
u8 mic 
)

wpa_eapol_key_mic - Calculate EAPOL-Key MIC : EAPOL-Key Key Confirmation Key (KCK) : Key descriptor version (WPA_KEY_INFO_TYPE_*) : Pointer to the beginning of the EAPOL header (version field) : Length of the EAPOL frame (from EAPOL header to the end of the frame) : Pointer to the buffer to which the EAPOL-Key MIC is written Returns: 0 on success, -1 on failure

Calculate EAPOL-Key MIC for an EAPOL-Key packet. The EAPOL-Key MIC field has to be cleared (all zeroes) when calling this function.

Note: 'IEEE Std 802.11i-2004 - 8.5.2 EAPOL-Key frames' has an error in the description of the Key MIC calculation. It includes packet data from the beginning of the EAPOL-Key header, not EAPOL header. This incorrect change happened during final editing of the standard and the correct behavior is defined in the last draft (IEEE 802.11i/D10).

Definition at line 46 of file wpa_common.c.

const char* wpa_key_mgmt_txt ( int  key_mgmt,
int  proto 
)

wpa_key_mgmt_txt - Convert key management suite to a text string : Key management suite (WPA_KEY_MGMT_* enum) : WPA/WPA2 version (WPA_PROTO_*) Returns: Pointer to a text string of the key management suite name

Definition at line 639 of file wpa_common.c.

int wpa_parse_wpa_ie_rsn ( const u8 rsn_ie,
size_t  rsn_ie_len,
struct wpa_ie_data data 
)

wpa_parse_wpa_ie_rsn - Parse RSN IE : Buffer containing RSN IE : RSN IE buffer length (including IE number and length octets) : Pointer to structure that will be filled in with parsed data Returns: 0 on success, <0 on failure

Definition at line 243 of file wpa_common.c.

void wpa_pmk_to_ptk ( const u8 pmk,
size_t  pmk_len,
const char *  label,
const u8 addr1,
const u8 addr2,
const u8 nonce1,
const u8 nonce2,
u8 ptk,
size_t  ptk_len,
int  use_sha256 
)

wpa_pmk_to_ptk - Calculate PTK from PMK, addresses, and nonces : Pairwise master key : Length of PMK : Label to use in derivation : AA or SA : SA or AA : ANonce or SNonce : SNonce or ANonce : Buffer for pairwise transient key : Length of PTK : Whether to use SHA256-based KDF

IEEE Std 802.11i-2004 - 8.5.1.2 Pairwise key hierarchy PTK = PRF-X(PMK, "Pairwise key expansion", Min(AA, SA) || Max(AA, SA) || Min(ANonce, SNonce) || Max(ANonce, SNonce))

STK = PRF-X(SMK, "Peer key expansion", Min(MAC_I, MAC_P) || Max(MAC_I, MAC_P) || Min(INonce, PNonce) || Max(INonce, PNonce))

Definition at line 93 of file wpa_common.c.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines


wpa_supplicant
Author(s): Package maintained by Blaise Gassend
autogenerated on Fri Jan 11 10:05:07 2013