• Johannes Berg's avatar
    mac80211: allow drivers to control software crypto · fa7e1fbc
    Johannes Berg authored
    Some drivers unfortunately cannot support software crypto, but
    mac80211 currently assumes that they do.
    
    This has the issue that if the hardware enabling fails for some
    reason, the software fallback is used, which won't work. This
    clearly isn't desirable, the error should be reported and the
    key setting refused.
    
    Support this in mac80211 by allowing drivers to set a new HW
    flag IEEE80211_HW_SW_CRYPTO_CONTROL, in which case mac80211 will
    only allow software fallback if the set_key() method returns 1.
    The driver will also need to advertise supported cipher suites
    so that mac80211 doesn't advertise any (future) software ciphers
    that the driver can't actually do.
    
    While at it, to make it easier to support this, refactor the
    ieee80211_init_cipher_suites() code.
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    fa7e1fbc
key.c 24.9 KB