mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
cfg80211: support 4-way handshake offloading for WPA/WPA2-PSK
Let drivers advertise support for station-mode 4-way handshake offloading with a new NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK flag. Extend use of NL80211_ATTR_PMK attribute indicating it might be passed as part of NL80211_CMD_CONNECT command, and contain the PSK (which is the PMK, hence the name.) The driver/device is assumed to handle the 4-way handshake by itself in this case (including key derivations, etc.), instead of relying on the supplicant. This patch is somewhat based on this one (by Vladimir Kondratiev): https://patchwork.kernel.org/patch/1309561/. Signed-off-by: Vladimir Kondratiev <[email protected]> Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: Luca Coelho <[email protected]> [[email protected] rebase dealing with existing ATTR_PMK] Signed-off-by: Arend van Spriel <[email protected]> [reword NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK docs to indicate that this offload might be required] Signed-off-by: Johannes Berg <[email protected]>
This commit is contained in:
parent
699cb58c8a
commit
91b5ab6289
4 changed files with 32 additions and 2 deletions
|
|
@ -8168,6 +8168,15 @@ static int nl80211_crypto_settings(struct cfg80211_registered_device *rdev,
|
|||
memcpy(settings->akm_suites, data, len);
|
||||
}
|
||||
|
||||
if (info->attrs[NL80211_ATTR_PMK]) {
|
||||
if (nla_len(info->attrs[NL80211_ATTR_PMK]) != WLAN_PMK_LEN)
|
||||
return -EINVAL;
|
||||
if (!wiphy_ext_feature_isset(&rdev->wiphy,
|
||||
NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK))
|
||||
return -EINVAL;
|
||||
settings->psk = nla_data(info->attrs[NL80211_ATTR_PMK]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue