Skip to content

Commit

Permalink
cfg80211: Set WEP ciphers
Browse files Browse the repository at this point in the history
With iwconfig there is no way to properly set the ciphers when trying to
connect to a WEP SSID. Although mac80211 based drivers dont need it, several
fullmac drivers do.
This patch basically sets the WEP ciphers whenever they're not set at all.

Signed-off-by: Samuel Ortiz <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
  • Loading branch information
Samuel Ortiz authored and linvjw committed Aug 14, 2009
1 parent b6f0b63 commit bcba8ea
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions net/wireless/sme.c
Original file line number Diff line number Diff line change
Expand Up @@ -658,14 +658,28 @@ int __cfg80211_connect(struct cfg80211_registered_device *rdev,

if (connkeys && connkeys->def >= 0) {
int idx;
u32 cipher;

idx = connkeys->def;
cipher = connkeys->params[idx].cipher;
/* If given a WEP key we may need it for shared key auth */
if (connkeys->params[idx].cipher == WLAN_CIPHER_SUITE_WEP40 ||
connkeys->params[idx].cipher == WLAN_CIPHER_SUITE_WEP104) {
if (cipher == WLAN_CIPHER_SUITE_WEP40 ||
cipher == WLAN_CIPHER_SUITE_WEP104) {
connect->key_idx = idx;
connect->key = connkeys->params[idx].key;
connect->key_len = connkeys->params[idx].key_len;

/*
* If ciphers are not set (e.g. when going through
* iwconfig), we have to set them appropriately here.
*/
if (connect->crypto.cipher_group == 0)
connect->crypto.cipher_group = cipher;

if (connect->crypto.n_ciphers_pairwise == 0) {
connect->crypto.n_ciphers_pairwise = 1;
connect->crypto.ciphers_pairwise[0] = cipher;
}
}
}

Expand Down

0 comments on commit bcba8ea

Please sign in to comment.