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

Side by Side Diff: chromeos/network/network_ui_data.cc

Issue 368233004: ONC: Cleanup client certificate related fields. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix compilation on Win/Mac. Created 6 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « chromeos/network/certificate_pattern.cc ('k') | chromeos/network/onc/onc_normalizer.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/network_ui_data.h" 5 #include "chromeos/network/network_ui_data.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chromeos/network/onc/onc_signature.h" 9 #include "chromeos/network/onc/onc_signature.h"
10 10
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 certificate_pattern_.CreateONCDictionary().release()); 141 certificate_pattern_.CreateONCDictionary().release());
142 } 142 }
143 } 143 }
144 if (user_settings_) 144 if (user_settings_)
145 dict->SetWithoutPathExpansion(kKeyUserSettings, 145 dict->SetWithoutPathExpansion(kKeyUserSettings,
146 user_settings_->DeepCopy()); 146 user_settings_->DeepCopy());
147 } 147 }
148 148
149 namespace { 149 namespace {
150 150
151 void TranslateClientCertType(const std::string& client_cert_type, 151 void GetAndTranslateClientCertType(const base::DictionaryValue& onc_object,
152 NetworkUIData* ui_data) { 152 NetworkUIData* ui_data) {
153 using namespace ::onc::certificate; 153 using namespace ::onc::client_cert;
154
155 std::string client_cert_type;
156 if (!onc_object.GetStringWithoutPathExpansion(kClientCertType,
157 &client_cert_type)) {
158 return;
159 }
160
154 ClientCertType type; 161 ClientCertType type;
155 if (client_cert_type == kNone) { 162 if (client_cert_type == kClientCertTypeNone) {
156 type = CLIENT_CERT_TYPE_NONE; 163 type = CLIENT_CERT_TYPE_NONE;
157 } else if (client_cert_type == kRef) { 164 } else if (client_cert_type == kRef) {
158 type = CLIENT_CERT_TYPE_REF; 165 type = CLIENT_CERT_TYPE_REF;
159 } else if (client_cert_type == kPattern) { 166 } else if (client_cert_type == kPattern) {
160 type = CLIENT_CERT_TYPE_PATTERN; 167 type = CLIENT_CERT_TYPE_PATTERN;
161 } else { 168 } else {
162 type = CLIENT_CERT_TYPE_NONE; 169 type = CLIENT_CERT_TYPE_NONE;
163 NOTREACHED(); 170 NOTREACHED();
164 } 171 }
165 172
166 ui_data->set_certificate_type(type); 173 ui_data->set_certificate_type(type);
167 } 174 }
168 175
169 void TranslateCertificatePattern(const base::DictionaryValue& onc_object, 176 void TranslateCertificatePattern(const base::DictionaryValue& onc_object,
170 NetworkUIData* ui_data) { 177 NetworkUIData* ui_data) {
171 CertificatePattern pattern; 178 CertificatePattern pattern;
172 bool success = pattern.ReadFromONCDictionary(onc_object); 179 bool success = pattern.ReadFromONCDictionary(onc_object);
173 DCHECK(success); 180 DCHECK(success);
174 ui_data->set_certificate_pattern(pattern); 181 ui_data->set_certificate_pattern(pattern);
175 } 182 }
176 183
177 void TranslateEAP(const base::DictionaryValue& eap,
178 NetworkUIData* ui_data) {
179 std::string client_cert_type;
180 if (eap.GetStringWithoutPathExpansion(::onc::eap::kClientCertType,
181 &client_cert_type)) {
182 TranslateClientCertType(client_cert_type, ui_data);
183 }
184 }
185
186 void TranslateIPsec(const base::DictionaryValue& ipsec,
187 NetworkUIData* ui_data) {
188 std::string client_cert_type;
189 if (ipsec.GetStringWithoutPathExpansion(::onc::vpn::kClientCertType,
190 &client_cert_type)) {
191 TranslateClientCertType(client_cert_type, ui_data);
192 }
193 }
194
195 void TranslateOpenVPN(const base::DictionaryValue& openvpn,
196 NetworkUIData* ui_data) {
197 std::string client_cert_type;
198 if (openvpn.GetStringWithoutPathExpansion(::onc::vpn::kClientCertType,
199 &client_cert_type)) {
200 TranslateClientCertType(client_cert_type, ui_data);
201 }
202 }
203
204 void TranslateONCHierarchy(const onc::OncValueSignature& signature, 184 void TranslateONCHierarchy(const onc::OncValueSignature& signature,
205 const base::DictionaryValue& onc_object, 185 const base::DictionaryValue& onc_object,
206 NetworkUIData* ui_data) { 186 NetworkUIData* ui_data) {
207 if (&signature == &onc::kCertificatePatternSignature) 187 if (&signature == &onc::kCertificatePatternSignature) {
208 TranslateCertificatePattern(onc_object, ui_data); 188 TranslateCertificatePattern(onc_object, ui_data);
209 else if (&signature == &onc::kEAPSignature) 189 } else if (&signature == &onc::kEAPSignature ||
210 TranslateEAP(onc_object, ui_data); 190 &signature == &onc::kIPsecSignature ||
211 else if (&signature == &onc::kIPsecSignature) 191 &signature == &onc::kOpenVPNSignature) {
212 TranslateIPsec(onc_object, ui_data); 192 GetAndTranslateClientCertType(onc_object, ui_data);
213 else if (&signature == &onc::kOpenVPNSignature) 193 }
214 TranslateOpenVPN(onc_object, ui_data);
215 194
216 // Recurse into nested objects. 195 // Recurse into nested objects.
217 for (base::DictionaryValue::Iterator it(onc_object); !it.IsAtEnd(); 196 for (base::DictionaryValue::Iterator it(onc_object); !it.IsAtEnd();
218 it.Advance()) { 197 it.Advance()) {
219 const base::DictionaryValue* inner_object; 198 const base::DictionaryValue* inner_object;
220 if (!it.value().GetAsDictionary(&inner_object)) 199 if (!it.value().GetAsDictionary(&inner_object))
221 continue; 200 continue;
222 201
223 const onc::OncFieldSignature* field_signature = 202 const onc::OncFieldSignature* field_signature =
224 GetFieldSignature(signature, it.key()); 203 GetFieldSignature(signature, it.key());
(...skipping 12 matching lines...) Expand all
237 scoped_ptr<NetworkUIData> ui_data(new NetworkUIData()); 216 scoped_ptr<NetworkUIData> ui_data(new NetworkUIData());
238 TranslateONCHierarchy(onc::kNetworkConfigurationSignature, onc_network, 217 TranslateONCHierarchy(onc::kNetworkConfigurationSignature, onc_network,
239 ui_data.get()); 218 ui_data.get());
240 219
241 ui_data->set_onc_source(onc_source); 220 ui_data->set_onc_source(onc_source);
242 221
243 return ui_data.Pass(); 222 return ui_data.Pass();
244 } 223 }
245 224
246 } // namespace chromeos 225 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/network/certificate_pattern.cc ('k') | chromeos/network/onc/onc_normalizer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698