From 865163d041fb9482d95e2d7ca6e2fa50325faa3d Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Mon, 16 Mar 2009 12:21:03 -0400 Subject: [PATCH] ifcfg-rh: add tests for Dynamic WEP + TTLS + CHAP --- .../tests/network-scripts/Makefile.am | 2 + .../ifcfg-test-wifi-wep-eap-ttls-chap | 20 ++ .../keys-test-wifi-wep-eap-ttls-chap | 2 + .../plugins/ifcfg-rh/tests/test-ifcfg-rh.c | 177 ++++++++++++++++-- 4 files changed, 182 insertions(+), 19 deletions(-) create mode 100644 system-settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-eap-ttls-chap create mode 100644 system-settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-eap-ttls-chap diff --git a/system-settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.am b/system-settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.am index 1f150fbaca..aef499b808 100644 --- a/system-settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.am +++ b/system-settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.am @@ -15,6 +15,8 @@ EXTRA_DIST = \ keys-test-wifi-wep \ ifcfg-test-wifi-wep-adhoc \ keys-test-wifi-wep-adhoc \ + ifcfg-test-wifi-wep-eap-ttls-chap \ + keys-test-wifi-wep-eap-ttls-chap \ ifcfg-test-wifi-wpa-psk \ keys-test-wifi-wpa-psk \ ifcfg-test-wifi-wpa-psk-adhoc \ diff --git a/system-settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-eap-ttls-chap b/system-settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-eap-ttls-chap new file mode 100644 index 0000000000..bdea6aa3b0 --- /dev/null +++ b/system-settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-eap-ttls-chap @@ -0,0 +1,20 @@ +# Intel Corporation 82540EP Gigabit Ethernet Controller (Mobile) +TYPE=Wireless +DEVICE=eth2 +HWADDR=00:16:41:11:22:33 +BOOTPROTO=dhcp +ONBOOT=yes +ONBOOT=yes +USERCTL=yes +IPV6INIT=no +NM_CONTROLLED=yes +PEERDNS=yes +ESSID=blahblah +MODE=Managed +RATE=auto +KEY_MGMT=IEEE8021X +IEEE_8021X_EAP_METHODS=TTLS +IEEE_8021X_IDENTITY="David Smith" +IEEE_8021X_CA_CERT=test_ca_cert.pem +IEEE_8021X_INNER_AUTH_METHODS=CHAP + diff --git a/system-settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-eap-ttls-chap b/system-settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-eap-ttls-chap new file mode 100644 index 0000000000..6936f2e063 --- /dev/null +++ b/system-settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-eap-ttls-chap @@ -0,0 +1,2 @@ +IEEE_8021X_PASSWORD="foobar baz" + diff --git a/system-settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c b/system-settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c index d3de7bb875..d1f3802414 100644 --- a/system-settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c +++ b/system-settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c @@ -2667,7 +2667,7 @@ test_read_wifi_wpa_eap_ttls_tls (void) connection = connection_from_file (TEST_IFCFG_WIFI_WPA_EAP_TTLS_TLS, NULL, - TYPE_ETHERNET, + TYPE_WIRELESS, &unmanaged, &keyfile, &error, @@ -2730,24 +2730,6 @@ test_read_wifi_wpa_eap_ttls_tls (void) NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_EAP); - /* EAP methods */ - ASSERT (nm_setting_802_1x_get_num_eap_methods (s_8021x) == 1, - "wifi-wpa-eap-ttls-tls-verify-8021x", "failed to verify %s: unexpected %s / %s key value", - TEST_IFCFG_WIFI_WPA_EAP_TTLS_TLS, - NM_SETTING_802_1X_SETTING_NAME, - NM_SETTING_802_1X_EAP); - tmp = nm_setting_802_1x_get_eap_method (s_8021x, 0); - ASSERT (tmp != NULL, - "wifi-wpa-eap-ttls-tls-verify-8021x", "failed to verify %s: missing %s / %s eap method", - TEST_IFCFG_WIFI_WPA_EAP_TTLS_TLS, - NM_SETTING_802_1X_SETTING_NAME, - NM_SETTING_802_1X_EAP); - ASSERT (strcmp (tmp, "ttls") == 0, - "wifi-wpa-eap-ttls-tls-verify-8021x", "failed to verify %s: unexpected %s / %s key value", - TEST_IFCFG_WIFI_WPA_EAP_TTLS_TLS, - NM_SETTING_802_1X_SETTING_NAME, - NM_SETTING_802_1X_EAP); - /* CA Cert */ verify_cert_or_key (CK_CA_CERT, s_8021x, @@ -2813,6 +2795,162 @@ test_read_wifi_wpa_eap_ttls_tls (void) g_object_unref (connection); } +#define TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP TEST_DIR"/network-scripts/ifcfg-test-wifi-wep-eap-ttls-chap" +#define TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP_CA_CERT TEST_DIR"/network-scripts/test_ca_cert.pem" + +static void +test_read_wifi_wep_eap_ttls_chap (void) +{ + NMConnection *connection; + NMSettingWireless *s_wireless; + NMSettingWirelessSecurity *s_wsec; + NMSettingIP4Config *s_ip4; + NMSetting8021x *s_8021x; + gboolean unmanaged = FALSE; + char *keyfile = NULL; + gboolean ignore_error = FALSE; + GError *error = NULL; + const char *tmp; + const char *expected_password = "foobar baz"; + const char *expected_identity = "David Smith"; + const char *expected_key_mgmt = "ieee8021x"; + + connection = connection_from_file (TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + NULL, + TYPE_WIRELESS, + &unmanaged, + &keyfile, + &error, + &ignore_error); + ASSERT (connection != NULL, + "wifi-wep-eap-ttls-chap-read", "failed to read %s: %s", TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, error->message); + + ASSERT (nm_connection_verify (connection, &error), + "wifi-wep-eap-ttls-chap-verify", "failed to verify %s: %s", TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, error->message); + + ASSERT (unmanaged == FALSE, + "wifi-wep-eap-ttls-chap-verify", "failed to verify %s: unexpected unmanaged value", TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP); + + /* ===== WIRELESS SETTING ===== */ + + s_wireless = NM_SETTING_WIRELESS (nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS)); + ASSERT (s_wireless != NULL, + "wifi-wep-eap-ttls-chap-verify-wireless", "failed to verify %s: missing %s setting", + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + NM_SETTING_WIRELESS_SETTING_NAME); + + /* ===== IPv4 SETTING ===== */ + + s_ip4 = NM_SETTING_IP4_CONFIG (nm_connection_get_setting (connection, NM_TYPE_SETTING_IP4_CONFIG)); + ASSERT (s_ip4 != NULL, + "wifi-wep-eap-ttls-chap-verify-ip4", "failed to verify %s: missing %s setting", + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + NM_SETTING_IP4_CONFIG_SETTING_NAME); + + /* Method */ + tmp = nm_setting_ip4_config_get_method (s_ip4); + ASSERT (strcmp (tmp, NM_SETTING_IP4_CONFIG_METHOD_AUTO) == 0, + "wifi-wep-eap-ttls-chap-verify-ip4", "failed to verify %s: unexpected %s / %s key value", + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + NM_SETTING_IP4_CONFIG_SETTING_NAME, + NM_SETTING_IP4_CONFIG_METHOD); + + /* ===== 802.1x SETTING ===== */ + s_wsec = NM_SETTING_WIRELESS_SECURITY (nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS_SECURITY)); + ASSERT (s_wsec != NULL, + "wifi-wep-eap-ttls-chap-verify-wireless-security", "failed to verify %s: missing %s setting", + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + NM_SETTING_802_1X_SETTING_NAME); + + /* Key management */ + tmp = nm_setting_wireless_security_get_key_mgmt (s_wsec); + ASSERT (tmp != NULL, + "wifi-wep-eap-ttls-chap-verify-wireless-security", "failed to verify %s: missing %s / %s key", + TEST_IFCFG_WIFI_WPA_PSK, + NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, + NM_SETTING_WIRELESS_SECURITY_KEY_MGMT); + ASSERT (strcmp (tmp, expected_key_mgmt) == 0, + "wifi-wep-eap-ttls-chap-verify-wireless-security", "failed to verify %s: unexpected %s / %s key value", + TEST_IFCFG_WIFI_WPA_PSK, + NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, + NM_SETTING_WIRELESS_SECURITY_KEY_MGMT); + + /* ===== 802.1x SETTING ===== */ + s_8021x = NM_SETTING_802_1X (nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X)); + ASSERT (s_8021x != NULL, + "wifi-wep-eap-ttls-chap-verify-8021x", "failed to verify %s: missing %s setting", + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + NM_SETTING_802_1X_SETTING_NAME); + + /* EAP methods */ + ASSERT (nm_setting_802_1x_get_num_eap_methods (s_8021x) == 1, + "wifi-wep-eap-ttls-chap-verify-8021x", "failed to verify %s: unexpected %s / %s key value", + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + NM_SETTING_802_1X_SETTING_NAME, + NM_SETTING_802_1X_EAP); + tmp = nm_setting_802_1x_get_eap_method (s_8021x, 0); + ASSERT (tmp != NULL, + "wifi-wep-eap-ttls-chap-verify-8021x", "failed to verify %s: missing %s / %s eap method", + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + NM_SETTING_802_1X_SETTING_NAME, + NM_SETTING_802_1X_EAP); + ASSERT (strcmp (tmp, "ttls") == 0, + "wifi-wep-eap-ttls-chap-verify-8021x", "failed to verify %s: unexpected %s / %s key value", + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + NM_SETTING_802_1X_SETTING_NAME, + NM_SETTING_802_1X_EAP); + + /* CA Cert */ + verify_cert_or_key (CK_CA_CERT, + s_8021x, + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP_CA_CERT, + NULL, + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + "wifi-wep-eap-ttls-chap-verify-8021x", + NM_SETTING_802_1X_CA_CERT); + + /* Inner auth method */ + tmp = nm_setting_802_1x_get_phase2_auth (s_8021x); + ASSERT (tmp != NULL, + "wifi-wep-eap-ttls-chap-verify-8021x", "failed to verify %s: missing %s / %s eap method", + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + NM_SETTING_802_1X_SETTING_NAME, + NM_SETTING_802_1X_PHASE2_AUTH); + ASSERT (strcmp (tmp, "chap") == 0, + "wifi-wep-eap-ttls-chap-verify-8021x", "failed to verify %s: unexpected %s / %s key value", + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + NM_SETTING_802_1X_SETTING_NAME, + NM_SETTING_802_1X_PHASE2_AUTH); + + /* Password */ + tmp = nm_setting_802_1x_get_identity (s_8021x); + ASSERT (tmp != NULL, + "wifi-wep-eap-ttls-chap-verify-8021x", "failed to verify %s: missing %s / %s key", + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + NM_SETTING_802_1X_SETTING_NAME, + NM_SETTING_802_1X_IDENTITY); + ASSERT (strcmp (tmp, expected_identity) == 0, + "wifi-wep-eap-ttls-chap-verify-8021x", "failed to verify %s: unexpected %s / %s key value", + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + NM_SETTING_802_1X_SETTING_NAME, + NM_SETTING_802_1X_IDENTITY); + + /* Password */ + tmp = nm_setting_802_1x_get_password (s_8021x); + ASSERT (tmp != NULL, + "wifi-wep-eap-ttls-chap-verify-8021x", "failed to verify %s: missing %s / %s key", + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + NM_SETTING_802_1X_SETTING_NAME, + NM_SETTING_802_1X_PASSWORD); + ASSERT (strcmp (tmp, expected_password) == 0, + "wifi-wep-eap-ttls-chap-verify-8021x", "failed to verify %s: unexpected %s / %s key value", + TEST_IFCFG_WIFI_WEP_EAP_TTLS_CHAP, + NM_SETTING_802_1X_SETTING_NAME, + NM_SETTING_802_1X_PASSWORD); + + g_object_unref (connection); +} + int main (int argc, char **argv) { GError *error = NULL; @@ -2842,6 +2980,7 @@ int main (int argc, char **argv) test_read_wifi_wpa_psk_hex (); test_read_wifi_wpa_eap_tls (); test_read_wifi_wpa_eap_ttls_tls (); + test_read_wifi_wep_eap_ttls_chap (); basename = g_path_get_basename (argv[0]); fprintf (stdout, "%s: SUCCESS\n", basename);