cfg80211: Add support for FILS shared key authentication offload
authorVidyullatha Kanchanapally <vkanchan@qti.qualcomm.com>
Thu, 30 Mar 2017 21:22:34 +0000 (00:22 +0300)
committerChristian Lamparter <chunkeey@gmail.com>
Sun, 5 Nov 2017 17:09:59 +0000 (18:09 +0100)
Enhance nl80211 and cfg80211 connect request and response APIs to
support FILS shared key authentication offload. The new nl80211
attributes can be used to provide additional information to the driver
to establish a FILS connection. Also enhance the set/del PMKSA to allow
support for adding and deleting PMKSA based on FILS cache identifier.

Add a new feature flag that drivers can use to advertize support for
FILS shared key authentication and association in station mode when
using their own SME.

Signed-off-by: Vidyullatha Kanchanapally <vkanchan@qti.qualcomm.com>
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
include/linux/ieee80211.h

index 7ec6129e749ac8750a41130dc74dbd0cae4e26e9..c5bd3085512797b2d7976e27ae93a38c14754857 100644 (file)
@@ -1741,6 +1741,9 @@ enum ieee80211_statuscode {
        WLAN_STATUS_REJECT_DSE_BAND = 96,
        WLAN_STATUS_DENIED_WITH_SUGGESTED_BAND_AND_CHANNEL = 99,
        WLAN_STATUS_DENIED_DUE_TO_SPECTRUM_MANAGEMENT = 103,
+       /* 802.11ai */
+       WLAN_STATUS_FILS_AUTHENTICATION_FAILURE = 108,
+       WLAN_STATUS_UNKNOWN_AUTHENTICATION_SERVER = 109,
 };
 
 
@@ -2122,6 +2125,12 @@ enum ieee80211_key_len {
 #define FILS_NONCE_LEN                 16
 #define FILS_MAX_KEK_LEN               64
 
+#define FILS_ERP_MAX_USERNAME_LEN      16
+#define FILS_ERP_MAX_REALM_LEN         253
+#define FILS_ERP_MAX_RRK_LEN           64
+
+#define PMK_MAX_LEN                    48
+
 /* Public action codes */
 enum ieee80211_pub_actioncode {
        WLAN_PUB_ACTION_EXT_CHANSW_ANN = 4,
@@ -2372,6 +2381,10 @@ enum ieee80211_sa_query_action {
 #define WLAN_AKM_SUITE_TDLS            SUITE(0x000FAC, 7)
 #define WLAN_AKM_SUITE_SAE             SUITE(0x000FAC, 8)
 #define WLAN_AKM_SUITE_FT_OVER_SAE     SUITE(0x000FAC, 9)
+#define WLAN_AKM_SUITE_FILS_SHA256     SUITE(0x000FAC, 14)
+#define WLAN_AKM_SUITE_FILS_SHA384     SUITE(0x000FAC, 15)
+#define WLAN_AKM_SUITE_FT_FILS_SHA256  SUITE(0x000FAC, 16)
+#define WLAN_AKM_SUITE_FT_FILS_SHA384  SUITE(0x000FAC, 17)
 
 #define WLAN_MAX_KEY_LEN               32