shill: Add support for connecting to WPA+802.1x networks
This includes supporting EAP-TTLS and EAP-PEAP networks.
Also, also add a "connectability" check for 802.1x networks which
checks if there are sufficient and necessary EAP parameters to attempt
a connection.
BUG=chromium-os:20901, chromium-os:23466
TEST=2 new unit tests + 3 new autotests pass (019CheckWPA_1x_AES,
072CheckWPA_1x_PEAP and 073CheckWPA_1x_TTLS)
Change-Id: I46c1886d8fd901c1f95387c984975f2aac89b28e
Reviewed-on: https://gerrit.chromium.org/gerrit/13063
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Gaurav Shah <gauravsh@chromium.org>
Tested-by: Gaurav Shah <gauravsh@chromium.org>
diff --git a/wpa_supplicant.cc b/wpa_supplicant.cc
index 544e9ff..6ba5eef 100644
--- a/wpa_supplicant.cc
+++ b/wpa_supplicant.cc
@@ -11,6 +11,9 @@
const char kBSSPropertySSID[] = "SSID";
const char kBSSPropertyMode[] = "Mode";
const char kBSSPropertySignal[] = "Signal";
+// TODO(gauravsh): Make this path be a configurable option. crosbug.com/25661
+// Location of the system root CA certificates.
+const char kCaPath[] = "/etc/ssl/certs";
const char kCurrentBSSNull[] = "/";
const char kDBusAddr[] = "fi.w1.wpa_supplicant1";
const char kDBusPath[] = "/fi/w1/wpa_supplicant1";
@@ -36,11 +39,25 @@
const char kNetworkModeAdHoc[] = "ad-hoc";
const char kNetworkModeAccessPoint[] = "ap";
const char kNetworkPropertyBgscan[] = "bgscan";
+const char kNetworkPropertyCaPath[] = "ca_path";
+const char kNetworkPropertyEapKeyManagement[] = "key_mgmt";
+const char kNetworkPropertyEapIdentity[] = "identity";
+const char kNetworkPropertyEapEap[] = "eap";
+const char kNetworkPropertyEapInnerEap[] = "phase2";
+const char kNetworkPropertyEapAnonymousIdentity[] = "anonymous_identity";
+const char kNetworkPropertyEapClientCert[] = "client_cert";
+const char kNetworkPropertyEapPrivateKey[] = "private_key";
+const char kNetworkPropertyEapPrivateKeyPassword[] = "private_key_passwd";
+const char kNetworkPropertyEapCaCert[] = "ca_cert";
+const char kNetworkPropertyEapCaPassword[] = "password";
+const char kNetworkPropertyEapCertId[] = "cert_id";
+const char kNetworkPropertyEapKeyId[] = "key_id";
+const char kNetworkPropertyEapCaCertId[] = "ca_cert_id";
+const char kNetworkPropertyEapPin[] = "pin";
const char kNetworkPropertyMode[] = "mode";
const char kNetworkPropertyScanSSID[] = "scan_ssid";
const char kNetworkPropertySSID[] = "ssid";
const char kPropertyAuthAlg[] = "auth_alg";
-const char kPropertyKeyManagement[] = "key_mgmt";
const char kPropertyPreSharedKey[] = "psk";
const char kPropertyPrivacy[] = "Privacy";
const char kPropertyRSN[] = "RSN";