Chromium Code Reviews| Index: net/base/cert_database_nss.cc |
| diff --git a/net/base/cert_database_nss.cc b/net/base/cert_database_nss.cc |
| index 817372d28e0006e999973ec932dde3abd15a4054..a32f9ec1f763f17af25b7d52ff7eef6b204a3bbd 100644 |
| --- a/net/base/cert_database_nss.cc |
| +++ b/net/base/cert_database_nss.cc |
| @@ -17,6 +17,7 @@ |
| #include "net/base/crypto_module.h" |
| #include "net/base/net_errors.h" |
| #include "net/base/x509_certificate.h" |
| +#include "net/base/x509_util_nss.h" |
| #include "net/third_party/mozilla_security_manager/nsNSSCertificateDB.h" |
| #include "net/third_party/mozilla_security_manager/nsNSSCertTrust.h" |
| #include "net/third_party/mozilla_security_manager/nsPKCS12Blob.h" |
| @@ -66,28 +67,12 @@ int CertDatabase::AddUserCert(X509Certificate* cert_obj) { |
| PK11SlotInfo* slot = NULL; |
| std::string nickname; |
| - // Create a nickname for this certificate. |
| - // We use the scheme used by Firefox: |
| - // --> <subject's common name>'s <issuer's common name> ID. |
| - |
| - std::string username, ca_name; |
| - char* temp_username = CERT_GetCommonName(&cert->subject); |
| - char* temp_ca_name = CERT_GetCommonName(&cert->issuer); |
| - if (temp_username) { |
| - username = temp_username; |
| - PORT_Free(temp_username); |
| - } |
| - if (temp_ca_name) { |
| - ca_name = temp_ca_name; |
| - PORT_Free(temp_ca_name); |
| - } |
| - nickname = username + "'s " + ca_name + " ID"; |
| - |
| { |
| crypto::AutoNSSWriteLock lock; |
| - slot = PK11_ImportCertForKey(cert, |
| - const_cast<char*>(nickname.c_str()), |
| - NULL); |
| + slot = PK11_ImportCertForKey( |
|
wtc
2011/12/08 00:07:43
Please add a CHECK (non-debug assertion) here to a
Greg Spencer (Chromium)
2011/12/09 18:51:38
Now that we are supplying the cert type to GetDefa
|
| + cert, |
| + x509_util::GetDefaultCertificateLabel(cert_obj).c_str(), |
| + NULL); |
| } |
| if (!slot) { |
| @@ -161,11 +146,13 @@ int CertDatabase::ImportFromPKCS12( |
| CryptoModule* module, |
| const std::string& data, |
| const string16& password, |
| - bool is_extractable) { |
| + bool is_extractable, |
| + net::CertificateList* imported_certs) { |
| int result = psm::nsPKCS12Blob_Import(module->os_module_handle(), |
| data.data(), data.size(), |
| password, |
| - is_extractable); |
| + is_extractable, |
| + imported_certs); |
| if (result == net::OK) |
| CertDatabase::NotifyObserversOfUserCertAdded(NULL); |
| @@ -328,13 +315,6 @@ bool CertDatabase::DeleteCertAndKey(const X509Certificate* cert) { |
| return true; |
| } |
| -bool CertDatabase::DeleteCertAndKeyByLabel(const std::string& label) { |
| - // TODO(gspencer):Find the certificate with the given CKA_LABEL |
| - // (nickname), and delete it. |
| - NOTIMPLEMENTED(); |
| - return false; |
| -} |
| - |
| bool CertDatabase::IsReadOnly(const X509Certificate* cert) const { |
| PK11SlotInfo* slot = cert->os_cert_handle()->slot; |
| return slot && PK11_IsReadOnly(slot); |