summaryrefslogtreecommitdiffstats
path: root/chrome/third_party
diff options
context:
space:
mode:
authorbulach@chromium.org <bulach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-08 12:44:40 +0000
committerbulach@chromium.org <bulach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-08 12:44:40 +0000
commitb1c2a554239ab3be950f0d19581945eb115e7a6c (patch)
tree5688a12bb881cd14c5ed80d0ccbdf2208248f45c /chrome/third_party
parent2a73485bfae7e697df34e6640b1593ccafe2cf53 (diff)
downloadchromium_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.cpp42
-rw-r--r--chrome/third_party/mozilla_security_manager/nsNSSCertHelper.h5
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);