qcacmn: Reject STA with PMF disabled only when PMF is required
In wlan_crypto_rsn_info, only need to reject STA with PMF disabled when PMF is required. Change-Id: I7a7d4b2d1a2d44a95d08eb6bfac14540940f0be3 CRs-Fixed: 2424932
This commit is contained in:
@@ -222,6 +222,16 @@ QDF_STATUS wlan_crypto_demic(struct wlan_objmgr_vdev *vdev,
|
||||
*/
|
||||
bool wlan_crypto_vdev_is_pmf_enabled(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* wlan_crypto_vdev_is_pmf_required - called to check is pmf required in vdev
|
||||
* @vdev: vdev
|
||||
*
|
||||
* This function gets called to check is pmf required or not in vdev.
|
||||
*
|
||||
* Return: true or false
|
||||
*/
|
||||
bool wlan_crypto_vdev_is_pmf_required(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* wlan_crypto_is_pmf_enabled - called by mgmt txrx to check is pmf enabled
|
||||
* @vdev: vdev
|
||||
|
@@ -1645,6 +1645,36 @@ bool wlan_crypto_vdev_is_pmf_enabled(struct wlan_objmgr_vdev *vdev)
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* wlan_crypto_vdev_is_pmf_required - called to check is pmf required in vdev
|
||||
* @vdev: vdev
|
||||
*
|
||||
* This function gets called to check is pmf required or not in vdev.
|
||||
*
|
||||
* Return: true or false
|
||||
*/
|
||||
bool wlan_crypto_vdev_is_pmf_required(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct wlan_crypto_comp_priv *crypto_priv;
|
||||
struct wlan_crypto_params *vdev_crypto_params;
|
||||
|
||||
if (!vdev)
|
||||
return false;
|
||||
|
||||
vdev_crypto_params = wlan_crypto_vdev_get_comp_params(vdev,
|
||||
&crypto_priv);
|
||||
if (!crypto_priv) {
|
||||
crypto_err("crypto_priv NULL");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
if (vdev_crypto_params->rsn_caps & WLAN_CRYPTO_RSN_CAP_MFP_REQUIRED)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* wlan_crypto_is_pmf_enabled - called by mgmt txrx to check is pmf enabled
|
||||
* @vdev: vdev
|
||||
@@ -2808,7 +2838,7 @@ bool wlan_crypto_rsn_info(struct wlan_objmgr_vdev *vdev,
|
||||
crypto_debug("Key mgmt match failed");
|
||||
return false;
|
||||
}
|
||||
if (wlan_crypto_vdev_is_pmf_enabled(vdev) &&
|
||||
if (wlan_crypto_vdev_is_pmf_required(vdev) &&
|
||||
!(crypto_params->rsn_caps & WLAN_CRYPTO_RSN_CAP_MFP_ENABLED)) {
|
||||
crypto_debug("Peer is not PMF capable");
|
||||
return false;
|
||||
|
Referens i nytt ärende
Block a user