AP: Add support for configuring PASN
Signed-off-by: Ilan Peer <ilan.peer@intel.com>
This commit is contained in:
parent
ad338cfe58
commit
2c963a117a
8 changed files with 55 additions and 0 deletions
|
@ -565,6 +565,14 @@ L_CFLAGS += -DCONFIG_DPP2
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef CONFIG_PASN
|
||||||
|
L_CFLAGS += -DCONFIG_PASN
|
||||||
|
NEED_HMAC_SHA256_KDF=y
|
||||||
|
NEED_HMAC_SHA384_KDF=y
|
||||||
|
NEED_SHA256=y
|
||||||
|
NEED_SHA384=y
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef CONFIG_EAP_IKEV2
|
ifdef CONFIG_EAP_IKEV2
|
||||||
L_CFLAGS += -DEAP_SERVER_IKEV2
|
L_CFLAGS += -DEAP_SERVER_IKEV2
|
||||||
OBJS += src/eap_server/eap_server_ikev2.c src/eap_server/ikev2.c
|
OBJS += src/eap_server/eap_server_ikev2.c src/eap_server/ikev2.c
|
||||||
|
|
|
@ -595,6 +595,14 @@ CFLAGS += -DCONFIG_DPP2
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef CONFIG_PASN
|
||||||
|
CFLAGS += -DCONFIG_PASN
|
||||||
|
NEED_HMAC_SHA256_KDF=y
|
||||||
|
NEED_HMAC_SHA384_KDF=y
|
||||||
|
NEED_SHA256=y
|
||||||
|
NEED_SHA384=y
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef CONFIG_EAP_IKEV2
|
ifdef CONFIG_EAP_IKEV2
|
||||||
CFLAGS += -DEAP_SERVER_IKEV2
|
CFLAGS += -DEAP_SERVER_IKEV2
|
||||||
OBJS += ../src/eap_server/eap_server_ikev2.o ../src/eap_server/ikev2.o
|
OBJS += ../src/eap_server/eap_server_ikev2.o ../src/eap_server/ikev2.o
|
||||||
|
|
|
@ -754,6 +754,10 @@ static int hostapd_config_parse_key_mgmt(int line, const char *value)
|
||||||
else if (os_strcmp(start, "OSEN") == 0)
|
else if (os_strcmp(start, "OSEN") == 0)
|
||||||
val |= WPA_KEY_MGMT_OSEN;
|
val |= WPA_KEY_MGMT_OSEN;
|
||||||
#endif /* CONFIG_HS20 */
|
#endif /* CONFIG_HS20 */
|
||||||
|
#ifdef CONFIG_PASN
|
||||||
|
else if (os_strcmp(start, "PASN") == 0)
|
||||||
|
val |= WPA_KEY_MGMT_PASN;
|
||||||
|
#endif /* CONFIG_PASN */
|
||||||
else {
|
else {
|
||||||
wpa_printf(MSG_ERROR, "Line %d: invalid key_mgmt '%s'",
|
wpa_printf(MSG_ERROR, "Line %d: invalid key_mgmt '%s'",
|
||||||
line, start);
|
line, start);
|
||||||
|
@ -4582,6 +4586,13 @@ static int hostapd_config_fill(struct hostapd_config *conf,
|
||||||
} else if (os_strcmp(buf, "force_kdk_derivation") == 0) {
|
} else if (os_strcmp(buf, "force_kdk_derivation") == 0) {
|
||||||
bss->force_kdk_derivation = atoi(pos);
|
bss->force_kdk_derivation = atoi(pos);
|
||||||
#endif /* CONFIG_TESTING_OPTIONS */
|
#endif /* CONFIG_TESTING_OPTIONS */
|
||||||
|
} else if (os_strcmp(buf, "pasn_groups") == 0) {
|
||||||
|
if (hostapd_parse_intlist(&bss->pasn_groups, pos)) {
|
||||||
|
wpa_printf(MSG_ERROR,
|
||||||
|
"Line %d: Invalid pasn_groups value '%s'",
|
||||||
|
line, pos);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
#endif /* CONFIG_PASN */
|
#endif /* CONFIG_PASN */
|
||||||
} else {
|
} else {
|
||||||
wpa_printf(MSG_ERROR,
|
wpa_printf(MSG_ERROR,
|
||||||
|
|
|
@ -395,3 +395,10 @@ CONFIG_IPV6=y
|
||||||
# build includes this to allow mixed mode WPA+WPA2 networks to be enabled, but
|
# build includes this to allow mixed mode WPA+WPA2 networks to be enabled, but
|
||||||
# that functionality is subject to be removed in the future.
|
# that functionality is subject to be removed in the future.
|
||||||
#CONFIG_NO_TKIP=y
|
#CONFIG_NO_TKIP=y
|
||||||
|
|
||||||
|
# Pre-Association Security Negotiation (PASN)
|
||||||
|
# Experimental implementation based on IEEE P802.11z/D2.6 and the protocol
|
||||||
|
# design is still subject to change. As such, this should not yet be enabled in
|
||||||
|
# production use.
|
||||||
|
# This requires CONFIG_IEEE80211W=y to be enabled, too.
|
||||||
|
#CONFIG_PASN=y
|
||||||
|
|
|
@ -1947,6 +1947,14 @@ own_ip_addr=127.0.0.1
|
||||||
# (default: 0 = do not include Transition Disable KDE)
|
# (default: 0 = do not include Transition Disable KDE)
|
||||||
#transition_disable=0x01
|
#transition_disable=0x01
|
||||||
|
|
||||||
|
# PASN ECDH groups
|
||||||
|
# PASN implementations are required to support group 19 (NIST P-256). If this
|
||||||
|
# parameter is not set, only group 19 is supported by default. This
|
||||||
|
# configuration parameter can be used to specify a limited set of allowed
|
||||||
|
# groups. The group values are listed in the IANA registry:
|
||||||
|
# http://www.iana.org/assignments/ipsec-registry/ipsec-registry.xml#ipsec-registry-10
|
||||||
|
#pasn_groups=19 20 21
|
||||||
|
|
||||||
##### IEEE 802.11r configuration ##############################################
|
##### IEEE 802.11r configuration ##############################################
|
||||||
|
|
||||||
# Mobility Domain identifier (dot11FTMobilityDomainID, MDID)
|
# Mobility Domain identifier (dot11FTMobilityDomainID, MDID)
|
||||||
|
|
|
@ -955,6 +955,10 @@ void hostapd_config_free_bss(struct hostapd_bss_config *conf)
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_AIRTIME_POLICY */
|
#endif /* CONFIG_AIRTIME_POLICY */
|
||||||
|
|
||||||
|
#ifdef CONFIG_PASN
|
||||||
|
os_free(conf->pasn_groups);
|
||||||
|
#endif /* CONFIG_PASN */
|
||||||
|
|
||||||
os_free(conf);
|
os_free(conf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -871,6 +871,8 @@ struct hostapd_bss_config {
|
||||||
*/
|
*/
|
||||||
int force_kdk_derivation;
|
int force_kdk_derivation;
|
||||||
#endif /* CONFIG_TESTING_OPTIONS */
|
#endif /* CONFIG_TESTING_OPTIONS */
|
||||||
|
|
||||||
|
int *pasn_groups;
|
||||||
#endif /* CONFIG_PASN */
|
#endif /* CONFIG_PASN */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -260,6 +260,13 @@ int wpa_write_rsn_ie(struct wpa_auth_config *conf, u8 *buf, size_t len,
|
||||||
num_suites++;
|
num_suites++;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_HS20 */
|
#endif /* CONFIG_HS20 */
|
||||||
|
#ifdef CONFIG_PASN
|
||||||
|
if (conf->wpa_key_mgmt & WPA_KEY_MGMT_PASN) {
|
||||||
|
RSN_SELECTOR_PUT(pos, RSN_AUTH_KEY_MGMT_PASN);
|
||||||
|
pos += RSN_SELECTOR_LEN;
|
||||||
|
num_suites++;
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_PASN */
|
||||||
|
|
||||||
#ifdef CONFIG_RSN_TESTING
|
#ifdef CONFIG_RSN_TESTING
|
||||||
if (rsn_testing) {
|
if (rsn_testing) {
|
||||||
|
|
Loading…
Reference in a new issue