Index: chromeos/network/onc/onc_validator.cc |
diff --git a/chromeos/network/onc/onc_validator.cc b/chromeos/network/onc/onc_validator.cc |
index 29e58ac7b53797ab4bed815e2a7d536eb00bb151..3c9480b60dd9802c720d68445c4c887120788d94 100644 |
--- a/chromeos/network/onc/onc_validator.cc |
+++ b/chromeos/network/onc/onc_validator.cc |
@@ -132,6 +132,8 @@ scoped_ptr<base::DictionaryValue> Validator::MapObject( |
valid = ValidateIPsec(onc_object, repaired.get()); |
else if (&signature == &kOpenVPNSignature) |
valid = ValidateOpenVPN(onc_object, repaired.get()); |
+ else if (&signature == &kVerifyX509Signature) |
+ valid = ValidateVerifyX509(onc_object, repaired.get()); |
else if (&signature == &kCertificatePatternSignature) |
valid = ValidateCertificatePattern(onc_object, repaired.get()); |
else if (&signature == &kProxySettingsSignature) |
@@ -672,6 +674,22 @@ bool Validator::ValidateOpenVPN( |
return !error_on_missing_field_ || allRequiredExist; |
} |
+bool Validator::ValidateVerifyX509(const base::DictionaryValue& onc_object, |
+ base::DictionaryValue* result) { |
+ using namespace ::onc::verify_x509; |
+ |
+ static const char* kValidTypeValues[] = |
+ {types::kName, types::kNamePrefix, types::kSubject, NULL}; |
+ |
+ if (FieldExistsAndHasNoValidValue(*result, kType, kValidTypeValues)) |
+ return false; |
+ |
+ bool allRequiredExist = |
+ RequireField(*result, kName) & RequireField(*result, kType); |
bartfab (slow)
2013/11/07 10:48:56
Nit: &&
pneubeck (no reviews)
2013/11/11 11:53:43
Done.
|
+ |
+ return !error_on_missing_field_ || allRequiredExist; |
+} |
+ |
bool Validator::ValidateCertificatePattern( |
const base::DictionaryValue& onc_object, |
base::DictionaryValue* result) { |