diff --git a/src/widgets/sslui.h b/src/widgets/sslui.h --- a/src/widgets/sslui.h +++ b/src/widgets/sslui.h @@ -23,6 +23,7 @@ #include "kiowidgets_export.h" #include +#include namespace KIO { @@ -35,8 +36,26 @@ RecallAndStoreRules = 3 ///< apply stored rules and store new rules }; + bool KIOWIDGETS_EXPORT askIgnoreSslErrors(const KTcpSocket *socket, RulesStorage storedRules = RecallAndStoreRules); + +/** + * If there are errors while establishing an SSL encrypted connection to a peer, usually due to + * certificate issues and since this poses a security issue, we need confirmation from the user about + * how they wish to proceed. + * + * This function provides a dialog asking the user if they wish to abort the connection or ignore + * the SSL errors that occurred and continue connecting. And in case of the latter whether to remember + * the decision in the future or ignore the error temporarily. + * + * @p socket the QSslSocket that is trying to establish the encrypted connection + * @p storedRules see RulesStorage Enum + * @since 5.64 + */ +bool KIOWIDGETS_EXPORT askIgnoreSslErrors(const QSslSocket *socket, + RulesStorage storedRules = RecallAndStoreRules); + bool KIOWIDGETS_EXPORT askIgnoreSslErrors(const KSslErrorUiData &uiData, RulesStorage storedRules = RecallAndStoreRules); } diff --git a/src/widgets/sslui.cpp b/src/widgets/sslui.cpp --- a/src/widgets/sslui.cpp +++ b/src/widgets/sslui.cpp @@ -32,6 +32,12 @@ return askIgnoreSslErrors(uiData, storedRules); } +bool KIO::SslUi::askIgnoreSslErrors(const QSslSocket *socket, RulesStorage storedRules) +{ + KSslErrorUiData uiData(socket); + return askIgnoreSslErrors(uiData, storedRules); +} + bool KIO::SslUi::askIgnoreSslErrors(const KSslErrorUiData &uiData, RulesStorage storedRules) { const KSslErrorUiData::Private *ud = KSslErrorUiData::Private::get(&uiData);