]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
SAE: Driver capability flags for the new SAE AKM suites
authorJouni Malinen <quic_jouni@quicinc.com>
Sun, 24 Jul 2022 19:09:07 +0000 (22:09 +0300)
committerJouni Malinen <j@w1.fi>
Sun, 24 Jul 2022 21:23:31 +0000 (00:23 +0300)
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
src/drivers/driver.h
src/drivers/driver_nl80211_capa.c
wpa_supplicant/ctrl_iface.c

index 52ee8dfdd5f549e484697e464c3eee0a5b356a61..dfb433773ba623905b037572e43ecbb61480f724 100644 (file)
@@ -1869,6 +1869,8 @@ struct wpa_driver_capa {
 #define WPA_DRIVER_CAPA_KEY_MGMT_FT_802_1X_SHA384      0x00200000
 #define WPA_DRIVER_CAPA_KEY_MGMT_CCKM          0x00400000
 #define WPA_DRIVER_CAPA_KEY_MGMT_OSEN          0x00800000
+#define WPA_DRIVER_CAPA_KEY_MGMT_SAE_EXT_KEY   0x01000000
+#define WPA_DRIVER_CAPA_KEY_MGMT_FT_SAE_EXT_KEY        0x02000000
        /** Bitfield of supported key management suites */
        unsigned int key_mgmt;
        unsigned int key_mgmt_iftype[WPA_IF_MAX];
index a0803bad046a4f64d791a9eca279b53c5e7fb00c..739be32a9f0e991d96c0eb7c688a80dce6e3ed83 100644 (file)
@@ -295,6 +295,9 @@ static unsigned int get_akm_suites_info(struct nlattr *tb)
                case RSN_AUTH_KEY_MGMT_FT_SAE:
                        key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_FT_SAE;
                        break;
+               case RSN_AUTH_KEY_MGMT_FT_SAE_EXT_KEY:
+                       key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_FT_SAE_EXT_KEY;
+                       break;
                case RSN_AUTH_KEY_MGMT_FT_802_1X_SHA384:
                        key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_FT_802_1X_SHA384;
                        break;
@@ -331,6 +334,9 @@ static unsigned int get_akm_suites_info(struct nlattr *tb)
                case RSN_AUTH_KEY_MGMT_SAE:
                        key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_SAE;
                        break;
+               case RSN_AUTH_KEY_MGMT_SAE_EXT_KEY:
+                       key_mgmt |= WPA_DRIVER_CAPA_KEY_MGMT_SAE_EXT_KEY;
+                       break;
                }
        }
 
index 2efb60c6b17c550958e1cad998c175b422d432a8..d8fdf37e0f1289a9138ad733075c928b2cb5e0f8 100644 (file)
@@ -4333,6 +4333,12 @@ static int ctrl_iface_get_capability_key_mgmt(int res, bool strict,
                        return pos - buf;
                pos += ret;
        }
+       if (key_mgmt & WPA_DRIVER_CAPA_KEY_MGMT_FT_SAE_EXT_KEY) {
+               ret = os_snprintf(pos, end - pos, " FT-SAE-EXT-KEY");
+               if (os_snprintf_error(end - pos, ret))
+                       return pos - buf;
+               pos += ret;
+       }
 #endif /* CONFIG_SAE */
 #ifdef CONFIG_SHA384
        if (key_mgmt & WPA_DRIVER_CAPA_KEY_MGMT_FT_802_1X_SHA384) {
@@ -4350,6 +4356,12 @@ static int ctrl_iface_get_capability_key_mgmt(int res, bool strict,
                        return pos - buf;
                pos += ret;
        }
+       if (key_mgmt & WPA_DRIVER_CAPA_KEY_MGMT_SAE_EXT_KEY) {
+               ret = os_snprintf(pos, end - pos, " SAE-EXT-KEY");
+               if (os_snprintf_error(end - pos, ret))
+                       return pos - buf;
+               pos += ret;
+       }
 #endif /* CONFIG_SAE */
 #ifdef CONFIG_SHA256
        if (key_mgmt & WPA_DRIVER_CAPA_KEY_MGMT_802_1X_SHA256) {