|
@@ -4562,6 +4562,50 @@ static int wpa_driver_nl80211_associate(
|
|
|
NLA_PUT(msg, NL80211_ATTR_IE, params->wpa_ie_len,
|
|
|
params->wpa_ie);
|
|
|
|
|
|
+ if (params->pairwise_suite != CIPHER_NONE) {
|
|
|
+ int cipher;
|
|
|
+
|
|
|
+ switch (params->pairwise_suite) {
|
|
|
+ case CIPHER_WEP40:
|
|
|
+ cipher = WLAN_CIPHER_SUITE_WEP40;
|
|
|
+ break;
|
|
|
+ case CIPHER_WEP104:
|
|
|
+ cipher = WLAN_CIPHER_SUITE_WEP104;
|
|
|
+ break;
|
|
|
+ case CIPHER_CCMP:
|
|
|
+ cipher = WLAN_CIPHER_SUITE_CCMP;
|
|
|
+ break;
|
|
|
+ case CIPHER_TKIP:
|
|
|
+ default:
|
|
|
+ cipher = WLAN_CIPHER_SUITE_TKIP;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ wpa_printf(MSG_DEBUG, " * pairwise=0x%x\n", cipher);
|
|
|
+ NLA_PUT_U32(msg, NL80211_ATTR_CIPHER_SUITES_PAIRWISE, cipher);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (params->group_suite != CIPHER_NONE) {
|
|
|
+ int cipher;
|
|
|
+
|
|
|
+ switch (params->group_suite) {
|
|
|
+ case CIPHER_WEP40:
|
|
|
+ cipher = WLAN_CIPHER_SUITE_WEP40;
|
|
|
+ break;
|
|
|
+ case CIPHER_WEP104:
|
|
|
+ cipher = WLAN_CIPHER_SUITE_WEP104;
|
|
|
+ break;
|
|
|
+ case CIPHER_CCMP:
|
|
|
+ cipher = WLAN_CIPHER_SUITE_CCMP;
|
|
|
+ break;
|
|
|
+ case CIPHER_TKIP:
|
|
|
+ default:
|
|
|
+ cipher = WLAN_CIPHER_SUITE_TKIP;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ wpa_printf(MSG_DEBUG, " * group=0x%x\n", cipher);
|
|
|
+ NLA_PUT_U32(msg, NL80211_ATTR_CIPHER_SUITE_GROUP, cipher);
|
|
|
+ }
|
|
|
+
|
|
|
#ifdef CONFIG_IEEE80211W
|
|
|
if (params->mgmt_frame_protection == MGMT_FRAME_PROTECTION_REQUIRED)
|
|
|
NLA_PUT_U32(msg, NL80211_ATTR_USE_MFP, NL80211_MFP_REQUIRED);
|