Add swift client ssl certificate

refs #762
This commit is contained in:
Roland Winklmeier
2017-01-24 23:12:28 +01:00
committed by Mathew Sutcliffe
parent 578a092b0c
commit 7be604741c
5 changed files with 77 additions and 0 deletions

View File

@@ -20,7 +20,9 @@
#include <QNetworkInterface>
#include <QNetworkReply>
#include <QObject>
#include <QSslCertificate>
#include <QSslConfiguration>
#include <QSslKey>
#include <QSslSocket>
#include <QTcpSocket>
#include <QTextStream>
@@ -222,6 +224,36 @@ namespace BlackMisc
request.setRawHeader("User-Agent", userAgent.toLatin1());
}
//! \cond PRIVATE
QSslKey loadPrivateSslKey()
{
QFile privateKeyFile(":/blackmisc/ssl/swiftclient.key");
privateKeyFile.open(QIODevice::ReadOnly);
QSslKey privateKey(&privateKeyFile, QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey, QByteArrayLiteral("ead811e4474a29539a37ff766ca18330"));
Q_ASSERT(!privateKey.isNull());
return privateKey;
}
QSslCertificate loadSslCertifcate()
{
QFile certificateFile(":/blackmisc/ssl/swiftclient.crt");
certificateFile.open(QIODevice::ReadOnly);
QSslCertificate certificate(&certificateFile);
Q_ASSERT(!certificate.isNull());
return certificate;
}
//! \endcond
void CNetworkUtils::setSwiftClientSslCertificate(QNetworkRequest &request)
{
static const QSslKey privateKey(loadPrivateSslKey());
static const QSslCertificate certificate(loadSslCertifcate());
QSslConfiguration sslConfiguration = request.sslConfiguration();
sslConfiguration.setPrivateKey(privateKey);
sslConfiguration.setLocalCertificate(certificate);
request.setSslConfiguration(sslConfiguration);
}
QHttpPart CNetworkUtils::getMultipartWithDebugFlag()
{
QHttpPart textPartDebug;

View File

@@ -106,6 +106,9 @@ namespace BlackMisc
//! Set user agent for request
static void setSwiftUserAgent(QNetworkRequest &request);
//! Set swift client ssl certificate
static void setSwiftClientSslCertificate(QNetworkRequest &request);
//! Multipart with DEBUG FLAG for server
static QHttpPart getMultipartWithDebugFlag();