Chromium Code Reviews| Index: chromeos/network/client_cert_util.cc |
| diff --git a/chromeos/network/client_cert_util.cc b/chromeos/network/client_cert_util.cc |
| index ad2bc457b3037ecf7178609cd3084bdde9db99b1..d0c9764193a44d43103a93fc91268f3dfd52b1e9 100644 |
| --- a/chromeos/network/client_cert_util.cc |
| +++ b/chromeos/network/client_cert_util.cc |
| @@ -91,6 +91,13 @@ class IssuerCaFilter { |
| const std::vector<std::string>& issuer_ca_pems_; |
| }; |
| +std::string GetStringFromDictionary(const base::DictionaryValue& dict, |
| + const std::string& key) { |
| + std::string s; |
| + dict.GetStringWithoutPathExpansion(key, &s); |
| + return s; |
| +} |
| + |
| } // namespace |
| // Returns true only if any fields set in this pattern match exactly with |
| @@ -238,6 +245,36 @@ void SetShillProperties(const client_cert::ConfigType cert_config_type, |
| properties->SetStringWithoutPathExpansion(tpm_pin_property, tpm_pin); |
| } |
| +bool IsCertificateConfigured(const client_cert::ConfigType cert_config_type, |
| + const base::DictionaryValue& service_properties) { |
| + // VPN certificate properties are read from the Provider dictionary. |
| + const base::DictionaryValue* provider_properties = NULL; |
| + service_properties.GetDictionaryWithoutPathExpansion( |
| + flimflam::kProviderProperty, &provider_properties); |
| + switch (cert_config_type) { |
| + case CONFIG_TYPE_NONE: |
| + return true; |
| + case CONFIG_TYPE_OPENVPN: |
| + // OpenVPN generally requires a passphrase and we don't know whether or |
|
pneubeck (no reviews)
2013/09/05 07:45:04
nit: or -> or not
stevenjb
2013/09/05 16:29:35
Done.
|
| + // one is required, so always return false here. |
| + return false; |
| + case CONFIG_TYPE_IPSEC: |
| + // IPSec may require a passphrase, so return false here also. |
| + return false; |
| + case CONFIG_TYPE_EAP: { |
| + std::string cert_id = GetStringFromDictionary( |
| + service_properties, flimflam::kEapCertIdProperty); |
| + std::string key_id = GetStringFromDictionary( |
| + service_properties, flimflam::kEapKeyIdProperty); |
| + std::string identity = GetStringFromDictionary( |
| + service_properties, flimflam::kEapIdentityProperty); |
| + return !cert_id.empty() && !key_id.empty() && !identity.empty(); |
| + } |
| + } |
| + NOTREACHED(); |
| + return false; |
| +} |
| + |
| } // namespace client_cert |
| } // namespace chromeos |