Key flags
enum ieee80211_key_flags { IEEE80211_KEY_FLAG_GENERATE_IV_MGMT, IEEE80211_KEY_FLAG_GENERATE_IV, IEEE80211_KEY_FLAG_GENERATE_MMIC, IEEE80211_KEY_FLAG_PAIRWISE, IEEE80211_KEY_FLAG_SW_MGMT_TX, IEEE80211_KEY_FLAG_PUT_IV_SPACE, IEEE80211_KEY_FLAG_RX_MGMT };
IEEE80211_KEY_FLAG_GENERATE_IV_MGMT
This flag should be set by the driver for a CCMP key to indicate that is requires IV generation only for managment frames (MFP).
IEEE80211_KEY_FLAG_GENERATE_IV
This flag should be set by the driver to indicate that it requires IV generation for this particular key.
IEEE80211_KEY_FLAG_GENERATE_MMIC
This flag should be set by the driver for a TKIP key if it requires Michael MIC generation in software.
IEEE80211_KEY_FLAG_PAIRWISE
Set by mac80211, this flag indicates that the key is pairwise rather then a shared key.
IEEE80211_KEY_FLAG_SW_MGMT_TX
This flag should be set by the driver for a CCMP key if it requires CCMP encryption of management frames (MFP) to be done in software.
IEEE80211_KEY_FLAG_PUT_IV_SPACE
This flag should be set by the driver if space should be prepared for the IV, but the IV itself should not be generated. Do not set together with IEEE80211_KEY_FLAG_GENERATE_IV on the same key.
IEEE80211_KEY_FLAG_RX_MGMT
This key will be used to decrypt received management frames. The flag can help drivers that have a hardware crypto implementation that doesn't deal with management frames properly by allowing them to not upload the keys to hardware and fall back to software crypto. Note that this flag deals only with RX, if your crypto engine can't deal with TX you can also set the IEEE80211_KEY_FLAG_SW_MGMT_TX flag to encrypt such frames in SW.
These flags are used for communication about keys between the driver and mac80211, with the flags parameter of struct ieee80211_key_conf.
Johannes Berg <[email protected]>
Author.