Index: chrome/browser/chromeos/cros/network_library.cc |
diff --git a/chrome/browser/chromeos/cros/network_library.cc b/chrome/browser/chromeos/cros/network_library.cc |
index 2c3eb159bdbd82b493618ff22a32c6bf80d4c777..f31874c9f927d57b93ab3e2685c23cc8e9b87ff6 100644 |
--- a/chrome/browser/chromeos/cros/network_library.cc |
+++ b/chrome/browser/chromeos/cros/network_library.cc |
@@ -227,9 +227,8 @@ const char* kSecurityPsk = "psk"; |
const char* kSecurityNone = "none"; |
// Flimflam L2TPIPsec property names. |
-const char* kL2TPIPSecCACertProperty = "L2TPIPsec.CACert"; |
-const char* kL2TPIPSecCertProperty = "L2TPIPsec.Cert"; |
-const char* kL2TPIPSecKeyProperty = "L2TPIPsec.Key"; |
+const char* kL2TPIPSecCACertNSSProperty = "L2TPIPsec.CACertNSS"; |
+const char* kL2TPIPSecClientCertIDProperty = "L2TPIPsec.ClientCertID"; |
const char* kL2TPIPSecPSKProperty = "L2TPIPsec.PSK"; |
const char* kL2TPIPSecUserProperty = "L2TPIPsec.User"; |
const char* kL2TPIPSecPasswordProperty = "L2TPIPsec.Password"; |
@@ -472,9 +471,8 @@ enum PropertyIndex { |
PROPERTY_INDEX_IMEI, |
PROPERTY_INDEX_IMSI, |
PROPERTY_INDEX_IS_ACTIVE, |
- PROPERTY_INDEX_L2TPIPSEC_CA_CERT, |
- PROPERTY_INDEX_L2TPIPSEC_CERT, |
Charlie Lee
2011/05/20 21:44:46
is this still needed?
|
- PROPERTY_INDEX_L2TPIPSEC_KEY, |
+ PROPERTY_INDEX_L2TPIPSEC_CA_CERT_NSS, |
+ PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_ID, |
PROPERTY_INDEX_L2TPIPSEC_PASSWORD, |
PROPERTY_INDEX_L2TPIPSEC_PSK, |
PROPERTY_INDEX_L2TPIPSEC_USER, |
@@ -563,9 +561,8 @@ StringToEnum<PropertyIndex>::Pair property_index_table[] = { |
{ kImeiProperty, PROPERTY_INDEX_IMEI }, |
{ kImsiProperty, PROPERTY_INDEX_IMSI }, |
{ kIsActiveProperty, PROPERTY_INDEX_IS_ACTIVE }, |
- { kL2TPIPSecCACertProperty, PROPERTY_INDEX_L2TPIPSEC_CA_CERT }, |
- { kL2TPIPSecCertProperty, PROPERTY_INDEX_L2TPIPSEC_CERT }, |
- { kL2TPIPSecKeyProperty, PROPERTY_INDEX_L2TPIPSEC_KEY }, |
+ { kL2TPIPSecCACertNSSProperty, PROPERTY_INDEX_L2TPIPSEC_CA_CERT_NSS }, |
+ { kL2TPIPSecClientCertIDProperty, PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_ID }, |
{ kL2TPIPSecPasswordProperty, PROPERTY_INDEX_L2TPIPSEC_PASSWORD }, |
{ kL2TPIPSecPSKProperty, PROPERTY_INDEX_L2TPIPSEC_PSK }, |
{ kL2TPIPSecUserProperty, PROPERTY_INDEX_L2TPIPSEC_USER }, |
@@ -1310,14 +1307,12 @@ bool VirtualNetwork::ParseProviderValue(int index, const Value* value) { |
} |
break; |
} |
- case PROPERTY_INDEX_L2TPIPSEC_CA_CERT: |
- return value->GetAsString(&ca_cert_); |
+ case PROPERTY_INDEX_L2TPIPSEC_CA_CERT_NSS: |
+ return value->GetAsString(&ca_cert_nss_); |
case PROPERTY_INDEX_L2TPIPSEC_PSK: |
return value->GetAsString(&psk_passphrase_); |
- case PROPERTY_INDEX_L2TPIPSEC_CERT: |
- return value->GetAsString(&user_cert_); |
- case PROPERTY_INDEX_L2TPIPSEC_KEY: |
- return value->GetAsString(&user_cert_key_); |
+ case PROPERTY_INDEX_L2TPIPSEC_CLIENT_CERT_ID: |
+ return value->GetAsString(&client_cert_id_); |
case PROPERTY_INDEX_L2TPIPSEC_USER: |
return value->GetAsString(&username_); |
case PROPERTY_INDEX_L2TPIPSEC_PASSWORD: |
@@ -1360,7 +1355,7 @@ void VirtualNetwork::ParseInfo(const DictionaryValue* info) { |
VLOG(1) << "VPN: " << name() |
<< " Type: " << ProviderTypeToString(provider_type()); |
if (provider_type_ == PROVIDER_TYPE_L2TP_IPSEC_PSK) { |
- if (!user_cert_.empty()) |
+ if (!client_cert_id_.empty()) |
provider_type_ = PROVIDER_TYPE_L2TP_IPSEC_USER_CERT; |
} |
} |
@@ -1375,7 +1370,7 @@ bool VirtualNetwork::NeedMoreInfoToConnect() const { |
break; |
case PROVIDER_TYPE_L2TP_IPSEC_USER_CERT: |
case PROVIDER_TYPE_OPEN_VPN: |
- if (user_cert_.empty()) |
+ if (client_cert_id_.empty()) |
return true; |
break; |
case PROVIDER_TYPE_MAX: |
@@ -1384,8 +1379,8 @@ bool VirtualNetwork::NeedMoreInfoToConnect() const { |
return false; |
} |
-void VirtualNetwork::SetCACert(const std::string& ca_cert) { |
- SetStringProperty(kL2TPIPSecCACertProperty, ca_cert, &ca_cert_); |
+void VirtualNetwork::SetCACertNSS(const std::string& ca_cert_nss) { |
+ SetStringProperty(kL2TPIPSecCACertNSSProperty, ca_cert_nss, &ca_cert_nss_); |
} |
void VirtualNetwork::SetPSKPassphrase(const std::string& psk_passphrase) { |
@@ -1393,12 +1388,8 @@ void VirtualNetwork::SetPSKPassphrase(const std::string& psk_passphrase) { |
&psk_passphrase_); |
} |
-void VirtualNetwork::SetUserCert(const std::string& user_cert) { |
- SetStringProperty(kL2TPIPSecCertProperty, user_cert, &user_cert_); |
-} |
- |
-void VirtualNetwork::SetUserCertKey(const std::string& key) { |
- SetStringProperty(kL2TPIPSecKeyProperty, key, &user_cert_key_); |
+void VirtualNetwork::SetClientCertID(const std::string& cert_id) { |
+ SetStringProperty(kL2TPIPSecClientCertIDProperty, cert_id, &client_cert_id_); |
} |
void VirtualNetwork::SetUsername(const std::string& username) { |
@@ -2977,6 +2968,27 @@ class NetworkLibraryImpl : public NetworkLibrary { |
this); |
} |
+ virtual void ConnectToVirtualNetworkCert( |
+ const std::string& service_name, |
+ const std::string& server_hostname, |
+ const std::string& client_cert_id, |
+ const std::string& username, |
+ const std::string& user_passphrase) { |
+ if (!EnsureCrosLoaded()) |
+ return; |
+ // Store the connection data to be used by the callback. |
+ connect_data_.service_name = service_name; |
+ connect_data_.server_hostname = server_hostname; |
+ connect_data_.vpn_client_cert_pkcs11_id = client_cert_id; |
+ connect_data_.psk_username = username; |
+ connect_data_.passphrase = user_passphrase; |
+ RequestVirtualNetwork(service_name.c_str(), |
+ server_hostname.c_str(), |
+ kProviderL2tpIpsec, |
+ VPNServiceUpdateAndConnect, |
+ this); |
+ } |
+ |
// Callback |
static void VPNServiceUpdateAndConnect(void* object, |
const char* service_path, |
@@ -3008,9 +3020,8 @@ class NetworkLibraryImpl : public NetworkLibrary { |
vpn->set_added(true); |
if (!data.server_hostname.empty()) |
vpn->set_server_hostname(data.server_hostname); |
- vpn->SetCACert(""); |
- vpn->SetUserCert(""); |
- vpn->SetUserCertKey(""); |
+ vpn->SetCACertNSS(""); |
+ vpn->SetClientCertID(data.vpn_client_cert_pkcs11_id); |
vpn->SetPSKPassphrase(data.psk_key); |
vpn->SetUsername(data.psk_username); |
vpn->SetUserPassphrase(data.passphrase); |
@@ -4468,6 +4479,7 @@ class NetworkLibraryImpl : public NetworkLibrary { |
std::string psk_key; |
std::string psk_username; |
std::string server_hostname; |
+ std::string vpn_client_cert_pkcs11_id; |
}; |
ConnectData connect_data_; |
@@ -4614,6 +4626,12 @@ class NetworkLibraryStubImpl : public NetworkLibrary { |
const std::string& psk, |
const std::string& username, |
const std::string& user_passphrase) {} |
+ virtual void ConnectToVirtualNetworkCert( |
+ const std::string& service_name, |
+ const std::string& server_hostname, |
+ const std::string& client_cert_id, |
+ const std::string& username, |
+ const std::string& user_passphrase) {} |
virtual void SignalCellularPlanPayment() {} |
virtual bool HasRecentCellularPlanPayment() { return false; } |
virtual void DisconnectFromNetwork(const Network* network) {} |