Go to the documentation of this file.00001
00023 #ifndef _WPA_H_
00024 #define _WPA_H_
00025
00026 #include <asm/types.h>
00027 #include "common.h"
00028
00029 #define MAX_WPA_KEY_LEN 32
00030
00031 #define WPA_ELEMENT 0xDD
00032 #define RSN_ELEMENT 0x30
00033
00034 #define WPA_VERSION 1
00035 #define RSN_VERSION 1
00036
00037 #define CIPHER_SUITE_LEN 4
00038
00039 struct rsn_ie_t {
00040 guint8 element_id;
00041 guint8 length;
00042 guint16 version;
00043 } __attribute__ ((packed));
00044
00045 struct wpa_ie_t {
00046 guint8 element_id;
00047 guint8 length;
00048 guint8 oui[3];
00049 guint8 oui_type;
00050 guint16 version;
00051 } __attribute__ ((packed));
00052
00053 typedef struct ap_info_t {
00054 guint pairwise_cipher;
00055 guint group_cipher;
00056 guint key_mgmt;
00057 } ap_info_t;
00058
00059 int handle_mic_failure(gboolean key_type, unsigned char *bssid);
00060 int parse_rsn_ie(unsigned char* wpa_ie, unsigned int wpa_ie_len,
00061 struct ap_info_t* ap_info);
00062 int parse_wpa_ie(unsigned char* wpa_ie, unsigned int wpa_ie_len,
00063 struct ap_info_t* ap_info);
00064 void handle_wps_ie(unsigned char* p, struct scan_results_t *scan_results,
00065 unsigned int length);
00066 gboolean is_ap_in_black_list(unsigned char* bssid);
00067
00068 gint nl80211_encryption_method(guint32 cipher,
00069 struct wlan_status_t *wlan_status);
00070
00071 #endif