diff options
| author | Felix (xq) Queißner <git@mq32.de> | 2020-06-10 21:38:05 +0200 |
|---|---|---|
| committer | Felix (xq) Queißner <git@mq32.de> | 2020-06-10 21:38:05 +0200 |
| commit | ab3e5ad5f25862985c17ba557163a1902b54747f (patch) | |
| tree | ab91f5b8a245a6b506a00e9b0533b096d0753ea4 /src/geminiclient.cpp | |
| parent | feb37f7d6b8730e94821fc6d70fb742ff393517d (diff) | |
| download | kristall-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.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"; |
