hostapd: Add WPA-EAP-SUITE-B-192 (WPA3-Enterprise)
This adds support for the WPA3-Enterprise mode authentication. The settings for the WPA3-Enterpriese mode are defined in WPA3_Specification_v1.0.pdf. This mode also requires ieee80211w and guarantees at least 192 bit of security. This does not increase the ipkg size by a significant size. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
		@@ -97,11 +97,11 @@ endif
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
ifeq ($(LOCAL_VARIANT),full)
 | 
					ifeq ($(LOCAL_VARIANT),full)
 | 
				
			||||||
  ifeq ($(SSL_VARIANT),openssl)
 | 
					  ifeq ($(SSL_VARIANT),openssl)
 | 
				
			||||||
    DRIVER_MAKEOPTS += CONFIG_TLS=openssl CONFIG_SAE=y CONFIG_OWE=y
 | 
					    DRIVER_MAKEOPTS += CONFIG_TLS=openssl CONFIG_SAE=y CONFIG_OWE=y CONFIG_SUITEB192=y
 | 
				
			||||||
    TARGET_LDFLAGS += -lcrypto -lssl
 | 
					    TARGET_LDFLAGS += -lcrypto -lssl
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
  ifeq ($(SSL_VARIANT),wolfssl)
 | 
					  ifeq ($(SSL_VARIANT),wolfssl)
 | 
				
			||||||
    DRIVER_MAKEOPTS += CONFIG_TLS=wolfssl CONFIG_WPS_NFC=1 CONFIG_SAE=y CONFIG_OWE=y
 | 
					    DRIVER_MAKEOPTS += CONFIG_TLS=wolfssl CONFIG_WPS_NFC=1 CONFIG_SAE=y CONFIG_OWE=y CONFIG_SUITEB192=y
 | 
				
			||||||
    TARGET_LDFLAGS += -lwolfssl
 | 
					    TARGET_LDFLAGS += -lwolfssl
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,6 +45,15 @@ hostapd_append_wpa_key_mgmt() {
 | 
				
			|||||||
			[ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-${auth_type_l}"
 | 
								[ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-${auth_type_l}"
 | 
				
			||||||
			[ "${ieee80211w:-0}" -gt 0 ] && append wpa_key_mgmt "WPA-${auth_type_l}-SHA256"
 | 
								[ "${ieee80211w:-0}" -gt 0 ] && append wpa_key_mgmt "WPA-${auth_type_l}-SHA256"
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
 | 
							eap192)
 | 
				
			||||||
 | 
								append wpa_key_mgmt "WPA-EAP-SUITE-B-192"
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
							eap-eap192)
 | 
				
			||||||
 | 
								append wpa_key_mgmt "WPA-EAP-SUITE-B-192"
 | 
				
			||||||
 | 
								append wpa_key_mgmt "WPA-EAP"
 | 
				
			||||||
 | 
								[ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-EAP"
 | 
				
			||||||
 | 
								[ "${ieee80211w:-0}" -gt 0 ] && append wpa_key_mgmt "WPA-EAP-SHA256"
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
		sae)
 | 
							sae)
 | 
				
			||||||
			append wpa_key_mgmt "SAE"
 | 
								append wpa_key_mgmt "SAE"
 | 
				
			||||||
			[ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-SAE"
 | 
								[ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-SAE"
 | 
				
			||||||
@@ -307,7 +316,7 @@ hostapd_set_bss_options() {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	case "$auth_type" in
 | 
						case "$auth_type" in
 | 
				
			||||||
		sae|owe)
 | 
							sae|owe|eap192|eap-eap192)
 | 
				
			||||||
			set_default ieee80211w 2
 | 
								set_default ieee80211w 2
 | 
				
			||||||
			set_default sae_require_mfp 1
 | 
								set_default sae_require_mfp 1
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
@@ -350,7 +359,7 @@ hostapd_set_bss_options() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			wps_possible=1
 | 
								wps_possible=1
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
		eap)
 | 
							eap|eap192|eap-eap192)
 | 
				
			||||||
			json_get_vars \
 | 
								json_get_vars \
 | 
				
			||||||
				auth_server auth_secret auth_port \
 | 
									auth_server auth_secret auth_port \
 | 
				
			||||||
				dae_client dae_secret dae_port \
 | 
									dae_client dae_secret dae_port \
 | 
				
			||||||
@@ -771,7 +780,7 @@ wpa_supplicant_add_network() {
 | 
				
			|||||||
			fi
 | 
								fi
 | 
				
			||||||
			append network_data "$passphrase" "$N$T"
 | 
								append network_data "$passphrase" "$N$T"
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
		eap)
 | 
							eap|eap192|eap-eap192)
 | 
				
			||||||
			hostapd_append_wpa_key_mgmt
 | 
								hostapd_append_wpa_key_mgmt
 | 
				
			||||||
			key_mgmt="$wpa_key_mgmt"
 | 
								key_mgmt="$wpa_key_mgmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,6 +34,10 @@ static inline int has_feature(const char *feat)
 | 
				
			|||||||
#ifdef CONFIG_OWE
 | 
					#ifdef CONFIG_OWE
 | 
				
			||||||
	if (!strcmp(feat, "owe"))
 | 
						if (!strcmp(feat, "owe"))
 | 
				
			||||||
		return 1;
 | 
							return 1;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef CONFIG_SUITEB192
 | 
				
			||||||
 | 
						if (!strcmp(feat, "suiteb192"))
 | 
				
			||||||
 | 
							return 1;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user