Fixed WPS credential conversion to wpa_supplicant configuration

Must not set pairwise_cipher/group_cipher for non-WPA/WPA2 networks
since the configuration parser is going to reject such values. In
addition, should not limit group_cipher to just TKIP or TKIP|CCMP just
in case the AP is using WEP as the group cipher. Default group_cipher
value can be used for all cases.
This commit is contained in:
Jouni Malinen 2009-01-17 21:37:15 +02:00
parent 655e466600
commit 7aab82b3fe

View file

@ -87,11 +87,8 @@ static int wpa_supplicant_wps_cred(void *ctx,
switch (cred->encr_type) { switch (cred->encr_type) {
case WPS_ENCR_NONE: case WPS_ENCR_NONE:
ssid->pairwise_cipher = ssid->group_cipher = WPA_CIPHER_NONE;
break; break;
case WPS_ENCR_WEP: case WPS_ENCR_WEP:
ssid->pairwise_cipher = ssid->group_cipher =
WPA_CIPHER_WEP40 | WPA_CIPHER_WEP104;
if (cred->key_len > 0 && cred->key_len <= MAX_WEP_KEY_LEN && if (cred->key_len > 0 && cred->key_len <= MAX_WEP_KEY_LEN &&
cred->key_idx < NUM_WEP_KEYS) { cred->key_idx < NUM_WEP_KEYS) {
os_memcpy(ssid->wep_key[cred->key_idx], cred->key, os_memcpy(ssid->wep_key[cred->key_idx], cred->key,
@ -102,11 +99,9 @@ static int wpa_supplicant_wps_cred(void *ctx,
break; break;
case WPS_ENCR_TKIP: case WPS_ENCR_TKIP:
ssid->pairwise_cipher = WPA_CIPHER_TKIP; ssid->pairwise_cipher = WPA_CIPHER_TKIP;
ssid->group_cipher = WPA_CIPHER_TKIP;
break; break;
case WPS_ENCR_AES: case WPS_ENCR_AES:
ssid->pairwise_cipher = WPA_CIPHER_CCMP; ssid->pairwise_cipher = WPA_CIPHER_CCMP;
ssid->group_cipher = WPA_CIPHER_CCMP | WPA_CIPHER_TKIP;
break; break;
} }