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

Side by Side Diff: chromeos/network/onc/onc_validator.cc

Issue 1019033002: Add an ONC property for the third-party VPN provider extension ID (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed browser tests. Created 5 years, 9 months 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 unified diff | 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 »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chromeos/network/onc/onc_validator.h" 5 #include "chromeos/network/onc/onc_validator.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/json/json_writer.h" 9 #include "base/json/json_writer.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 &signature == &kStaticIPConfigSignature) { 115 &signature == &kStaticIPConfigSignature) {
116 valid = ValidateIPConfig(repaired.get()); 116 valid = ValidateIPConfig(repaired.get());
117 } else if (&signature == &kWiFiSignature) { 117 } else if (&signature == &kWiFiSignature) {
118 valid = ValidateWiFi(repaired.get()); 118 valid = ValidateWiFi(repaired.get());
119 } else if (&signature == &kVPNSignature) { 119 } else if (&signature == &kVPNSignature) {
120 valid = ValidateVPN(repaired.get()); 120 valid = ValidateVPN(repaired.get());
121 } else if (&signature == &kIPsecSignature) { 121 } else if (&signature == &kIPsecSignature) {
122 valid = ValidateIPsec(repaired.get()); 122 valid = ValidateIPsec(repaired.get());
123 } else if (&signature == &kOpenVPNSignature) { 123 } else if (&signature == &kOpenVPNSignature) {
124 valid = ValidateOpenVPN(repaired.get()); 124 valid = ValidateOpenVPN(repaired.get());
125 } else if (&signature == &kThirdPartyVPNSignature) {
126 valid = ValidateThirdPartyVPN(repaired.get());
125 } else if (&signature == &kVerifyX509Signature) { 127 } else if (&signature == &kVerifyX509Signature) {
126 valid = ValidateVerifyX509(repaired.get()); 128 valid = ValidateVerifyX509(repaired.get());
127 } else if (&signature == &kCertificatePatternSignature) { 129 } else if (&signature == &kCertificatePatternSignature) {
128 valid = ValidateCertificatePattern(repaired.get()); 130 valid = ValidateCertificatePattern(repaired.get());
129 } else if (&signature == &kProxySettingsSignature) { 131 } else if (&signature == &kProxySettingsSignature) {
130 valid = ValidateProxySettings(repaired.get()); 132 valid = ValidateProxySettings(repaired.get());
131 } else if (&signature == &kProxyLocationSignature) { 133 } else if (&signature == &kProxyLocationSignature) {
132 valid = ValidateProxyLocation(repaired.get()); 134 valid = ValidateProxyLocation(repaired.get());
133 } else if (&signature == &kEAPSignature) { 135 } else if (&signature == &kEAPSignature) {
134 valid = ValidateEAP(repaired.get()); 136 valid = ValidateEAP(repaired.get());
(...skipping 541 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 all_required_exist &= RequireField(*result, kEAP); 678 all_required_exist &= RequireField(*result, kEAP);
677 else if (security == kWEP_PSK || security == kWPA_PSK) 679 else if (security == kWEP_PSK || security == kWPA_PSK)
678 all_required_exist &= RequireField(*result, kPassphrase); 680 all_required_exist &= RequireField(*result, kPassphrase);
679 681
680 return !error_on_missing_field_ || all_required_exist; 682 return !error_on_missing_field_ || all_required_exist;
681 } 683 }
682 684
683 bool Validator::ValidateVPN(base::DictionaryValue* result) { 685 bool Validator::ValidateVPN(base::DictionaryValue* result) {
684 using namespace ::onc::vpn; 686 using namespace ::onc::vpn;
685 687
686 const char* const kValidTypes[] = {kIPsec, kTypeL2TP_IPsec, kOpenVPN}; 688 const char* const kValidTypes[] = {
689 kIPsec, kTypeL2TP_IPsec, kOpenVPN, kThirdPartyVpn};
687 const std::vector<const char*> valid_types(toVector(kValidTypes)); 690 const std::vector<const char*> valid_types(toVector(kValidTypes));
688 if (FieldExistsAndHasNoValidValue(*result, ::onc::vpn::kType, valid_types)) 691 if (FieldExistsAndHasNoValidValue(*result, ::onc::vpn::kType, valid_types))
689 return false; 692 return false;
690 693
691 bool all_required_exist = RequireField(*result, ::onc::vpn::kType); 694 bool all_required_exist = RequireField(*result, ::onc::vpn::kType);
692 std::string type; 695 std::string type;
693 result->GetStringWithoutPathExpansion(::onc::vpn::kType, &type); 696 result->GetStringWithoutPathExpansion(::onc::vpn::kType, &type);
694 if (type == kOpenVPN) { 697 if (type == kOpenVPN) {
695 all_required_exist &= RequireField(*result, kOpenVPN); 698 all_required_exist &= RequireField(*result, kOpenVPN);
696 } else if (type == kIPsec) { 699 } else if (type == kIPsec) {
697 all_required_exist &= RequireField(*result, kIPsec); 700 all_required_exist &= RequireField(*result, kIPsec);
698 } else if (type == kTypeL2TP_IPsec) { 701 } else if (type == kTypeL2TP_IPsec) {
699 all_required_exist &= 702 all_required_exist &=
700 RequireField(*result, kIPsec) && RequireField(*result, kL2TP); 703 RequireField(*result, kIPsec) && RequireField(*result, kL2TP);
704 } else if (type == kThirdPartyVpn) {
705 all_required_exist &= RequireField(*result, kThirdPartyVpn);
701 } 706 }
702 707
703 return !error_on_missing_field_ || all_required_exist; 708 return !error_on_missing_field_ || all_required_exist;
704 } 709 }
705 710
706 bool Validator::ValidateIPsec(base::DictionaryValue* result) { 711 bool Validator::ValidateIPsec(base::DictionaryValue* result) {
707 using namespace ::onc::ipsec; 712 using namespace ::onc::ipsec;
708 713
709 const char* const kValidAuthentications[] = {kPSK, kCert}; 714 const char* const kValidAuthentications[] = {kPSK, kCert};
710 const std::vector<const char*> valid_authentications( 715 const std::vector<const char*> valid_authentications(
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
795 800
796 if (!ValidateClientCertFields(true /* allow ClientCertType None */, result)) 801 if (!ValidateClientCertFields(true /* allow ClientCertType None */, result))
797 return false; 802 return false;
798 803
799 bool all_required_exist = 804 bool all_required_exist =
800 RequireField(*result, ::onc::client_cert::kClientCertType); 805 RequireField(*result, ::onc::client_cert::kClientCertType);
801 806
802 return !error_on_missing_field_ || all_required_exist; 807 return !error_on_missing_field_ || all_required_exist;
803 } 808 }
804 809
810 bool Validator::ValidateThirdPartyVPN(base::DictionaryValue* result) {
811 const bool all_required_exist =
812 RequireField(*result, ::onc::third_party_vpn::kExtensionID);
813
814 return !error_on_missing_field_ || all_required_exist;
815 }
816
805 bool Validator::ValidateVerifyX509(base::DictionaryValue* result) { 817 bool Validator::ValidateVerifyX509(base::DictionaryValue* result) {
806 using namespace ::onc::verify_x509; 818 using namespace ::onc::verify_x509;
807 819
808 const char* const kValidTypes[] = {types::kName, types::kNamePrefix, 820 const char* const kValidTypes[] = {types::kName, types::kNamePrefix,
809 types::kSubject}; 821 types::kSubject};
810 const std::vector<const char*> valid_types(toVector(kValidTypes)); 822 const std::vector<const char*> valid_types(toVector(kValidTypes));
811 823
812 if (FieldExistsAndHasNoValidValue(*result, kType, valid_types)) 824 if (FieldExistsAndHasNoValidValue(*result, kType, valid_types))
813 return false; 825 return false;
814 826
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
939 } 951 }
940 952
941 std::string Validator::MessageHeader() { 953 std::string Validator::MessageHeader() {
942 std::string path = path_.empty() ? "toplevel" : JoinString(path_, "."); 954 std::string path = path_.empty() ? "toplevel" : JoinString(path_, ".");
943 std::string message = "At " + path + ": "; 955 std::string message = "At " + path + ": ";
944 return message; 956 return message;
945 } 957 }
946 958
947 } // namespace onc 959 } // namespace onc
948 } // namespace chromeos 960 } // namespace chromeos
OLDNEW
« 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