diff options
Diffstat (limited to 'chromium/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc')
-rw-r--r-- | chromium/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/chromium/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc b/chromium/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc index b324f2171dc..7e26990ca4b 100644 --- a/chromium/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc +++ b/chromium/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc @@ -124,8 +124,12 @@ bool CertificateProviderInternalReportCertificatesFunction:: return false; } - out_info->certificate = - net::X509Certificate::CreateFromBytes(cert_der.data(), cert_der.size()); + // Allow UTF-8 inside PrintableStrings in client certificates. See + // crbug.com/770323 and crbug.com/788655. + net::X509Certificate::UnsafeCreateOptions options; + options.printable_string_is_utf8 = true; + out_info->certificate = net::X509Certificate::CreateFromBytesUnsafeOptions( + cert_der.data(), cert_der.size(), options); if (!out_info->certificate) { WriteToConsole(content::CONSOLE_MESSAGE_LEVEL_ERROR, kErrorInvalidX509Cert); return false; |