feat: dos_add_self_signed_certificate

This commit is contained in:
Richard Ramos 2022-02-08 12:25:15 -04:00 committed by Michał
parent 84de33af4b
commit 3c0761196d
2 changed files with 15 additions and 0 deletions

View File

@ -136,6 +136,8 @@ DOS_API DosQQmlNetworkAccessManagerFactory *DOS_CALL dos_qqmlnetworkaccessmanage
DOS_API void DOS_CALL dos_qqmlnetworkaccessmanager_clearconnectioncache(DosQQmlNetworkAccessManager *vptr);
DOS_API void DOS_CALL dos_qqmlnetworkaccessmanager_setnetworkaccessible(DosQQmlNetworkAccessManager *vptr, int accessibility);
DOS_API void DOS_CALL dos_add_self_signed_certificate(const char* pemCertificateContent);
/// \brief Calls the QQmlApplicationEngine::load function
/// \param vptr The QQmlApplicationEngine
/// \param filename The file to load. The file is relative to the directory that contains the application executable

View File

@ -27,9 +27,11 @@
#include <QtCore/QHash>
#include <QtCore/QResource>
#include <QtCore/QFile>
#include <QSslConfiguration>
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkDiskCache>
#include <QtNetwork/QNetworkConfigurationManager>
#include <QtNetwork/QSslSocket>
#include <QtGui/QGuiApplication>
#include <QtGui/QIcon>
#include <QtQml/QQmlContext>
@ -112,6 +114,17 @@ QNetworkAccessManager* QMLNetworkAccessFactory::create(QObject* parent)
return manager;
}
void dos_add_self_signed_certificate(const char* pemCertificateContent) {
QSslConfiguration defaultConfig = QSslConfiguration::defaultConfiguration();
QList<QSslCertificate> certList = defaultConfig.caCertificates();
QByteArray data(pemCertificateContent);
const auto certs = QSslCertificate::fromData(data, QSsl::Pem);
for (const QSslCertificate &cert : certs) {
certList += cert;
}
defaultConfig.setCaCertificates(certList);
QSslConfiguration::setDefaultConfiguration(defaultConfig);
}
char *convert_to_cstring(const QByteArray &array)
{