wlan.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <linux/types.h>
#include <linux/socket.h>
#include <linux/if.h>
#include <linux/wireless.h>
#include <net/ethernet.h>
#include "hd.h"
#include "hd_int.h"
#include "wlan.h"

Data Structures

struct  wpa_driver_ops
struct  prism2_hostapd_param
struct  ieee80211req_key
struct  ipw_param
struct  atmel_param
struct  wpa_key
struct  wpa_driver_wext_data

Defines

#define AUTH_ALG_OPEN_SYSTEM   0x01
#define AUTH_ALG_SHARED_KEY   0x02
#define AUTH_ALG_LEAP   0x04
#define PRISM2_IOCTL_PRISM2_PARAM   (SIOCIWFIRSTPRIV + 0)
#define PRISM2_IOCTL_HOSTAPD   (SIOCDEVPRIVATE + 14)
#define HOSTAP_CRYPT_ALG_NAME_LEN   16
#define HOSTAP_CRYPT_FLAG_SET_TX_KEY   (1 << (0))
#define PRISM2_HOSTAPD_GENERIC_ELEMENT_HDR_LEN   ((int) (&((struct prism2_hostapd_param *) 0)->u.generic_elem.data))
#define IEEE80211_IOCTL_SETPARAM   (SIOCIWFIRSTPRIV+0)
#define IEEE80211_IOCTL_SETKEY   (SIOCIWFIRSTPRIV+2)
#define IEEE80211_CIPHER_WEP   0
#define IEEE80211_CIPHER_TKIP   1
#define IEEE80211_CIPHER_AES_CCM   3
#define IEEE80211_ADDR_LEN   6
#define IEEE80211_KEY_XMIT   0x01
#define IEEE80211_KEY_RECV   0x02
#define IEEE80211_KEYBUF_SIZE   16
#define IEEE80211_MICBUF_SIZE   16
#define IEEE80211_KEY_DEFAULT   0x80
#define IPW_IOCTL_WPA_SUPPLICANT   SIOCIWFIRSTPRIV+30
#define IPW_CMD_SET_WPA_PARAM   1
#define IPW_CMD_SET_ENCRYPTION   3
#define IPW_PARAM_WPA_ENABLED   1
#define IPW_PARAM_AUTH_ALGS   5
#define IPW_CRYPT_ALG_NAME_LEN   16
#define ATMEL_WPA_IOCTL   (SIOCIWFIRSTPRIV + 2)
#define ATMEL_WPA_IOCTL_PARAM   (SIOCIWFIRSTPRIV + 3)
#define ATMEL_WPA_IOCTL_GET_PARAM   (SIOCIWFIRSTPRIV + 4)
#define MAX_KEY_LENGTH   40
#define WPA_SET_WPA   SIOCIWFIRSTPRIV+1
#define WPA_SET_KEY   SIOCIWFIRSTPRIV+2
#define WPA_SET_AUTH_ALG   SIOCIWFIRSTPRIV+8
#define IW_AUTH_WPA_ENABLED   7
#define IW_AUTH_INDEX   0x0FFF

Typedefs

typedef uint8_t u8
typedef uint16_t u16
typedef uint32_t u32

Enumerations

enum  wpa_alg { WPA_ALG_NONE, WPA_ALG_WEP, WPA_ALG_TKIP, WPA_ALG_CCMP }
enum  {
  PRISM2_SET_ENCRYPTION = 6, PRISM2_HOSTAPD_SET_GENERIC_ELEMENT = 12, PRISM2_PARAM_AP_AUTH_ALGS = 15, PRISM2_PARAM_HOST_ROAMING = 21,
  PRISM2_PARAM_WPA = 36, PRISM2_PARAM_PRIVACY_INVOKED = 37
}
enum  { IEEE80211_PARAM_WPA = 10, IEEE80211_PARAM_ROAMING = 12, IEEE80211_PARAM_PRIVACY = 13 }
enum  { SET_WPA_ENCRYPTION = 1, SET_CIPHER_SUITES = 2 }
enum  { ATMEL_PARAM_WPA = 1, ATMEL_PARAM_PRIVACY_INVOKED = 2, ATMEL_PARAM_WPA_TYPE = 3 }

Functions

int iw_sockets_open (void)
static int iw_get_ext (int skfd, const char *ifname, int request, struct iwreq *pwrq)
int iw_get_range_info (int skfd, const char *ifname, struct iw_range *range)
double iw_freq2float (const struct iw_freq *in)
void hd_scan_wlan (hd_data_t *hd_data)
int hostapd_ioctl (const char *dev, struct prism2_hostapd_param *param, int len, int show_err)
int prism2param (const char *ifname, int param, int value)
int wpa_driver_hostap_set_auth_alg (const char *ifname, int auth_alg)
int wpa_driver_hostap_set_wpa (const char *ifname, int enabled)
int wpa_driver_hostap_set_key (const char *ifname, wpa_alg alg, unsigned char *addr, int key_idx, int set_tx, u8 *seq, size_t seq_len, u8 *key, size_t key_len)
int set80211param (const char *dev, int op, int arg)
static int wpa_driver_madwifi_set_wpa (const char *ifname, int enabled)
static int set80211priv (const char *dev, int op, void *data, int len)
static int wpa_driver_madwifi_set_key (const char *ifname, wpa_alg alg, unsigned char *addr, int key_idx, int set_tx, u8 *seq, size_t seq_len, u8 *key, size_t key_len)
int ipw_ioctl (const char *dev, struct ipw_param *param, int len)
int wpa_driver_ipw_set_wpa (const char *ifname, int enabled)
int wpa_driver_ipw_set_key (const char *ifname, wpa_alg alg, unsigned char *addr, int key_idx, int set_tx, u8 *seq, size_t seq_len, u8 *key, size_t key_len)
int wpa_driver_ipw_set_auth_alg (const char *ifname, int auth_alg)
int atmel_ioctl (const char *dev, struct atmel_param *param, int len)
int atmel2param (const char *ifname, int param, int value)
int wpa_driver_atmel_set_wpa (const char *ifname, int enabled)
int wpa_driver_atmel_set_key (const char *ifname, wpa_alg alg, unsigned char *addr, int key_idx, int set_tx, u8 *seq, size_t seq_len, u8 *key, size_t key_len)
int wpa_ndiswrapper_set_ext (const char *ifname, int request, struct iwreq *pwrq)
int wpa_ndiswrapper_set_wpa (const char *ifname, int enabled)
int wpa_ndiswrapper_set_key (const char *ifname, wpa_alg alg, u8 *addr, int key_idx, int set_tx, u8 *seq, size_t seq_len, u8 *key, size_t key_len)
static int wpa_ndiswrapper_set_auth_alg (const char *ifname, int auth_alg)
static int wpa_driver_wext_set_wpa (const char *ifname, int enabled)
static int wpa_driver_wext_set_auth_alg (const char *ifname, int auth_alg)
static int wpa_driver_wext_set_key (const char *ifname, wpa_alg alg, u8 *addr, int key_idx, int set_tx, u8 *seq, size_t seq_len, u8 *key, size_t key_len)

Variables

wpa_driver_ops wpa_driver_hostap_ops
wpa_driver_ops wpa_driver_prism54_ops
wpa_driver_ops wpa_driver_hermes_ops
wpa_driver_ops wpa_driver_madwifi_ops
wpa_driver_ops wpa_driver_atmel_ops
wpa_driver_ops wpa_driver_wext_ops
wpa_driver_ops wpa_driver_ndiswrapper_ops
wpa_driver_ops wpa_driver_ipw_ops
wpa_driver_ops wpa_driver_hostap_ops
wpa_driver_ops wpa_driver_madwifi_ops
wpa_driver_ops wpa_driver_ipw_ops
wpa_driver_ops wpa_driver_atmel_ops
wpa_driver_ops wpa_driver_ndiswrapper_ops
wpa_driver_ops wpa_driver_wext_ops

Define Documentation

#define IEEE80211_KEY_DEFAULT   0x80