diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2014-11-13 13:02:35 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2014-11-13 13:02:35 -0800 |
| commit | bedb15e4d8b38dd8bfd13359b88d8d35ba585057 (patch) | |
| tree | 696affae7468a29f486d66bf5d0c6f44ee01671c | |
| parent | 041cbd6b89ace9e02d326d83e7fbe18858aec9b5 (diff) | |
| parent | e2dcba6566a0bc33f2bad15664975740efb7550d (diff) | |
| download | android_external_wpa_supplicant_8-bedb15e4d8b38dd8bfd13359b88d8d35ba585057.tar.gz android_external_wpa_supplicant_8-bedb15e4d8b38dd8bfd13359b88d8d35ba585057.tar.bz2 android_external_wpa_supplicant_8-bedb15e4d8b38dd8bfd13359b88d8d35ba585057.zip | |
Merge "P2P: Support GCMP as part of 60 GHz support"
| -rw-r--r-- | src/ap/wps_hostapd.c | 2 | ||||
| -rw-r--r-- | wpa_supplicant/ap.c | 3 | ||||
| -rw-r--r-- | wpa_supplicant/p2p_supplicant.c | 9 | ||||
| -rw-r--r-- | wpa_supplicant/wps_supplicant.c | 9 |
4 files changed, 20 insertions, 3 deletions
diff --git a/src/ap/wps_hostapd.c b/src/ap/wps_hostapd.c index 6f16f50e..c4d7194a 100644 --- a/src/ap/wps_hostapd.c +++ b/src/ap/wps_hostapd.c @@ -1049,7 +1049,7 @@ int hostapd_init_wps(struct hostapd_data *hapd, if (conf->wpa_key_mgmt & WPA_KEY_MGMT_IEEE8021X) wps->auth_types |= WPS_AUTH_WPA2; - if (conf->rsn_pairwise & WPA_CIPHER_CCMP) + if (conf->rsn_pairwise & (WPA_CIPHER_CCMP | WPA_CIPHER_GCMP)) wps->encr_types |= WPS_ENCR_AES; if (conf->rsn_pairwise & WPA_CIPHER_TKIP) wps->encr_types |= WPS_ENCR_TKIP; diff --git a/wpa_supplicant/ap.c b/wpa_supplicant/ap.c index f9aa8078..115b34db 100644 --- a/wpa_supplicant/ap.c +++ b/wpa_supplicant/ap.c @@ -317,7 +317,8 @@ static int wpa_supplicant_conf_ap(struct wpa_supplicant *wpa_s, bss->ssid.security_policy != SECURITY_PLAINTEXT) goto no_wps; if (bss->ssid.security_policy == SECURITY_WPA_PSK && - (!(bss->rsn_pairwise & WPA_CIPHER_CCMP) || !(bss->wpa & 2))) + (!(bss->rsn_pairwise & (WPA_CIPHER_CCMP | WPA_CIPHER_GCMP)) || + !(bss->wpa & 2))) goto no_wps; /* WPS2 does not allow WPA/TKIP-only * configuration */ bss->eap_server = 1; diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index 0f14cbe6..480e0ba3 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -1364,6 +1364,15 @@ static void wpas_start_wps_go(struct wpa_supplicant *wpa_s, ssid->key_mgmt = WPA_KEY_MGMT_PSK; ssid->proto = WPA_PROTO_RSN; ssid->pairwise_cipher = WPA_CIPHER_CCMP; + ssid->group_cipher = WPA_CIPHER_CCMP; + if (params->freq > 56160) { + /* + * Enable GCMP instead of CCMP as pairwise_cipher and + * group_cipher in 60 GHz. + */ + ssid->pairwise_cipher = WPA_CIPHER_GCMP; + ssid->group_cipher = WPA_CIPHER_GCMP; + } if (os_strlen(params->passphrase) > 0) { ssid->passphrase = os_strdup(params->passphrase); if (ssid->passphrase == NULL) { diff --git a/wpa_supplicant/wps_supplicant.c b/wpa_supplicant/wps_supplicant.c index 40a5c696..40f235f7 100644 --- a/wpa_supplicant/wps_supplicant.c +++ b/wpa_supplicant/wps_supplicant.c @@ -286,7 +286,9 @@ static void wpas_wps_remove_dup_network(struct wpa_supplicant *wpa_s, /* compare security parameters */ if (ssid->auth_alg != new_ssid->auth_alg || ssid->key_mgmt != new_ssid->key_mgmt || - ssid->group_cipher != new_ssid->group_cipher) + (ssid->group_cipher != new_ssid->group_cipher && + !(ssid->group_cipher & new_ssid->group_cipher & + WPA_CIPHER_CCMP))) continue; /* @@ -471,6 +473,11 @@ static int wpa_supplicant_wps_cred(void *ctx, break; case WPS_ENCR_AES: ssid->pairwise_cipher = WPA_CIPHER_CCMP; + if (wpa_s->drv_capa_known && + (wpa_s->drv_enc & WPA_DRIVER_CAPA_ENC_GCMP)) { + ssid->pairwise_cipher |= WPA_CIPHER_GCMP; + ssid->group_cipher |= WPA_CIPHER_GCMP; + } break; } |
