aboutsummaryrefslogtreecommitdiff
path: root/src/geminiclient.cpp
diff options
context:
space:
mode:
authorFelix (xq) Queißner <git@mq32.de>2020-06-10 21:38:05 +0200
committerFelix (xq) Queißner <git@mq32.de>2020-06-10 21:38:05 +0200
commitab3e5ad5f25862985c17ba557163a1902b54747f (patch)
treeab91f5b8a245a6b506a00e9b0533b096d0753ea4 /src/geminiclient.cpp
parentfeb37f7d6b8730e94821fc6d70fb742ff393517d (diff)
downloadkristall-ab3e5ad5f25862985c17ba557163a1902b54747f.tar.gz
Adds install target to makefile, adds support for transient client certificates.
Diffstat (limited to 'src/geminiclient.cpp')
-rw-r--r--src/geminiclient.cpp21
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";