mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Implement OnSelectClientCertificate (fixes #3789)
This commit is contained in:
committed by
Marshall Greenblatt
parent
030272fe4c
commit
fc20e76d3b
@@ -7,6 +7,7 @@
|
||||
#include "cef/libcef/browser/x509_cert_principal_impl.h"
|
||||
#include "cef/libcef/common/time_util.h"
|
||||
#include "net/cert/x509_util.h"
|
||||
#include "net/ssl/ssl_private_key.h"
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -27,6 +28,10 @@ CefRefPtr<CefBinaryValue> EncodeCertificate(const CRYPTO_BUFFER* cert_buffer,
|
||||
|
||||
} // namespace
|
||||
|
||||
CefX509CertificateImpl::CefX509CertificateImpl(
|
||||
std::unique_ptr<net::ClientCertIdentity> identity)
|
||||
: identity_(std::move(identity)), cert_(identity_->certificate()) {}
|
||||
|
||||
CefX509CertificateImpl::CefX509CertificateImpl(
|
||||
scoped_refptr<net::X509Certificate> cert)
|
||||
: cert_(cert) {}
|
||||
@@ -94,6 +99,21 @@ size_t CefX509CertificateImpl::GetIssuerChainSize() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void CefX509CertificateImpl::AcquirePrivateKey(
|
||||
base::OnceCallback<void(scoped_refptr<net::SSLPrivateKey>)>
|
||||
private_key_callback) {
|
||||
if (identity_) {
|
||||
identity_->AcquirePrivateKey(std::move(private_key_callback));
|
||||
} else {
|
||||
std::move(private_key_callback).Run(nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
std::unique_ptr<net::ClientCertIdentity>
|
||||
CefX509CertificateImpl::DisconnectIdentity() {
|
||||
return std::move(identity_);
|
||||
}
|
||||
|
||||
void CefX509CertificateImpl::GetEncodedIssuerChain(
|
||||
CefX509Certificate::IssuerChainBinaryList& chain,
|
||||
bool der) {
|
||||
|
Reference in New Issue
Block a user