diff options
| author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-04-28 01:44:57 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-04-28 01:44:56 -0700 |
| commit | 01358971598fecf91f02247082d533ea5875595e (patch) | |
| tree | 813a45bc81494fccbb9ad63bede296bb26d601e0 /net | |
| parent | c01ba1a5f98de6e2f271cc2e447fe3280920cc16 (diff) | |
| parent | deb005f7956bedcdb116681e8a41f93944df1584 (diff) | |
Merge "cfg80211: Add KEK/nonces for FILS association frames"
Diffstat (limited to 'net')
| -rw-r--r-- | net/wireless/nl80211.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 074cf0d25558..934b143011ec 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -408,6 +408,9 @@ static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = { [NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST] = { .len = sizeof(struct nl80211_bss_select_rssi_adjust) }, + [NL80211_ATTR_FILS_KEK] = { .type = NLA_BINARY, + .len = FILS_MAX_KEK_LEN }, + [NL80211_ATTR_FILS_NONCES] = { .len = 2 * FILS_NONCE_LEN }, [NL80211_ATTR_TIMEOUT_REASON] = { .type = NLA_U32 }, }; @@ -7780,6 +7783,15 @@ static int nl80211_associate(struct sk_buff *skb, struct genl_info *info) req.flags |= ASSOC_REQ_USE_RRM; } + if (info->attrs[NL80211_ATTR_FILS_KEK]) { + req.fils_kek = nla_data(info->attrs[NL80211_ATTR_FILS_KEK]); + req.fils_kek_len = nla_len(info->attrs[NL80211_ATTR_FILS_KEK]); + if (!info->attrs[NL80211_ATTR_FILS_NONCES]) + return -EINVAL; + req.fils_nonces = + nla_data(info->attrs[NL80211_ATTR_FILS_NONCES]); + } + err = nl80211_crypto_settings(rdev, info, &req.crypto, 1); if (!err) { wdev_lock(dev->ieee80211_ptr); |
