From 8d045ce2a4cc65660bdf6ee8b555899c5c6119de Mon Sep 17 00:00:00 2001 From: Kirill Burtsev Date: Mon, 26 Aug 2019 13:46:35 +0200 Subject: Api to get certificate's chain on error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Expose certificate's chain on validation error starting with the immediate certificate and ending with the CA's certificate. [ChangeLog][QtWebEngineWidgets][QWebEngineCertificateError] New method to get the peer's chain of digital certificates. Fixes: QTBUG-51176 Change-Id: I799dfe9e44f9f2517f4691d175beee256114af79 Reviewed-by: Michael BrĂ¼ning --- src/webenginewidgets/api/qwebenginecertificateerror.cpp | 12 ++++++++++++ src/webenginewidgets/api/qwebenginecertificateerror.h | 3 +++ 2 files changed, 15 insertions(+) (limited to 'src/webenginewidgets/api') diff --git a/src/webenginewidgets/api/qwebenginecertificateerror.cpp b/src/webenginewidgets/api/qwebenginecertificateerror.cpp index e8c7a4245..a61d98f94 100644 --- a/src/webenginewidgets/api/qwebenginecertificateerror.cpp +++ b/src/webenginewidgets/api/qwebenginecertificateerror.cpp @@ -79,6 +79,7 @@ public: QUrl url; bool overridable; QString errorDescription; + QList chain; bool answered = false, deferred = false; QWeakPointer controller; @@ -106,6 +107,7 @@ QWebEngineCertificateError::QWebEngineCertificateError(const QSharedPointeroverridable(), controller->errorString())) { d->controller = controller; + d->chain = controller->chain(); } QWebEngineCertificateError::QWebEngineCertificateError(const QWebEngineCertificateError &other) = default; @@ -236,4 +238,14 @@ bool QWebEngineCertificateError::answered() const return d->answered; } +/*! + Returns the peer's chain of digital certificates + + Chain starts with the peer's immediate certificate and ending with the CA's certificate. +*/ +QList QWebEngineCertificateError::chain() const +{ + return d->chain; +} + QT_END_NAMESPACE diff --git a/src/webenginewidgets/api/qwebenginecertificateerror.h b/src/webenginewidgets/api/qwebenginecertificateerror.h index f8805e8a7..b2dd65a9f 100644 --- a/src/webenginewidgets/api/qwebenginecertificateerror.h +++ b/src/webenginewidgets/api/qwebenginecertificateerror.h @@ -44,6 +44,7 @@ #include #include +#include QT_BEGIN_NAMESPACE @@ -89,6 +90,8 @@ public: void ignoreCertificateError(); bool answered() const; + QList chain() const; + private: friend class QWebEnginePagePrivate; QWebEngineCertificateError(const QSharedPointer &controller); -- cgit v1.2.3