Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5981)

Unified Diff: chromeos/network/onc/onc_validator.cc

Issue 61903002: ChromeOS: Add more host verification options for OpenVpn. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chromeos/network/onc/onc_validator.h ('k') | chromeos/network/onc/onc_validator_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/network/onc/onc_validator.cc
diff --git a/chromeos/network/onc/onc_validator.cc b/chromeos/network/onc/onc_validator.cc
index d1d4c5203b443df0db3583f56922a365da9c7dc2..f5e974104c7191f9191e231229232319cb926a77 100644
--- a/chromeos/network/onc/onc_validator.cc
+++ b/chromeos/network/onc/onc_validator.cc
@@ -126,6 +126,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)
@@ -666,6 +668,21 @@ 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);
+
+ return !error_on_missing_field_ || allRequiredExist;
+}
+
bool Validator::ValidateCertificatePattern(
const base::DictionaryValue& onc_object,
base::DictionaryValue* result) {
« no previous file with comments | « chromeos/network/onc/onc_validator.h ('k') | chromeos/network/onc/onc_validator_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698