qcacld-3.0: Correct the key type value in set key request
Send correct key type parameter value to crypto component in set key request. Change-Id: I17554a72f62e356871cb0a684a066c7d794f4d02 CRs-Fixed: 2388032
This commit is contained in:

committed by
nshrivas

parent
95341508ac
commit
47d0dacaf4
@@ -3807,7 +3807,8 @@ static QDF_STATUS wlan_hdd_set_key_helper(struct hdd_adapter *adapter,
|
||||
vdev = hdd_objmgr_get_vdev(adapter);
|
||||
if (!vdev)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
ret = wlan_cfg80211_crypto_add_key(vdev, true, 0);
|
||||
ret = wlan_cfg80211_crypto_add_key(vdev,
|
||||
WLAN_CRYPTO_KEY_TYPE_UNICAST, 0);
|
||||
hdd_objmgr_put_vdev(adapter);
|
||||
if (ret != 0) {
|
||||
hdd_err("crypto add key fail, status: %d", ret);
|
||||
|
@@ -13991,7 +13991,8 @@ static int wlan_hdd_add_key_ibss(struct hdd_adapter *adapter,
|
||||
vdev = hdd_objmgr_get_vdev(adapter);
|
||||
if (!vdev)
|
||||
return -EINVAL;
|
||||
errno = wlan_cfg80211_crypto_add_key(vdev, pairwise, key_index);
|
||||
errno = wlan_cfg80211_crypto_add_key(vdev, WLAN_CRYPTO_KEY_TYPE_GROUP,
|
||||
key_index);
|
||||
if (errno) {
|
||||
hdd_err("add_ibss_key failed, errno: %d", errno);
|
||||
hdd_objmgr_put_vdev(adapter);
|
||||
@@ -14000,7 +14001,8 @@ static int wlan_hdd_add_key_ibss(struct hdd_adapter *adapter,
|
||||
/* Save the keys here and call set_key for setting
|
||||
* the PTK after peer joins the IBSS network
|
||||
*/
|
||||
wlan_cfg80211_store_key(vdev, key_index, true, mac_addr, params);
|
||||
wlan_cfg80211_store_key(vdev, key_index, WLAN_CRYPTO_KEY_TYPE_UNICAST,
|
||||
mac_addr, params);
|
||||
hdd_objmgr_put_vdev(adapter);
|
||||
adapter->session.station.ibss_enc_key_installed = 1;
|
||||
|
||||
@@ -14019,7 +14021,11 @@ static int wlan_hdd_add_key_sap(struct hdd_adapter *adapter,
|
||||
if (!vdev)
|
||||
return -EINVAL;
|
||||
if (hostapd_state->bss_state == BSS_START)
|
||||
errno = wlan_cfg80211_crypto_add_key(vdev, pairwise, key_index);
|
||||
errno =
|
||||
wlan_cfg80211_crypto_add_key(vdev, (pairwise ?
|
||||
WLAN_CRYPTO_KEY_TYPE_UNICAST :
|
||||
WLAN_CRYPTO_KEY_TYPE_GROUP),
|
||||
key_index);
|
||||
hdd_objmgr_put_vdev(adapter);
|
||||
|
||||
return errno;
|
||||
@@ -14054,7 +14060,10 @@ static int wlan_hdd_add_key_sta(struct hdd_adapter *adapter,
|
||||
vdev = hdd_objmgr_get_vdev(adapter);
|
||||
if (!vdev)
|
||||
return -EINVAL;
|
||||
errno = wlan_cfg80211_crypto_add_key(vdev, pairwise, key_index);
|
||||
errno = wlan_cfg80211_crypto_add_key(vdev, (pairwise ?
|
||||
WLAN_CRYPTO_KEY_TYPE_UNICAST :
|
||||
WLAN_CRYPTO_KEY_TYPE_GROUP),
|
||||
key_index);
|
||||
hdd_objmgr_put_vdev(adapter);
|
||||
if (!errno && adapter->send_mode_change) {
|
||||
wlan_hdd_send_mode_change_event();
|
||||
@@ -14077,6 +14086,7 @@ static int __wlan_hdd_cfg80211_add_key(struct wiphy *wiphy,
|
||||
bool key_already_installed = false, ft_mode = false;
|
||||
enum wlan_crypto_cipher_type cipher;
|
||||
int errno;
|
||||
struct qdf_mac_addr mac_address;
|
||||
|
||||
hdd_enter();
|
||||
|
||||
@@ -14112,8 +14122,19 @@ static int __wlan_hdd_cfg80211_add_key(struct wiphy *wiphy,
|
||||
vdev = hdd_objmgr_get_vdev(adapter);
|
||||
if (!vdev)
|
||||
return -EINVAL;
|
||||
errno = wlan_cfg80211_store_key(vdev, key_index, pairwise, mac_addr,
|
||||
params);
|
||||
if (!pairwise && ((adapter->device_mode == QDF_STA_MODE) ||
|
||||
(adapter->device_mode == QDF_P2P_CLIENT_MODE))) {
|
||||
qdf_mem_copy(mac_address.bytes,
|
||||
adapter->session.station.conn_info.bssId.bytes,
|
||||
QDF_MAC_ADDR_SIZE);
|
||||
} else {
|
||||
qdf_mem_copy(mac_address.bytes, mac_addr, QDF_MAC_ADDR_SIZE);
|
||||
}
|
||||
errno = wlan_cfg80211_store_key(vdev, key_index,
|
||||
(pairwise ?
|
||||
WLAN_CRYPTO_KEY_TYPE_UNICAST :
|
||||
WLAN_CRYPTO_KEY_TYPE_GROUP),
|
||||
mac_address.bytes, params);
|
||||
hdd_objmgr_put_vdev(adapter);
|
||||
if (errno)
|
||||
return errno;
|
||||
@@ -14735,8 +14756,11 @@ static int __wlan_hdd_cfg80211_set_default_key(struct wiphy *wiphy,
|
||||
}
|
||||
if ((adapter->device_mode == QDF_STA_MODE) ||
|
||||
(adapter->device_mode == QDF_P2P_CLIENT_MODE)) {
|
||||
ret = wlan_cfg80211_crypto_add_key(adapter->vdev, unicast,
|
||||
key_index);
|
||||
ret =
|
||||
wlan_cfg80211_crypto_add_key(adapter->vdev, (unicast ?
|
||||
WLAN_CRYPTO_KEY_TYPE_UNICAST :
|
||||
WLAN_CRYPTO_KEY_TYPE_GROUP),
|
||||
key_index);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
@@ -2828,9 +2828,12 @@ void lim_process_mlm_set_sta_key_rsp(struct mac_context *mac_ctx,
|
||||
return;
|
||||
}
|
||||
set_key_params = msg->bodyptr;
|
||||
session_id = set_key_params->sessionId;
|
||||
sme_session_id = set_key_params->smesessionId;
|
||||
session_entry = pe_find_session_by_session_id(mac_ctx, session_id);
|
||||
session_entry = pe_find_session_by_sme_session_id(mac_ctx,
|
||||
sme_session_id);
|
||||
session_id = session_entry->peSessionId;
|
||||
pe_debug("PE session ID %d, SME session id %d", session_id,
|
||||
sme_session_id);
|
||||
if (session_entry == NULL) {
|
||||
pe_err("session does not exist for given session_id");
|
||||
qdf_mem_free(msg->bodyptr);
|
||||
@@ -2919,9 +2922,12 @@ void lim_process_mlm_set_bss_key_rsp(struct mac_context *mac_ctx,
|
||||
pe_err("msg bodyptr is null");
|
||||
return;
|
||||
}
|
||||
session_id = ((tpSetBssKeyParams) msg->bodyptr)->sessionId;
|
||||
sme_session_id = ((tpSetBssKeyParams) msg->bodyptr)->smesessionId;
|
||||
session_entry = pe_find_session_by_session_id(mac_ctx, session_id);
|
||||
session_entry = pe_find_session_by_sme_session_id(mac_ctx,
|
||||
sme_session_id);
|
||||
session_id = session_entry->peSessionId;
|
||||
pe_debug("PE session ID %d, SME session id %d", session_id,
|
||||
sme_session_id);
|
||||
if (session_entry == NULL) {
|
||||
pe_err("session does not exist for given sessionId [%d]",
|
||||
session_id);
|
||||
|
@@ -1390,7 +1390,8 @@ static QDF_STATUS wlan_sap_set_key_helper(struct sap_context *sap_ctx,
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
return ucfg_crypto_set_key_req(sap_ctx->vdev, crypto_key, true);
|
||||
return ucfg_crypto_set_key_req(sap_ctx->vdev, crypto_key,
|
||||
WLAN_CRYPTO_KEY_TYPE_UNICAST);
|
||||
}
|
||||
#else
|
||||
static QDF_STATUS wlan_sap_set_key_helper(struct sap_context *sap_ctx,
|
||||
|
@@ -9695,7 +9695,9 @@ static QDF_STATUS csr_roam_issue_set_context_req(struct mac_context *mac_ctx,
|
||||
!add_key)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
|
||||
return ucfg_crypto_set_key_req(vdev, crypto_key, unicast);
|
||||
return ucfg_crypto_set_key_req(vdev, crypto_key, (unicast ?
|
||||
WLAN_CRYPTO_KEY_TYPE_UNICAST :
|
||||
WLAN_CRYPTO_KEY_TYPE_GROUP));
|
||||
}
|
||||
|
||||
QDF_STATUS csr_roam_issue_set_context_req_helper(
|
||||
|
@@ -5732,6 +5732,9 @@ void wma_update_set_key(uint8_t session_id, bool pairwise,
|
||||
return;
|
||||
}
|
||||
iface = &wma->interfaces[session_id];
|
||||
if (!iface)
|
||||
wma_info("iface not found for session id %d", session_id);
|
||||
|
||||
wma_reset_ipn(iface, key_index);
|
||||
if (iface && pairwise)
|
||||
iface->ucast_key_cipher =
|
||||
|
Reference in New Issue
Block a user