diff options
author | bulach@chromium.org <bulach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-08 12:44:40 +0000 |
---|---|---|
committer | bulach@chromium.org <bulach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-08 12:44:40 +0000 |
commit | b1c2a554239ab3be950f0d19581945eb115e7a6c (patch) | |
tree | 5688a12bb881cd14c5ed80d0ccbdf2208248f45c /chrome/third_party | |
parent | 2a73485bfae7e697df34e6640b1593ccafe2cf53 (diff) | |
download | chromium_src-b1c2a554239ab3be950f0d19581945eb115e7a6c.zip chromium_src-b1c2a554239ab3be950f0d19581945eb115e7a6c.tar.gz chromium_src-b1c2a554239ab3be950f0d19581945eb115e7a6c.tar.bz2 |
Decouples certificates viewers from NSS to prepare support for OpenSSL.
This change is a pre-requisite for http://codereview.chromium.org/3529008/show
There are no functional changes, it's only refactoring existing code.
BUG=None
TEST=Go to an https:// page and check the certificate info.
Review URL: http://codereview.chromium.org/3565006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61944 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/third_party')
-rw-r--r-- | chrome/third_party/mozilla_security_manager/nsNSSCertHelper.cpp | 42 | ||||
-rw-r--r-- | chrome/third_party/mozilla_security_manager/nsNSSCertHelper.h | 5 |
2 files changed, 3 insertions, 44 deletions
diff --git a/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.cpp b/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.cpp index d9e21c9..6fceac8 100644 --- a/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.cpp +++ b/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.cpp @@ -48,6 +48,7 @@ #include "base/i18n/number_formatting.h" #include "base/string_number_conversions.h" #include "base/utf_string_conversions.h" +#include "chrome/common/net/x509_certificate_model.h" #include "grit/generated_resources.h" #include "net/base/net_util.h" #include "net/third_party/mozilla_security_manager/nsNSSCertTrust.h" @@ -168,43 +169,6 @@ std::string ProcessRawBits(SECItem* data) { return ProcessRawBytes(&bytedata); } -std::string ProcessIDN(const std::string& input) { - // Convert the ASCII input to a string16 for ICU. - string16 input16; - input16.reserve(input.length()); - std::copy(input.begin(), input.end(), std::back_inserter(input16)); - - string16 output16; - output16.resize(input.length()); - - UErrorCode status = U_ZERO_ERROR; - int output_chars = uidna_IDNToUnicode(input16.data(), input.length(), - &output16[0], output16.length(), - UIDNA_DEFAULT, NULL, &status); - if (status == U_ZERO_ERROR) { - output16.resize(output_chars); - } else if (status != U_BUFFER_OVERFLOW_ERROR) { - return input; - } else { - output16.resize(output_chars); - output_chars = uidna_IDNToUnicode(input16.data(), input.length(), - &output16[0], output16.length(), - UIDNA_DEFAULT, NULL, &status); - if (status != U_ZERO_ERROR) - return input; - DCHECK_EQ(static_cast<size_t>(output_chars), output16.length()); - output16.resize(output_chars); // Just to be safe. - } - - if (input16 == output16) - return input; // Input did not contain any encoded data. - - // Input contained encoded data, return formatted string showing original and - // decoded forms. - return l10n_util::GetStringFUTF8(IDS_CERT_INFO_IDN_VALUE_FORMAT, - input16, output16); -} - std::string DumpOidString(SECItem* oid) { char* pr_string = CERT_GetOidString(oid); if (pr_string) { @@ -442,7 +406,7 @@ std::string ProcessRDN(CERTRDN* rdn) { std::string value(reinterpret_cast<char*>(decode_item->data), decode_item->len); if (SECOID_FindOIDTag(&avas[i]->type) == SEC_OID_AVA_COMMON_NAME) - value = ProcessIDN(value); + value = x509_certificate_model::ProcessIDN(value); rv += value; SECITEM_FreeItem(decode_item, PR_TRUE); } @@ -547,7 +511,7 @@ std::string ProcessGeneralName(PRArenaPool* arena, key = l10n_util::GetStringUTF8(IDS_CERT_GENERAL_NAME_DNS_NAME); value = std::string(reinterpret_cast<char*>(current->name.other.data), current->name.other.len); - value = ProcessIDN(value); + value = x509_certificate_model::ProcessIDN(value); break; case certX400Address: key = l10n_util::GetStringUTF8(IDS_CERT_GENERAL_NAME_X400_ADDRESS); diff --git a/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.h b/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.h index 1dc933f..0022a5da 100644 --- a/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.h +++ b/chrome/third_party/mozilla_security_manager/nsNSSCertHelper.h @@ -71,11 +71,6 @@ std::string ProcessRawBytes(SECItem* data); // For fields which have the length specified in bits, rather than bytes. std::string ProcessRawBits(SECItem* data); -// For host values, if they contain IDN Punycode-encoded A-labels, this will -// return a string suitable for display that contains both the original and the -// decoded U-label form. Otherwise, the string will be returned as is. -std::string ProcessIDN(const std::string& input); - std::string DumpOidString(SECItem* oid); std::string GetOIDText(SECItem* oid); |