diff options
author | John W. Linville <linville@tuxdriver.com> | 2008-10-29 11:35:05 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-11-21 11:08:17 -0500 |
commit | 274bfb8dc5ffa16cb073801bebe76ab7f4e2e73d (patch) | |
tree | 04cd3f6a062496911b56737daa6a0858b769ccd6 /drivers/net/wireless/hostap/hostap_main.c | |
parent | dfe1bafdbac1c7b48b636fb7ace799e78170e0d6 (diff) |
lib80211: absorb crypto bits from net/ieee80211
These bits are shared already between ipw2x00 and hostap, and could
probably be shared both more cleanly and with other drivers. This
commit simply relocates the code to lib80211 and adjusts the drivers
appropriately.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/hostap/hostap_main.c')
-rw-r--r-- | drivers/net/wireless/hostap/hostap_main.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/net/wireless/hostap/hostap_main.c b/drivers/net/wireless/hostap/hostap_main.c index 4c36eb2fafd1..02a312ca8607 100644 --- a/drivers/net/wireless/hostap/hostap_main.c +++ b/drivers/net/wireless/hostap/hostap_main.c | |||
@@ -27,7 +27,7 @@ | |||
27 | #include <net/net_namespace.h> | 27 | #include <net/net_namespace.h> |
28 | #include <net/iw_handler.h> | 28 | #include <net/iw_handler.h> |
29 | #include <net/ieee80211.h> | 29 | #include <net/ieee80211.h> |
30 | #include <net/ieee80211_crypt.h> | 30 | #include <net/lib80211.h> |
31 | #include <asm/uaccess.h> | 31 | #include <asm/uaccess.h> |
32 | 32 | ||
33 | #include "hostap_wlan.h" | 33 | #include "hostap_wlan.h" |
@@ -343,10 +343,11 @@ int hostap_set_encryption(local_info_t *local) | |||
343 | char keybuf[WEP_KEY_LEN + 1]; | 343 | char keybuf[WEP_KEY_LEN + 1]; |
344 | enum { NONE, WEP, OTHER } encrypt_type; | 344 | enum { NONE, WEP, OTHER } encrypt_type; |
345 | 345 | ||
346 | idx = local->tx_keyidx; | 346 | idx = local->crypt_info.tx_keyidx; |
347 | if (local->crypt[idx] == NULL || local->crypt[idx]->ops == NULL) | 347 | if (local->crypt_info.crypt[idx] == NULL || |
348 | local->crypt_info.crypt[idx]->ops == NULL) | ||
348 | encrypt_type = NONE; | 349 | encrypt_type = NONE; |
349 | else if (strcmp(local->crypt[idx]->ops->name, "WEP") == 0) | 350 | else if (strcmp(local->crypt_info.crypt[idx]->ops->name, "WEP") == 0) |
350 | encrypt_type = WEP; | 351 | encrypt_type = WEP; |
351 | else | 352 | else |
352 | encrypt_type = OTHER; | 353 | encrypt_type = OTHER; |
@@ -394,17 +395,17 @@ int hostap_set_encryption(local_info_t *local) | |||
394 | /* 104-bit support seems to require that all the keys are set to the | 395 | /* 104-bit support seems to require that all the keys are set to the |
395 | * same keylen */ | 396 | * same keylen */ |
396 | keylen = 6; /* first 5 octets */ | 397 | keylen = 6; /* first 5 octets */ |
397 | len = local->crypt[idx]->ops->get_key(keybuf, sizeof(keybuf), | 398 | len = local->crypt_info.crypt[idx]->ops->get_key(keybuf, sizeof(keybuf), NULL, |
398 | NULL, local->crypt[idx]->priv); | 399 | local->crypt_info.crypt[idx]->priv); |
399 | if (idx >= 0 && idx < WEP_KEYS && len > 5) | 400 | if (idx >= 0 && idx < WEP_KEYS && len > 5) |
400 | keylen = WEP_KEY_LEN + 1; /* first 13 octets */ | 401 | keylen = WEP_KEY_LEN + 1; /* first 13 octets */ |
401 | 402 | ||
402 | for (i = 0; i < WEP_KEYS; i++) { | 403 | for (i = 0; i < WEP_KEYS; i++) { |
403 | memset(keybuf, 0, sizeof(keybuf)); | 404 | memset(keybuf, 0, sizeof(keybuf)); |
404 | if (local->crypt[i]) { | 405 | if (local->crypt_info.crypt[i]) { |
405 | (void) local->crypt[i]->ops->get_key( | 406 | (void) local->crypt_info.crypt[i]->ops->get_key( |
406 | keybuf, sizeof(keybuf), | 407 | keybuf, sizeof(keybuf), |
407 | NULL, local->crypt[i]->priv); | 408 | NULL, local->crypt_info.crypt[i]->priv); |
408 | } | 409 | } |
409 | if (local->func->set_rid(local->dev, | 410 | if (local->func->set_rid(local->dev, |
410 | HFA384X_RID_CNFDEFAULTKEY0 + i, | 411 | HFA384X_RID_CNFDEFAULTKEY0 + i, |