Update to Chromium revision bc084a8b (#530369)

This commit is contained in:
Marshall Greenblatt
2018-02-14 19:12:09 -05:00
parent ac86b61139
commit 9e644b7538
113 changed files with 1930 additions and 1797 deletions

View File

@@ -7,22 +7,23 @@
#include "libcef/browser/x509_cert_principal_impl.h"
#include "libcef/common/time_util.h"
#include "net/cert/x509_util.h"
#include "net/ssl/ssl_private_key.h"
namespace {
CefRefPtr<CefBinaryValue> EncodeCertificate(
const net::X509Certificate::OSCertHandle& os_handle,
bool der) {
CefRefPtr<CefBinaryValue> bin_encoded;
CefRefPtr<CefBinaryValue> EncodeCertificate(const CRYPTO_BUFFER* cert_buffer,
bool der) {
std::string encoded;
if ((der && net::X509Certificate::GetDEREncoded(os_handle, &encoded)) ||
(!der && net::X509Certificate::GetPEMEncoded(os_handle, &encoded))) {
bin_encoded = CefBinaryValue::Create(encoded.c_str(), encoded.size());
if (der) {
encoded =
std::string(net::x509_util::CryptoBufferAsStringPiece(cert_buffer));
} else if (!net::X509Certificate::GetPEMEncoded(cert_buffer, &encoded)) {
return nullptr;
}
return bin_encoded;
if (encoded.empty())
return nullptr;
return CefBinaryValue::Create(encoded.c_str(), encoded.size());
}
} // namespace
@@ -77,25 +78,25 @@ CefTime CefX509CertificateImpl::GetValidExpiry() {
CefRefPtr<CefBinaryValue> CefX509CertificateImpl::GetDEREncoded() {
if (cert_) {
net::X509Certificate::OSCertHandle os_handle = cert_->os_cert_handle();
if (os_handle)
return EncodeCertificate(os_handle, true);
const CRYPTO_BUFFER* cert_buffer = cert_->cert_buffer();
if (cert_buffer)
return EncodeCertificate(cert_buffer, true);
}
return nullptr;
}
CefRefPtr<CefBinaryValue> CefX509CertificateImpl::GetPEMEncoded() {
if (cert_) {
net::X509Certificate::OSCertHandle os_handle = cert_->os_cert_handle();
if (os_handle)
return EncodeCertificate(os_handle, false);
const CRYPTO_BUFFER* cert_buffer = cert_->cert_buffer();
if (cert_buffer)
return EncodeCertificate(cert_buffer, false);
}
return nullptr;
}
size_t CefX509CertificateImpl::GetIssuerChainSize() {
if (cert_)
return cert_->GetIntermediateCertificates().size();
return cert_->intermediate_buffers().size();
return 0;
}
@@ -113,14 +114,10 @@ void CefX509CertificateImpl::GetEncodedIssuerChain(
bool der) {
chain.clear();
if (cert_) {
const net::X509Certificate::OSCertHandles& handles =
cert_->GetIntermediateCertificates();
for (net::X509Certificate::OSCertHandles::const_iterator it =
handles.begin();
it != handles.end(); it++) {
for (const auto& it : cert_->intermediate_buffers()) {
// Add each to the chain, even if one conversion unexpectedly failed.
// GetIssuerChainSize depends on these being the same length.
chain.push_back(EncodeCertificate(*it, der));
chain.push_back(EncodeCertificate(it.get(), der));
}
}
}