|
@@ -97,8 +97,10 @@ mwifiex_cfg80211_del_key(struct wiphy *wiphy, struct net_device *netdev,
|
|
|
u8 key_index, bool pairwise, const u8 *mac_addr)
|
|
|
{
|
|
|
struct mwifiex_private *priv = mwifiex_netdev_get_priv(netdev);
|
|
|
+ const u8 bc_mac[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
|
|
|
+ const u8 *peer_mac = pairwise ? mac_addr : bc_mac;
|
|
|
|
|
|
- if (mwifiex_set_encode(priv, NULL, 0, key_index, 1)) {
|
|
|
+ if (mwifiex_set_encode(priv, NULL, 0, key_index, peer_mac, 1)) {
|
|
|
wiphy_err(wiphy, "deleting the crypto keys\n");
|
|
|
return -EFAULT;
|
|
|
}
|
|
@@ -168,7 +170,7 @@ mwifiex_cfg80211_set_default_key(struct wiphy *wiphy, struct net_device *netdev,
|
|
|
if (!priv->sec_info.wep_enabled)
|
|
|
return 0;
|
|
|
|
|
|
- if (mwifiex_set_encode(priv, NULL, 0, key_index, 0)) {
|
|
|
+ if (mwifiex_set_encode(priv, NULL, 0, key_index, NULL, 0)) {
|
|
|
wiphy_err(wiphy, "set default Tx key index\n");
|
|
|
return -EFAULT;
|
|
|
}
|
|
@@ -185,9 +187,11 @@ mwifiex_cfg80211_add_key(struct wiphy *wiphy, struct net_device *netdev,
|
|
|
struct key_params *params)
|
|
|
{
|
|
|
struct mwifiex_private *priv = mwifiex_netdev_get_priv(netdev);
|
|
|
+ const u8 bc_mac[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
|
|
|
+ const u8 *peer_mac = pairwise ? mac_addr : bc_mac;
|
|
|
|
|
|
if (mwifiex_set_encode(priv, params->key, params->key_len,
|
|
|
- key_index, 0)) {
|
|
|
+ key_index, peer_mac, 0)) {
|
|
|
wiphy_err(wiphy, "crypto keys added\n");
|
|
|
return -EFAULT;
|
|
|
}
|
|
@@ -947,7 +951,7 @@ mwifiex_cfg80211_assoc(struct mwifiex_private *priv, size_t ssid_len, u8 *ssid,
|
|
|
priv->wep_key_curr_index = 0;
|
|
|
priv->sec_info.encryption_mode = 0;
|
|
|
priv->sec_info.is_authtype_auto = 0;
|
|
|
- ret = mwifiex_set_encode(priv, NULL, 0, 0, 1);
|
|
|
+ ret = mwifiex_set_encode(priv, NULL, 0, 0, NULL, 1);
|
|
|
|
|
|
if (mode == NL80211_IFTYPE_ADHOC) {
|
|
|
/* "privacy" is set only for ad-hoc mode */
|
|
@@ -995,7 +999,7 @@ mwifiex_cfg80211_assoc(struct mwifiex_private *priv, size_t ssid_len, u8 *ssid,
|
|
|
" with key len %d\n", sme->key_len);
|
|
|
priv->wep_key_curr_index = sme->key_idx;
|
|
|
ret = mwifiex_set_encode(priv, sme->key, sme->key_len,
|
|
|
- sme->key_idx, 0);
|
|
|
+ sme->key_idx, NULL, 0);
|
|
|
}
|
|
|
}
|
|
|
done:
|