• Johannes Berg's avatar
    wifi: cfg80211: add support for SPP A-MSDUs · 2518e89d
    Johannes Berg authored
    Add SPP (signaling and payload protected) AMSDU support.
    
    Since userspace has to build the RSNX element, add an extended
    feature flag to indicate that this is supported.
    
    In order to avoid downgrade/mismatch attacks, add a flag to the assoc
    command on the station side, so that we can be sure that the value of
    the flag comes from the same RSNX element that will be validated by
    the supplicant against the 4-way-handshake. If we just pulled the
    data out of a beacon/probe response, we could theoretically look an
    RSNX element from a different frame, with a different value for this
    flag, than the supplicant is using to validate in the
    4-way-handshake.
    
    Note that this patch is only geared towards software crypto
    implementations or hardware ones that can perfectly implement SPP
    A-MSDUs, i.e. are able to switch the AAD construction on the fly for
    each TX/RX frame.
    
    For more limited hardware implementations, more capability
    advertisement  would be required, e.g. if the hardware has no way
    to switch this on the fly but has only a global configuration that
    must apply to all stations.
    
    The driver could of course *reject* mismatches, but the supplicant
    must know so it can do things like not negotiating SPP A-MSDUs on
    a T-DLS link when connected to an AP that doesn't support it, or
    similar.
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    Signed-off-by: default avatarDaniel Gabay <daniel.gabay@intel.com>
    Reviewed-by: default avatarGregory Greenman <gregory.greenman@intel.com>
    Signed-off-by: default avatarMiri Korenblit <miriam.rachel.korenblit@intel.com>
    Link: https://msgid.link/20240102213313.fadac8df7030.I9240aebcba1be49636a73c647ed0af862713fc6f@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    2518e89d
nl80211.c 551 KB