From: Jouni Malinen Date: Wed, 26 Nov 2025 21:46:00 +0000 (+0200) Subject: Remove wfa_gen_capa_cert from generation capabilities indication X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b12efb057d2d371c325259752b8562700b1d05a9;p=thirdparty%2Fhostap.git Remove wfa_gen_capa_cert from generation capabilities indication This field was removed from the draft specification. Signed-off-by: Jouni Malinen --- diff --git a/tests/hwsim/test_wfa_capab.py b/tests/hwsim/test_wfa_capab.py index 862514556..6e85756a0 100644 --- a/tests/hwsim/test_wfa_capab.py +++ b/tests/hwsim/test_wfa_capab.py @@ -23,22 +23,6 @@ def test_wfa_gen_capa_unprotected(dev, apdev): finally: dev[0].set("wfa_gen_capa", "0") -def test_wfa_gen_capa_protected_cert(dev, apdev): - """WFA generational capabilities indication (protected, cert)""" - try: - dev[0].set("wfa_gen_capa", "1") - run_wfa_gen_capa(dev, apdev, cert=True) - finally: - dev[0].set("wfa_gen_capa", "0") - -def test_wfa_gen_capa_unprotected_cert(dev, apdev): - """WFA generational capabilities indication (unprotected, cert)""" - try: - dev[0].set("wfa_gen_capa", "2") - run_wfa_gen_capa(dev, apdev, cert=True) - finally: - dev[0].set("wfa_gen_capa", "0") - def test_wfa_gen_capa_automatic(dev, apdev): """WFA generational capabilities indication (automatic)""" try: @@ -47,7 +31,7 @@ def test_wfa_gen_capa_automatic(dev, apdev): finally: dev[0].set("wfa_gen_capa", "0") -def run_wfa_gen_capa(dev, apdev, cert=False, automatic=False): +def run_wfa_gen_capa(dev, apdev, automatic=False): check_sae_capab(dev[0]) params = hostapd.wpa3_params(ssid="wfa-capab", password="12345678") @@ -56,13 +40,8 @@ def run_wfa_gen_capa(dev, apdev, cert=False, automatic=False): dev[0].set("sae_groups", "") if automatic: dev[0].set("wfa_gen_capa_supp", "") - dev[0].set("wfa_gen_capa_cert", "") else: dev[0].set("wfa_gen_capa_supp", "07") - if cert: - dev[0].set("wfa_gen_capa_cert", "07") - else: - dev[0].set("wfa_gen_capa_cert", "") dev[0].connect("wfa-capab", sae_password="12345678", key_mgmt="SAE", ieee80211w="2", scan_freq="2412") ev = hapd.wait_event(["WFA-GEN-CAPAB"], timeout=10) @@ -75,5 +54,5 @@ def run_wfa_gen_capa(dev, apdev, cert=False, automatic=False): if not val.startswith("01"): raise Exception("Unexpected indication value: " + val) else: - if val != ("01070107" if cert else "0107"): + if val != "0107": raise Exception("Unexpected indication value: " + val) diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c index 5d1aa9697..707c58a3a 100644 --- a/wpa_supplicant/config.c +++ b/wpa_supplicant/config.c @@ -3174,7 +3174,6 @@ void wpa_config_free(struct wpa_config *config) os_free(config->dpp_extra_conf_req_value); wpabuf_free(config->dik); wpabuf_free(config->wfa_gen_capa_supp); - wpabuf_free(config->wfa_gen_capa_cert); os_free(config); } @@ -5832,7 +5831,6 @@ static const struct global_parse_data global_fields[] = { { BOOL(ft_prepend_pmkid), CFG_CHANGED_FT_PREPEND_PMKID }, { INT_RANGE(wfa_gen_capa, 0, 2), 0}, { BIN(wfa_gen_capa_supp), 0 }, - { BIN(wfa_gen_capa_cert), 0 }, { BOOL(disable_op_classes_80_80_mhz), 0 }, { INT(pr_pasn_type), 0 }, { INT_RANGE(pr_preferred_role, 0, 1), 0}, diff --git a/wpa_supplicant/config.h b/wpa_supplicant/config.h index 38d0f9fc4..58b085f4f 100644 --- a/wpa_supplicant/config.h +++ b/wpa_supplicant/config.h @@ -1891,15 +1891,6 @@ struct wpa_config { */ struct wpabuf *wfa_gen_capa_supp; - /** - * wfa_gen_capa_cert: Certified Generations (hexdump of a bit field) - * - * This has the same format as wfa_gen_capa_supp. This is an optional - * field, but if included, shall have the same length as - * wfa_gen_capa_supp. - */ - struct wpabuf *wfa_gen_capa_cert; - /** * disable_op_classes_80_80_mhz - Disable advertisement of 80+80 MHz * channel capabilities in the Supported Operating Classes element diff --git a/wpa_supplicant/config_file.c b/wpa_supplicant/config_file.c index 001250301..c8be83a87 100644 --- a/wpa_supplicant/config_file.c +++ b/wpa_supplicant/config_file.c @@ -1776,7 +1776,6 @@ static void wpa_config_write_global(FILE *f, struct wpa_config *config) if (config->wfa_gen_capa) fprintf(f, "wfa_gen_capa=%d\n", config->wfa_gen_capa); write_global_bin(f, "wfa_gen_capa_supp", config->wfa_gen_capa_supp); - write_global_bin(f, "wfa_gen_capa_cert", config->wfa_gen_capa_cert); if (config->disable_op_classes_80_80_mhz) fprintf(f, "disable_op_classes_80_80_mhz=%d\n", config->disable_op_classes_80_80_mhz); diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index 72e61fb69..56d8ba018 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -514,7 +514,6 @@ static struct wpabuf * wpas_wfa_gen_capab_attr(struct wpa_supplicant *wpa_s) size_t gen_len, supp_len; const u8 *supp; u8 supp_buf[1]; - bool add_cert; if (wpa_s->conf->wfa_gen_capa == WFA_GEN_CAPA_DISABLED) return NULL; @@ -537,14 +536,7 @@ static struct wpabuf * wpas_wfa_gen_capab_attr(struct wpa_supplicant *wpa_s) supp = wpabuf_head(wpa_s->conf->wfa_gen_capa_supp); } - add_cert = wpa_s->conf->wfa_gen_capa_cert && - wpabuf_len(wpa_s->conf->wfa_gen_capa_cert) == supp_len; - gen_len = 1 + supp_len; - if (add_cert) { - gen_len++; - gen_len += wpabuf_len(wpa_s->conf->wfa_gen_capa_cert); - } attr = wpabuf_alloc(2 + gen_len); if (!attr) @@ -554,11 +546,6 @@ static struct wpabuf * wpas_wfa_gen_capab_attr(struct wpa_supplicant *wpa_s) wpabuf_put_u8(attr, gen_len); wpabuf_put_u8(attr, supp_len); wpabuf_put_data(attr, supp, supp_len); - if (add_cert) { - wpabuf_put_u8(attr, - wpabuf_len(wpa_s->conf->wfa_gen_capa_cert)); - wpabuf_put_buf(attr, wpa_s->conf->wfa_gen_capa_cert); - } return attr; } diff --git a/wpa_supplicant/wpa_supplicant.conf b/wpa_supplicant/wpa_supplicant.conf index b4513b4fe..2ff7b2ebe 100644 --- a/wpa_supplicant/wpa_supplicant.conf +++ b/wpa_supplicant/wpa_supplicant.conf @@ -668,11 +668,6 @@ fast_reauth=1 # bit 2: Wi-Fi 6 # bit 3: Wi-Fi 7 #wfa_gen_capa_supp=07 -# -# wfa_gen_capa_cert: Certified Generations (hexdump of a bit field) -# This has the same format as wfa_gen_capa_supp. This is an optional field, but -# if included, shall have the same length as wfa_gen_capa_supp. -#wfa_gen_capa_cert=07 # credential block #