Search Linux Wireless

Re: [PATCH] mac80211: Set CAN_REPLACE_PTK0 for SW crypto only drivers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 24.04.19 um 20:55 schrieb Johannes Berg:
On Wed, 2019-04-24 at 19:32 +0200, Alexander Wetzel wrote:
Mac80211 SW crypto handles replacing PTK keys correctly.

Don't trigger needless warnings or workarounds when the driver can only
use the known good SW crypto provided by mac80211.

Signed-off-by: Alexander Wetzel <alexander@xxxxxxxxxxxxxx>
---
  net/mac80211/main.c | 7 +++++++
  1 file changed, 7 insertions(+)

diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index e56650a9838e..2b608044ae23 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -1060,6 +1060,13 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
  		wiphy_ext_feature_set(local->hw.wiphy,
  				      NL80211_EXT_FEATURE_EXT_KEY_ID);
+ /* Mac80211 and therefore all cards only using SW crypto are able to
+	 * handle PTK rekeys correctly
+	 */
+	if (!local->ops->set_key)
+		wiphy_ext_feature_set(local->hw.wiphy,
+				      NL80211_EXT_FEATURE_CAN_REPLACE_PTK0);

Now I wonder - shouldn't the same A-MPDU issue apply here? After all, if
you replace the PTK 0 surely you shouldn't use different ones for the
same frame in an A-MPDU?

Not from what I found in IEEE 802.11. It's only forbidden to mix keyIDs, not MPDUs using different keys. And without Extended Key ID the keyID can only be zero. So from a standard point of view we are ok, no keyID mixing possible.

From a practical point of view cards like mvm cards will for sure corrupt MPDUs aggregated in a A-MPDU when different key were used for them. But we still don't care:-)

We'll corrupt the MPDU's encoded with either the old or the new key anyhow and we don't care which ones. After all the card will only have one key active for key ID 0 at any time won't have the second key installed at all.

Alexander



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux