Getting back to this ... as I was preparing my patch.
> @@ -3687,6 +3692,9 @@ enum nl80211_key_attributes {
> NL80211_KEY_DEFAULT_MGMT,
> NL80211_KEY_TYPE,
> NL80211_KEY_DEFAULT_TYPES,
> + NL80211_KEY_REPLAY_CTR,
> + NL80211_KEY_KCK,
> + NL80211_KEY_KEK,
You made those key attributes, but ...
> nla_put(msg, NL80211_ATTR_RESP_IE, resp_ie_len,
> resp_ie)))
> goto nla_put_failure;
>
> + if (wiphy_ext_feature_isset(&rdev->wiphy,
> + NL80211_EXT_FEATURE_KEY_MGMT_OFF
> LOAD) &&
> + (nla_put_u8(msg, NL80211_ATTR_AUTHORIZED, authorized) ||
> + (key_replay_ctr && nla_put(msg, NL80211_KEY_REPLAY_CTR,
> + NL80211_REPLAY_CTR_LEN, key_replay_ctr)) ||
> + (key_kck &&
> + nla_put(msg, NL80211_KEY_KCK, NL80211_KCK_LEN,
> key_kck)) ||
> + (key_kek &&
> + nla_put(msg, NL80211_KEY_KEK, NL80211_KEK_LEN,
> key_kek))))
> + goto nla_put_failure;
Used them at a top level here! That can't possibly have worked.
Anyway, I checked and we can transport these without adding new
attributes, but adding the NL80211_ATTR_REKEY_DATA attribute with its
nested KEK, KCK and REPLAY_CTR.
That leaves the authorized attribute, I guess nesting a whole bunch of
station info etc. doesn't make a lot of sense.
I also fail to see how the data is actually configured down, since you
just pass it through. I'll send our patch for configuring the PMK/PSK
via the PMKSA cache separately in a few minutes.
johannes