diff options
author | sam <sam@FreeBSD.org> | 2007-07-11 15:48:36 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2007-07-11 15:48:36 +0000 |
commit | 35aef052ff21baa52c4cec68b512986c21f70a48 (patch) | |
tree | c3da7f33886a852f7dceb74373fbdeec49a48f77 /contrib/wpa_supplicant/wpa_i.h | |
parent | 840099f34d8de1ca769f02fae379c4d8e5d6688a (diff) | |
download | FreeBSD-src-35aef052ff21baa52c4cec68b512986c21f70a48.zip FreeBSD-src-35aef052ff21baa52c4cec68b512986c21f70a48.tar.gz |
Import of WPA supplicant 0.5.8
Diffstat (limited to 'contrib/wpa_supplicant/wpa_i.h')
-rw-r--r-- | contrib/wpa_supplicant/wpa_i.h | 77 |
1 files changed, 53 insertions, 24 deletions
diff --git a/contrib/wpa_supplicant/wpa_i.h b/contrib/wpa_supplicant/wpa_i.h index 4442832..b5adb5e 100644 --- a/contrib/wpa_supplicant/wpa_i.h +++ b/contrib/wpa_supplicant/wpa_i.h @@ -1,6 +1,6 @@ /* * wpa_supplicant - Internal WPA state machine definitions - * Copyright (c) 2004-2005, Jouni Malinen <jkmaline@cc.hut.fi> + * Copyright (c) 2004-2006, Jouni Malinen <j@w1.fi> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -15,12 +15,12 @@ #ifndef WPA_I_H #define WPA_I_H -#define WPA_NONCE_LEN 32 -#define WPA_REPLAY_COUNTER_LEN 8 - - struct rsn_pmksa_candidate; +#ifdef _MSC_VER +#pragma pack(push, 1) +#endif /* _MSC_VER */ + /** * struct wpa_ptk - WPA Pairwise Transient Key * IEEE Std 802.11i-2004 - 8.5.1.2 Pairwise key hierarchy @@ -36,24 +36,40 @@ struct wpa_ptk { u8 rx_mic_key[8]; } auth; } u; -} __attribute__ ((packed)); - - -/** - * struct rsn_pmksa_cache - PMKSA cache entry - */ -struct rsn_pmksa_cache { - struct rsn_pmksa_cache *next; - u8 pmkid[PMKID_LEN]; - u8 pmk[PMK_LEN]; - size_t pmk_len; - time_t expiration; - time_t reauth_time; - int akmp; /* WPA_KEY_MGMT_* */ - u8 aa[ETH_ALEN]; - struct wpa_ssid *ssid; - int opportunistic; +} STRUCT_PACKED; + +#ifdef _MSC_VER +#pragma pack(pop) +#endif /* _MSC_VER */ + + +#ifdef CONFIG_PEERKEY +#define PEERKEY_MAX_IE_LEN 80 +struct wpa_peerkey { + struct wpa_peerkey *next; + int initiator; /* whether this end was initator for SMK handshake */ + u8 addr[ETH_ALEN]; /* other end MAC address */ + u8 inonce[WPA_NONCE_LEN]; /* Initiator Nonce */ + u8 pnonce[WPA_NONCE_LEN]; /* Peer Nonce */ + u8 rsnie_i[PEERKEY_MAX_IE_LEN]; /* Initiator RSN IE */ + size_t rsnie_i_len; + u8 rsnie_p[PEERKEY_MAX_IE_LEN]; /* Peer RSN IE */ + size_t rsnie_p_len; + u8 smk[PMK_LEN]; + int smk_complete; + u8 smkid[PMKID_LEN]; + u32 lifetime; + os_time_t expiration; + int cipher; /* Selected cipher (WPA_CIPHER_*) */ + u8 replay_counter[WPA_REPLAY_COUNTER_LEN]; + int replay_counter_set; + + struct wpa_ptk stk, tstk; + int stk_set, tstk_set; }; +#else /* CONFIG_PEERKEY */ +struct wpa_peerkey; +#endif /* CONFIG_PEERKEY */ /** @@ -74,11 +90,11 @@ struct wpa_sm { struct eapol_sm *eapol; /* EAPOL state machine from upper level code */ struct rsn_pmksa_cache *pmksa; /* PMKSA cache */ - struct rsn_pmksa_cache *cur_pmksa; /* current PMKSA entry */ - int pmksa_count; /* number of entries in PMKSA cache */ + struct rsn_pmksa_cache_entry *cur_pmksa; /* current PMKSA entry */ struct rsn_pmksa_candidate *pmksa_candidates; struct l2_packet_data *l2_preauth; + struct l2_packet_data *l2_preauth_br; u8 preauth_bssid[ETH_ALEN]; /* current RSN pre-auth peer or * 00:00:00:00:00:00 if no pre-auth is * in progress */ @@ -93,6 +109,7 @@ struct wpa_sm { u8 own_addr[ETH_ALEN]; const char *ifname; + const char *bridge_ifname; u8 bssid[ETH_ALEN]; unsigned int dot11RSNAConfigPMKLifetime; @@ -106,11 +123,16 @@ struct wpa_sm { unsigned int pairwise_cipher; unsigned int group_cipher; unsigned int key_mgmt; + unsigned int mgmt_group_cipher; u8 *assoc_wpa_ie; /* Own WPA/RSN IE from (Re)AssocReq */ size_t assoc_wpa_ie_len; u8 *ap_wpa_ie, *ap_rsn_ie; size_t ap_wpa_ie_len, ap_rsn_ie_len; + +#ifdef CONFIG_PEERKEY + struct wpa_peerkey *peerkey; +#endif /* CONFIG_PEERKEY */ }; @@ -194,4 +216,11 @@ static inline int wpa_sm_remove_pmkid(struct wpa_sm *sm, const u8 *bssid, return sm->ctx->remove_pmkid(sm->ctx->ctx, bssid, pmkid); } +static inline int wpa_sm_mlme_setprotection(struct wpa_sm *sm, const u8 *addr, + int protect_type, int key_type) +{ + return sm->ctx->mlme_setprotection(sm->ctx->ctx, addr, protect_type, + key_type); +} + #endif /* WPA_I_H */ |