hostapd.sh: Add support for "anonymous_identity" config field
[openwrt/openwrt.git] / package / network / services / hostapd / files / netifd.sh
index cedf5d5589e73f25209618ac8d63b50e02638657..005112d828e4865a1010bea37ef36cc549b43d38 100644 (file)
@@ -139,7 +139,7 @@ hostapd_common_add_bss_config() {
        config_add_string nasid
        config_add_string ownip
        config_add_string iapp_interface
-       config_add_string eap_type ca_cert client_cert identity auth priv_key priv_key_pwd
+       config_add_string eap_type ca_cert client_cert identity anonymous_identity auth priv_key priv_key_pwd
 
        config_add_int dynamic_vlan vlan_naming
        config_add_string vlan_tagged_interface vlan_bridge
@@ -623,9 +623,10 @@ wpa_supplicant_add_network() {
                        key_mgmt='WPA-EAP'
                        [ "$ieee80211r" -gt 0 ] && key_mgmt="FT-EAP $key_mgmt"
 
-                       json_get_vars eap_type identity ca_cert
+                       json_get_vars eap_type identity anonymous_identity ca_cert
                        [ -n "$ca_cert" ] && append network_data "ca_cert=\"$ca_cert\"" "$N$T"
                        [ -n "$identity" ] && append network_data "identity=\"$identity\"" "$N$T"
+                       [ -n "$anonymous_identity" ] && append network_data "anonymous_identity=\"$anonymous_identity\"" "$N$T"
                        case "$eap_type" in
                                tls)
                                        json_get_vars client_cert priv_key priv_key_pwd
@@ -634,8 +635,19 @@ wpa_supplicant_add_network() {
                                        append network_data "private_key_passwd=\"$priv_key_pwd\"" "$N$T"
                                ;;
                                fast|peap|ttls)
-                                       json_get_vars auth password
+                                       json_get_vars auth password ca_cert2 client_cert2 priv_key2 priv_key2_pwd
                                        set_default auth MSCHAPV2
+
+                                       if [ "$auth" = "EAP-TLS" ]; then
+                                               [ -n "$ca_cert2" ] &&
+                                                       append network_data "ca_cert2=\"$ca_cert2\"" "$N$T"
+                                               append network_data "client_cert2=\"$client_cert2\"" "$N$T"
+                                               append network_data "private_key2=\"$priv_key2\"" "$N$T"
+                                               append network_data "private_key2_passwd=\"$priv_key2_pwd\"" "$N$T"
+                                       else
+                                               append network_data "password=\"$password\"" "$N$T"
+                                       fi
+
                                        phase2proto="auth="
                                        case "$auth" in
                                                "auth"*)
@@ -648,7 +660,6 @@ wpa_supplicant_add_network() {
                                                ;;
                                        esac
                                        append network_data "phase2=\"$phase2proto$auth\"" "$N$T"
-                                       append network_data "password=\"$password\"" "$N$T"
                                ;;
                        esac
                        append network_data "eap=$(echo $eap_type | tr 'a-z' 'A-Z')" "$N$T"