Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 66436
b: refs/heads/master
c: 1443b65
h: refs/heads/master
v: v3
  • Loading branch information
Dan Williams authored and David S. Miller committed Oct 10, 2007
1 parent 33f7da5 commit 51cfe5b
Show file tree
Hide file tree
Showing 9 changed files with 38 additions and 45 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0c9ca690e0117e1bf415d5f3e392e27c0c472c68
refs/heads/master: 1443b6530d8db779082dc9fabbd894e2b551b101
8 changes: 4 additions & 4 deletions trunk/drivers/net/wireless/libertas/assoc.c
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ static int assoc_helper_wep_keys(wlan_private *priv,
/* Copy WEP keys into adapter wep key fields */
for (i = 0; i < 4; i++) {
memcpy(&adapter->wep_keys[i], &assoc_req->wep_keys[i],
sizeof(struct WLAN_802_11_KEY));
sizeof(struct enc_key));
}
adapter->wep_tx_keyidx = assoc_req->wep_tx_keyidx;

Expand Down Expand Up @@ -703,7 +703,7 @@ struct assoc_request * wlan_get_association_request(wlan_adapter *adapter)
int i;
for (i = 0; i < 4; i++) {
memcpy(&assoc_req->wep_keys[i], &adapter->wep_keys[i],
sizeof(struct WLAN_802_11_KEY));
sizeof(struct enc_key));
}
}

Expand All @@ -712,12 +712,12 @@ struct assoc_request * wlan_get_association_request(wlan_adapter *adapter)

if (!test_bit(ASSOC_FLAG_WPA_MCAST_KEY, &assoc_req->flags)) {
memcpy(&assoc_req->wpa_mcast_key, &adapter->wpa_mcast_key,
sizeof(struct WLAN_802_11_KEY));
sizeof(struct enc_key));
}

if (!test_bit(ASSOC_FLAG_WPA_UCAST_KEY, &assoc_req->flags)) {
memcpy(&assoc_req->wpa_unicast_key, &adapter->wpa_unicast_key,
sizeof(struct WLAN_802_11_KEY));
sizeof(struct enc_key));
}

if (!test_bit(ASSOC_FLAG_SECINFO, &assoc_req->flags)) {
Expand Down
7 changes: 3 additions & 4 deletions trunk/drivers/net/wireless/libertas/cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ static int wlan_cmd_802_11_set_wep(wlan_private * priv,

/* Copy key types and material to host command structure */
for (i = 0; i < 4; i++) {
struct WLAN_802_11_KEY * pkey = &assoc_req->wep_keys[i];
struct enc_key * pkey = &assoc_req->wep_keys[i];

switch (pkey->len) {
case KEY_LEN_WEP_40:
Expand Down Expand Up @@ -249,10 +249,8 @@ static int wlan_cmd_802_11_enable_rsn(wlan_private * priv,


static void set_one_wpa_key(struct MrvlIEtype_keyParamSet * pkeyparamset,
struct WLAN_802_11_KEY * pkey)
struct enc_key * pkey)
{
pkeyparamset->keytypeid = cpu_to_le16(pkey->type);

if (pkey->flags & KEY_INFO_WPA_ENABLED) {
pkeyparamset->keyinfo |= cpu_to_le16(KEY_INFO_WPA_ENABLED);
}
Expand All @@ -264,6 +262,7 @@ static void set_one_wpa_key(struct MrvlIEtype_keyParamSet * pkeyparamset,
}

pkeyparamset->type = cpu_to_le16(TLV_TYPE_KEY_MATERIAL);
pkeyparamset->keytypeid = cpu_to_le16(pkey->type);
pkeyparamset->keylen = cpu_to_le16(pkey->len);
memcpy(pkeyparamset->key, pkey->key, pkey->len);
pkeyparamset->length = cpu_to_le16( sizeof(pkeyparamset->keytypeid)
Expand Down
19 changes: 10 additions & 9 deletions trunk/drivers/net/wireless/libertas/cmdresp.c
Original file line number Diff line number Diff line change
Expand Up @@ -321,11 +321,12 @@ static int wlan_ret_802_11_key_material(wlan_private * priv,
while (buf_ptr < resp_end) {
struct MrvlIEtype_keyParamSet * pkeyparamset =
(struct MrvlIEtype_keyParamSet *) buf_ptr;
struct WLAN_802_11_KEY * pkey;
u16 key_info = le16_to_cpu(pkeyparamset->keyinfo);
struct enc_key * pkey;
u16 param_set_len = le16_to_cpu(pkeyparamset->length);
u8 * end;
u16 key_len = le16_to_cpu(pkeyparamset->keylen);
u16 key_flags = le16_to_cpu(pkeyparamset->keyinfo);
u16 key_type = le16_to_cpu(pkeyparamset->keytypeid);
u8 * end;

end = (u8 *) pkeyparamset + sizeof (pkeyparamset->type)
+ sizeof (pkeyparamset->length)
Expand All @@ -334,20 +335,20 @@ static int wlan_ret_802_11_key_material(wlan_private * priv,
if (end > resp_end)
break;

if (key_info & KEY_INFO_WPA_UNICAST)
if (key_flags & KEY_INFO_WPA_UNICAST)
pkey = &adapter->wpa_unicast_key;
else if (key_info & KEY_INFO_WPA_MCAST)
else if (key_flags & KEY_INFO_WPA_MCAST)
pkey = &adapter->wpa_mcast_key;
else
break;

/* Copy returned key into driver */
memset(pkey, 0, sizeof(struct WLAN_802_11_KEY));
memset(pkey, 0, sizeof(struct enc_key));
if (key_len > sizeof(pkey->key))
break;
pkey->type = le16_to_cpu(pkeyparamset->keytypeid);
pkey->flags = le16_to_cpu(pkeyparamset->keyinfo);
pkey->len = le16_to_cpu(pkeyparamset->keylen);
pkey->type = key_type;
pkey->flags = key_flags;
pkey->len = key_len;
memcpy(pkey->key, pkeyparamset->key, pkey->len);

buf_ptr = end + 1;
Expand Down
3 changes: 0 additions & 3 deletions trunk/drivers/net/wireless/libertas/defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,9 +218,6 @@ static inline void lbs_dbg_hex(char *prompt, u8 * buf, int len)
#define CMD_F_HOSTCMD (1 << 0)
#define FW_CAPINFO_WPA (1 << 0)

/** WPA key LENGTH*/
#define MRVL_MAX_KEY_WPA_KEY_LENGTH 32

#define KEY_LEN_WPA_AES 16
#define KEY_LEN_WPA_TKIP 32
#define KEY_LEN_WEP_104 13
Expand Down
12 changes: 6 additions & 6 deletions trunk/drivers/net/wireless/libertas/dev.h
Original file line number Diff line number Diff line change
Expand Up @@ -188,12 +188,12 @@ struct assoc_request {
u8 bssid[ETH_ALEN];

/** WEP keys */
struct WLAN_802_11_KEY wep_keys[4];
struct enc_key wep_keys[4];
u16 wep_tx_keyidx;

/** WPA keys */
struct WLAN_802_11_KEY wpa_mcast_key;
struct WLAN_802_11_KEY wpa_unicast_key;
struct enc_key wpa_mcast_key;
struct enc_key wpa_unicast_key;

struct wlan_802_11_security secinfo;

Expand Down Expand Up @@ -335,12 +335,12 @@ struct _wlan_adapter {
struct wlan_802_11_security secinfo;

/** WEP keys */
struct WLAN_802_11_KEY wep_keys[4];
struct enc_key wep_keys[4];
u16 wep_tx_keyidx;

/** WPA keys */
struct WLAN_802_11_KEY wpa_mcast_key;
struct WLAN_802_11_KEY wpa_unicast_key;
struct enc_key wpa_mcast_key;
struct enc_key wpa_unicast_key;

/** WPA Information Elements*/
u8 wpa_ie[MAX_WPA_IE_LEN];
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/net/wireless/libertas/fw.c
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ static void wlan_init_adapter(wlan_private * priv)
adapter->secinfo.wep_enabled = 0;
for (i = 0; i < sizeof(adapter->wep_keys) / sizeof(adapter->wep_keys[0]);
i++)
memset(&adapter->wep_keys[i], 0, sizeof(struct WLAN_802_11_KEY));
memset(&adapter->wep_keys[i], 0, sizeof(struct enc_key));
adapter->wep_tx_keyidx = 0;
adapter->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM;
adapter->mode = IW_MODE_INFRA;
Expand Down
16 changes: 6 additions & 10 deletions trunk/drivers/net/wireless/libertas/hostcmd.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,16 +83,12 @@ struct cmd_ctrl_node {
wait_queue_head_t cmdwait_q;
};

/* WLAN_802_11_KEY
*
* Generic structure to hold all key types. key type (WEP40, WEP104, TKIP, AES)
* is determined from the keylength field.
*/
struct WLAN_802_11_KEY {
__le32 len;
__le32 flags; /* KEY_INFO_* from wlan_defs.h */
u8 key[MRVL_MAX_KEY_WPA_KEY_LENGTH];
__le16 type; /* KEY_TYPE_* from wlan_defs.h */
/* Generic structure to hold all key types. */
struct enc_key {
u16 len;
u16 flags; /* KEY_INFO_* from wlan_defs.h */
u16 type; /* KEY_TYPE_* from wlan_defs.h */
u8 key[32];
};

struct IE_WPA {
Expand Down
14 changes: 7 additions & 7 deletions trunk/drivers/net/wireless/libertas/wext.c
Original file line number Diff line number Diff line change
Expand Up @@ -1325,7 +1325,7 @@ static int wlan_set_wep_key(struct assoc_request *assoc_req,
int set_tx_key)
{
int ret = 0;
struct WLAN_802_11_KEY *pkey;
struct enc_key *pkey;

lbs_deb_enter(LBS_DEB_WEXT);

Expand All @@ -1344,7 +1344,7 @@ static int wlan_set_wep_key(struct assoc_request *assoc_req,
pkey = &assoc_req->wep_keys[index];

if (key_length > 0) {
memset(pkey, 0, sizeof(struct WLAN_802_11_KEY));
memset(pkey, 0, sizeof(struct enc_key));
pkey->type = KEY_TYPE_ID_WEP;

/* Standardize the key length */
Expand Down Expand Up @@ -1412,11 +1412,11 @@ static void disable_wpa(struct assoc_request *assoc_req)
{
lbs_deb_enter(LBS_DEB_WEXT);

memset(&assoc_req->wpa_mcast_key, 0, sizeof (struct WLAN_802_11_KEY));
memset(&assoc_req->wpa_mcast_key, 0, sizeof (struct enc_key));
assoc_req->wpa_mcast_key.flags = KEY_INFO_WPA_MCAST;
set_bit(ASSOC_FLAG_WPA_MCAST_KEY, &assoc_req->flags);

memset(&assoc_req->wpa_unicast_key, 0, sizeof (struct WLAN_802_11_KEY));
memset(&assoc_req->wpa_unicast_key, 0, sizeof (struct enc_key));
assoc_req->wpa_unicast_key.flags = KEY_INFO_WPA_UNICAST;
set_bit(ASSOC_FLAG_WPA_UCAST_KEY, &assoc_req->flags);

Expand Down Expand Up @@ -1567,7 +1567,7 @@ static int wlan_get_encodeext(struct net_device *dev,
&& (adapter->secinfo.WPAenabled ||
adapter->secinfo.WPA2enabled)) {
/* WPA */
struct WLAN_802_11_KEY * pkey = NULL;
struct enc_key * pkey = NULL;

if ( adapter->wpa_mcast_key.len
&& (adapter->wpa_mcast_key.flags & KEY_INFO_WPA_ENABLED))
Expand Down Expand Up @@ -1679,7 +1679,7 @@ static int wlan_set_encodeext(struct net_device *dev,
if (set_tx_key)
set_bit(ASSOC_FLAG_WEP_TX_KEYIDX, &assoc_req->flags);
} else if ((alg == IW_ENCODE_ALG_TKIP) || (alg == IW_ENCODE_ALG_CCMP)) {
struct WLAN_802_11_KEY * pkey;
struct enc_key * pkey;

/* validate key length */
if (((alg == IW_ENCODE_ALG_TKIP)
Expand All @@ -1702,7 +1702,7 @@ static int wlan_set_encodeext(struct net_device *dev,
set_bit(ASSOC_FLAG_WPA_UCAST_KEY, &assoc_req->flags);
}

memset(pkey, 0, sizeof (struct WLAN_802_11_KEY));
memset(pkey, 0, sizeof (struct enc_key));
memcpy(pkey->key, ext->key, ext->key_len);
pkey->len = ext->key_len;
if (pkey->len)
Expand Down

0 comments on commit 51cfe5b

Please sign in to comment.