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

Side by Side Diff: chrome/browser/chromeos/options/vpn_config_view.cc

Issue 16946002: Resolve certificate references in ONC by PEM. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Support CACert PEM list for L2tp. Created 7 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
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 "chrome/browser/chromeos/options/vpn_config_view.h" 5 #include "chrome/browser/chromeos/options/vpn_config_view.h"
6 6
7 #include "base/strings/string_util.h" 7 #include "base/strings/string_util.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/browser/chromeos/cros/cros_library.h" 10 #include "chrome/browser/chromeos/cros/cros_library.h"
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 if (service_path_.empty()) { 306 if (service_path_.empty()) {
307 NetworkLibrary::VPNConfigData config_data; 307 NetworkLibrary::VPNConfigData config_data;
308 switch (provider_type_) { 308 switch (provider_type_) {
309 case PROVIDER_TYPE_L2TP_IPSEC_PSK: 309 case PROVIDER_TYPE_L2TP_IPSEC_PSK:
310 config_data.psk = GetPSKPassphrase(); 310 config_data.psk = GetPSKPassphrase();
311 config_data.username = GetUsername(); 311 config_data.username = GetUsername();
312 config_data.user_passphrase = GetUserPassphrase(); 312 config_data.user_passphrase = GetUserPassphrase();
313 config_data.group_name = GetGroupName(); 313 config_data.group_name = GetGroupName();
314 break; 314 break;
315 case PROVIDER_TYPE_L2TP_IPSEC_USER_CERT: { 315 case PROVIDER_TYPE_L2TP_IPSEC_USER_CERT: {
316 config_data.server_ca_cert_nss_nickname = GetServerCACertNssNickname(); 316 config_data.server_ca_cert_pem = GetServerCACertPEM();
317 config_data.client_cert_pkcs11_id = GetUserCertID(); 317 config_data.client_cert_pkcs11_id = GetUserCertID();
318 config_data.username = GetUsername(); 318 config_data.username = GetUsername();
319 config_data.user_passphrase = GetUserPassphrase(); 319 config_data.user_passphrase = GetUserPassphrase();
320 config_data.group_name = GetGroupName(); 320 config_data.group_name = GetGroupName();
321 break; 321 break;
322 } 322 }
323 case PROVIDER_TYPE_OPEN_VPN: 323 case PROVIDER_TYPE_OPEN_VPN:
324 config_data.server_ca_cert_nss_nickname = GetServerCACertNssNickname(); 324 config_data.server_ca_cert_pem = GetServerCACertPEM();
325 config_data.client_cert_pkcs11_id = GetUserCertID(); 325 config_data.client_cert_pkcs11_id = GetUserCertID();
326 config_data.username = GetUsername(); 326 config_data.username = GetUsername();
327 config_data.user_passphrase = GetUserPassphrase(); 327 config_data.user_passphrase = GetUserPassphrase();
328 config_data.otp = GetOTP(); 328 config_data.otp = GetOTP();
329 break; 329 break;
330 case PROVIDER_TYPE_MAX: 330 case PROVIDER_TYPE_MAX:
331 break; 331 break;
332 } 332 }
333 config_data.save_credentials = GetSaveCredentials(); 333 config_data.save_credentials = GetSaveCredentials();
334 cros->ConnectToUnconfiguredVirtualNetwork( 334 cros->ConnectToUnconfiguredVirtualNetwork(
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 } 414 }
415 415
416 const std::string VPNConfigView::GetGroupName() const { 416 const std::string VPNConfigView::GetGroupName() const {
417 return GetTextFromField(group_name_textfield_, false); 417 return GetTextFromField(group_name_textfield_, false);
418 } 418 }
419 419
420 const std::string VPNConfigView::GetOTP() const { 420 const std::string VPNConfigView::GetOTP() const {
421 return GetTextFromField(otp_textfield_, true); 421 return GetTextFromField(otp_textfield_, true);
422 } 422 }
423 423
424 const std::string VPNConfigView::GetServerCACertNssNickname() const { 424 const std::string VPNConfigView::GetServerCACertPEM() const {
425 int index = server_ca_cert_combobox_ ? 425 int index = server_ca_cert_combobox_ ?
426 server_ca_cert_combobox_->selected_index() : 0; 426 server_ca_cert_combobox_->selected_index() : 0;
427 if (index == 0) { 427 if (index == 0) {
428 // First item is "Default". 428 // First item is "Default".
429 return std::string(); 429 return std::string();
430 } else { 430 } else {
431 int cert_index = index - 1; 431 int cert_index = index - 1;
432 return CertLibrary::Get()->GetCertNicknameAt( 432 return CertLibrary::Get()->GetCertPEMAt(
433 CertLibrary::CERT_TYPE_SERVER_CA, cert_index); 433 CertLibrary::CERT_TYPE_SERVER_CA, cert_index);
434 } 434 }
435 } 435 }
436 436
437 const std::string VPNConfigView::GetUserCertID() const { 437 const std::string VPNConfigView::GetUserCertID() const {
438 if (!HaveUserCerts()) { 438 if (!HaveUserCerts()) {
439 return std::string(); // "None installed" 439 return std::string(); // "None installed"
440 } else { 440 } else {
441 // Certificates are listed in the order they appear in the model. 441 // Certificates are listed in the order they appear in the model.
442 int index = user_cert_combobox_ ? user_cert_combobox_->selected_index() : 0; 442 int index = user_cert_combobox_ ? user_cert_combobox_->selected_index() : 0;
443 return CertLibrary::Get()->GetCertPkcs11IdAt( 443 return CertLibrary::Get()->GetCertPkcs11IdAt(
444 CertLibrary::CERT_TYPE_USER, index); 444 CertLibrary::CERT_TYPE_USER, index);
445 } 445 }
446 } 446 }
447 447
448 bool VPNConfigView::GetSaveCredentials() const { 448 bool VPNConfigView::GetSaveCredentials() const {
449 return save_credentials_checkbox_->checked(); 449 return save_credentials_checkbox_->checked();
450 } 450 }
451 451
452 void VPNConfigView::Init(VirtualNetwork* vpn) { 452 void VPNConfigView::Init(VirtualNetwork* vpn) {
453 if (vpn) { 453 if (vpn) {
454 ProviderType type = vpn->provider_type(); 454 ProviderType type = vpn->provider_type();
455 std::string type_dict_name = ProviderTypeToONCDictKey(type); 455 std::string type_dict_name = ProviderTypeToONCDictKey(type);
456 ParseVPNUIProperty(&ca_cert_ui_data_, vpn, type_dict_name, 456
457 onc::vpn::kServerCARef); 457 if (type == PROVIDER_TYPE_L2TP_IPSEC_PSK) {
458 ParseVPNUIProperty(&psk_passphrase_ui_data_, vpn, type_dict_name, 458 ParseVPNUIProperty(&ca_cert_ui_data_, vpn, type_dict_name,
459 onc::vpn::kPSK); 459 onc::ipsec::kServerCARef);
460 ParseVPNUIProperty(&psk_passphrase_ui_data_, vpn, type_dict_name,
461 onc::ipsec::kPSK);
462 ParseVPNUIProperty(&group_name_ui_data_, vpn, type_dict_name,
463 onc::ipsec::kGroup);
464 } else { // OpenVPN
465 ParseVPNUIProperty(&ca_cert_ui_data_, vpn, type_dict_name,
466 onc::openvpn::kServerCARef);
467 }
460 ParseVPNUIProperty(&user_cert_ui_data_, vpn, type_dict_name, 468 ParseVPNUIProperty(&user_cert_ui_data_, vpn, type_dict_name,
461 onc::vpn::kClientCertRef); 469 onc::vpn::kClientCertRef);
462 ParseVPNUIProperty(&group_name_ui_data_, vpn, type_dict_name,
463 onc::vpn::kGroup);
464 470
465 const std::string credentials_dict_name( 471 const std::string credentials_dict_name(
466 type == PROVIDER_TYPE_L2TP_IPSEC_PSK ? 472 type == PROVIDER_TYPE_L2TP_IPSEC_PSK ?
467 onc::vpn::kL2TP : type_dict_name); 473 onc::vpn::kL2TP : type_dict_name);
468 ParseVPNUIProperty(&username_ui_data_, vpn, credentials_dict_name, 474 ParseVPNUIProperty(&username_ui_data_, vpn, credentials_dict_name,
469 onc::vpn::kUsername); 475 onc::vpn::kUsername);
470 ParseVPNUIProperty(&user_passphrase_ui_data_, vpn, credentials_dict_name, 476 ParseVPNUIProperty(&user_passphrase_ui_data_, vpn, credentials_dict_name,
471 onc::vpn::kPassword); 477 onc::vpn::kPassword);
472 ParseVPNUIProperty(&save_credentials_ui_data_, vpn, credentials_dict_name, 478 ParseVPNUIProperty(&save_credentials_ui_data_, vpn, credentials_dict_name,
473 onc::vpn::kSaveCredentials); 479 onc::vpn::kSaveCredentials);
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 void VPNConfigView::Refresh() { 717 void VPNConfigView::Refresh() {
712 NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary(); 718 NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary();
713 719
714 UpdateControls(); 720 UpdateControls();
715 721
716 // Set certificate combo boxes. 722 // Set certificate combo boxes.
717 VirtualNetwork* vpn = cros->FindVirtualNetworkByPath(service_path_); 723 VirtualNetwork* vpn = cros->FindVirtualNetworkByPath(service_path_);
718 if (server_ca_cert_combobox_) { 724 if (server_ca_cert_combobox_) {
719 server_ca_cert_combobox_->ModelChanged(); 725 server_ca_cert_combobox_->ModelChanged();
720 if (enable_server_ca_cert_ && 726 if (enable_server_ca_cert_ &&
721 (vpn && !vpn->ca_cert_nss().empty())) { 727 (vpn && !vpn->ca_cert_pem().empty())) {
722 // Select the current server CA certificate in the combobox. 728 // Select the current server CA certificate in the combobox.
723 int cert_index = CertLibrary::Get()->GetCertIndexByNickname( 729 int cert_index = CertLibrary::Get()->GetCertIndexByPEM(
724 CertLibrary::CERT_TYPE_SERVER_CA, vpn->ca_cert_nss()); 730 CertLibrary::CERT_TYPE_SERVER_CA, vpn->ca_cert_pem());
725 if (cert_index >= 0) { 731 if (cert_index >= 0) {
726 // Skip item for "Default" 732 // Skip item for "Default"
727 server_ca_cert_combobox_->SetSelectedIndex(1 + cert_index); 733 server_ca_cert_combobox_->SetSelectedIndex(1 + cert_index);
728 } else { 734 } else {
729 server_ca_cert_combobox_->SetSelectedIndex(0); 735 server_ca_cert_combobox_->SetSelectedIndex(0);
730 } 736 }
731 } else { 737 } else {
732 server_ca_cert_combobox_->SetSelectedIndex(0); 738 server_ca_cert_combobox_->SetSelectedIndex(0);
733 } 739 }
734 } 740 }
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
902 908
903 property_ui_data->ParseOncProperty( 909 property_ui_data->ParseOncProperty(
904 network->ui_data().onc_source(), onc, 910 network->ui_data().onc_source(), onc,
905 base::StringPrintf("%s.%s.%s", 911 base::StringPrintf("%s.%s.%s",
906 onc::network_config::kVPN, 912 onc::network_config::kVPN,
907 dict_key.c_str(), 913 dict_key.c_str(),
908 key.c_str())); 914 key.c_str()));
909 } 915 }
910 916
911 } // namespace chromeos 917 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698