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

Side by Side Diff: chrome/browser/webui/options/certificate_manager_handler.cc

Issue 6580058: NSS: Unlock crypto devices when populating cert manager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: missing newline Created 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/webui/options/certificate_manager_handler.h" 5 #include "chrome/browser/webui/options/certificate_manager_handler.h"
6 6
7 #include "base/file_util.h" // for FileAccessProvider 7 #include "base/file_util.h" // for FileAccessProvider
8 #include "base/safe_strerror_posix.h" 8 #include "base/safe_strerror_posix.h"
9 #include "base/scoped_vector.h" 9 #include "base/scoped_vector.h"
10 #include "base/string_number_conversions.h" 10 #include "base/string_number_conversions.h"
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 525
526 void CertificateManagerHandler::ExportPersonalPasswordSelected( 526 void CertificateManagerHandler::ExportPersonalPasswordSelected(
527 const ListValue* args) { 527 const ListValue* args) {
528 if (!args->GetString(0, &password_)){ 528 if (!args->GetString(0, &password_)){
529 web_ui_->CallJavascriptFunction(L"CertificateRestoreOverlay.dismiss"); 529 web_ui_->CallJavascriptFunction(L"CertificateRestoreOverlay.dismiss");
530 ImportExportCleanup(); 530 ImportExportCleanup();
531 return; 531 return;
532 } 532 }
533 533
534 // Currently, we don't support exporting more than one at a time. If we do, 534 // Currently, we don't support exporting more than one at a time. If we do,
535 // this would need some cleanup to handle unlocking multiple slots. 535 // this would need to either change this to use UnlockSlotsIfNecessary or
536 // change UnlockCertSlotIfNecessary to take a CertificateList.
536 DCHECK_EQ(selected_cert_list_.size(), 1U); 537 DCHECK_EQ(selected_cert_list_.size(), 1U);
537 538
538 // TODO(mattm): do something smarter about non-extractable keys 539 // TODO(mattm): do something smarter about non-extractable keys
539 browser::UnlockCertSlotIfNecessary( 540 browser::UnlockCertSlotIfNecessary(
540 selected_cert_list_[0].get(), 541 selected_cert_list_[0].get(),
541 browser::kCryptoModulePasswordCertExport, 542 browser::kCryptoModulePasswordCertExport,
542 "", // unused. 543 "", // unused.
543 NewCallback(this, 544 NewCallback(this,
544 &CertificateManagerHandler::ExportPersonalSlotsUnlocked)); 545 &CertificateManagerHandler::ExportPersonalSlotsUnlocked));
545 } 546 }
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
622 l10n_util::GetStringFUTF8(IDS_CERT_MANAGER_READ_ERROR_FORMAT, 623 l10n_util::GetStringFUTF8(IDS_CERT_MANAGER_READ_ERROR_FORMAT,
623 UTF8ToUTF16(safe_strerror(read_errno)))); 624 UTF8ToUTF16(safe_strerror(read_errno))));
624 return; 625 return;
625 } 626 }
626 627
627 file_data_ = data; 628 file_data_ = data;
628 629
629 // TODO(mattm): allow user to choose a slot to import to. 630 // TODO(mattm): allow user to choose a slot to import to.
630 module_ = certificate_manager_model_->cert_db().GetDefaultModule(); 631 module_ = certificate_manager_model_->cert_db().GetDefaultModule();
631 632
632 browser::UnlockSlotIfNecessary( 633 net::CryptoModuleList modules;
633 module_.get(), 634 modules.push_back(module_);
635 browser::UnlockSlotsIfNecessary(
636 modules,
634 browser::kCryptoModulePasswordCertImport, 637 browser::kCryptoModulePasswordCertImport,
635 "", // unused. 638 "", // unused.
636 NewCallback(this, 639 NewCallback(this,
637 &CertificateManagerHandler::ImportPersonalSlotUnlocked)); 640 &CertificateManagerHandler::ImportPersonalSlotUnlocked));
638 } 641 }
639 642
640 void CertificateManagerHandler::ImportPersonalSlotUnlocked() { 643 void CertificateManagerHandler::ImportPersonalSlotUnlocked() {
641 int result = certificate_manager_model_->ImportFromPKCS12( 644 int result = certificate_manager_model_->ImportFromPKCS12(
642 module_, file_data_, password_); 645 module_, file_data_, password_);
643 ImportExportCleanup(); 646 ImportExportCleanup();
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
929 StringValue error_value(error); 932 StringValue error_value(error);
930 web_ui_->CallJavascriptFunction(L"CertificateImportErrorOverlay.show", 933 web_ui_->CallJavascriptFunction(L"CertificateImportErrorOverlay.show",
931 title_value, 934 title_value,
932 error_value, 935 error_value,
933 cert_error_list); 936 cert_error_list);
934 } 937 }
935 938
936 gfx::NativeWindow CertificateManagerHandler::GetParentWindow() const { 939 gfx::NativeWindow CertificateManagerHandler::GetParentWindow() const {
937 return web_ui_->tab_contents()->view()->GetTopLevelNativeWindow(); 940 return web_ui_->tab_contents()->view()->GetTopLevelNativeWindow();
938 } 941 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698