diff options
Diffstat (limited to 'src/geminiclient.cpp')
| -rw-r--r-- | src/geminiclient.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/geminiclient.cpp b/src/geminiclient.cpp index 0809120..e3036ce 100644 --- a/src/geminiclient.cpp +++ b/src/geminiclient.cpp @@ -1,6 +1,7 @@ #include "geminiclient.hpp" #include <cassert> #include <QDebug> +#include <QSslConfiguration> GeminiClient::GeminiClient(QObject *parent) : QObject(parent) { @@ -9,6 +10,14 @@ GeminiClient::GeminiClient(QObject *parent) : QObject(parent) connect(&socket, &QSslSocket::disconnected, this, &GeminiClient::socketDisconnected); connect(&socket, QOverload<const QList<QSslError> &>::of(&QSslSocket::sslErrors), this, &GeminiClient::sslErrors); connect(&socket, QOverload<QAbstractSocket::SocketError>::of(&QSslSocket::error), this, &GeminiClient::socketError); + + + QSslConfiguration ssl_config; + ssl_config.setProtocol(QSsl::TlsV1_2); + // ssl_config.setLocalCertificate(QSslCertificate::1 + + socket.setSslConfiguration(ssl_config); + } GeminiClient::~GeminiClient() @@ -53,6 +62,18 @@ bool GeminiClient::cancelRequest() return true; } +void GeminiClient::enableClientCertificate(const CryptoIdentity &ident) +{ + this->socket.setLocalCertificate(ident.certificate); + this->socket.setPrivateKey(ident.private_key); +} + +void GeminiClient::disableClientCertificate() +{ + this->socket.setLocalCertificate(QSslCertificate{}); + this->socket.setPrivateKey(QSslKey { }); +} + void GeminiClient::socketEncrypted() { QString request = target_url.toString(QUrl::FormattingOptions(QUrl::FullyEncoded)) + "\r\n"; |
