diff --git a/src/blackmisc/blackmisc.qrc b/src/blackmisc/blackmisc.qrc index 8bd50db79..ae204523f 100644 --- a/src/blackmisc/blackmisc.qrc +++ b/src/blackmisc/blackmisc.qrc @@ -1,5 +1,7 @@ + ssl/swiftclient.crt + ssl/swiftclient.key translations/blackmisc_i18n_de.qm translations/blackmisc_i18n_fr.qm translations/blackmisc_i18n_en.qm diff --git a/src/blackmisc/network/networkutils.cpp b/src/blackmisc/network/networkutils.cpp index 643223b3e..38b089b39 100644 --- a/src/blackmisc/network/networkutils.cpp +++ b/src/blackmisc/network/networkutils.cpp @@ -20,7 +20,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -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; diff --git a/src/blackmisc/network/networkutils.h b/src/blackmisc/network/networkutils.h index 7deab4deb..679fe6634 100644 --- a/src/blackmisc/network/networkutils.h +++ b/src/blackmisc/network/networkutils.h @@ -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(); diff --git a/src/blackmisc/ssl/swiftclient.crt b/src/blackmisc/ssl/swiftclient.crt new file mode 100644 index 000000000..c93956b76 --- /dev/null +++ b/src/blackmisc/ssl/swiftclient.crt @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDujCCAaICCQDnRkKU8GJDQjANBgkqhkiG9w0BAQsFADBpMQswCQYDVQQGEwJE +RTEPMA0GA1UECAwGQmF5ZXJuMREwDwYDVQQHDAhQdWNoaGVpbTEWMBQGA1UECgwN +c3dpZnQgcHJvamVjdDEeMBwGA1UEAwwVc3dpZnQgUHJvamVjdCBSb290IENBMB4X +DTE3MDEyNDE5MjcwMVoXDTIwMDEyNDE5MjcwMVowWTELMAkGA1UEBhMCREUxDzAN +BgNVBAgMBkJheWVybjEWMBQGA1UECgwNc3dpZnQgcHJvamVjdDEhMB8GA1UEAwwY +Y2xpZW50LnN3aWZ0LXByb2plY3Qub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB +iQKBgQC3e4JMQJvbdaZReuFQ1kx8JQfuPktcuurowp3QdbFMBRah4vJMnl9Nm5ja +YHbQnJ1HUDNY/oMnS1RC6fPIu3BdWFSf5QjQitBxR9gT/F+7B4I+7O3o5fpaJBUy +2aLkZV7o8dd4ZMtDj1nIqmDn0oLexU9mC8PehD9kXeNrkv7D4wIDAQABMA0GCSqG +SIb3DQEBCwUAA4ICAQBjkh4rVWTd9Q3rFugQdjfDOOLuQPQyd7RBBXvqa4vOzWTe +Vxpo494AJlA+RyCSp2pcxsCrJYd4LKUg3LiB4E8fMid/k2rV0UPTPST556zfjNSG +Linjol0DzntXTp9ukINKWjCq23HPNioAl9NS9E/TfTwee8ygzipJr5n00OKb+MNR +rYzOpOPSLd4Pb3erRvFj8ov+DbabNfcW9yDH+EVMuLKxTiXvPKlEcTbuRqglU+/8 +WGOJs2dd4eoDs/E3Fd00XDrSp+Ib1QnpLBJKNJS4mxYVb4wqaTs64tjzqmhvThSt +iLz3xRRPsNRK9PWfkCtpTfcZfcTR67NKOqbUwy0IZvROC0idQjnWYdcn6D9nJ5Lf +ezLOnaB69/5fkiD6rL+24R0m7iQfoEC/UydMpk+k+IOMgpvBaXY+dB8y2/6Fok46 +5QsRB9NB132i4wA/HlfyiQQJjZTAACLp4wUv2dDUcdiXpuBFpbPmmh3vFzVDLUjH +PoV1sFU8x3z1K5+ZyYgiKayScgEP+96HpOrVT6cGPyRJKgAYPeOMwgiTCxx7qZbZ +Ib4PwEIX3FwuzVR6gPIbj5o1ERqRrw++ntUKjrVK/yEk6N/BKkZeF7Nkfmc/FYQJ +xHSPwLwoT/9csaf6I+o+N0U8SY/BeBDCLJNLYXxa7/Fp/1Hxm4TMEsN3Mti3rg== +-----END CERTIFICATE----- diff --git a/src/blackmisc/ssl/swiftclient.key b/src/blackmisc/ssl/swiftclient.key new file mode 100644 index 000000000..cbe91c1f7 --- /dev/null +++ b/src/blackmisc/ssl/swiftclient.key @@ -0,0 +1,18 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-EDE3-CBC,49D1BC755A1D23B3 + +3DVjf+GxDZIAlf0NFIg6AGcu1qTLe4K0iRhUqmoV2PAV0cra+2kMqq9B7GGGJXLA +mmyU+WgBItJU+NDfet/0bRfQaaFDB4Ake4A7AlP1eHfvM6UP5N4Qz44HolzJmw9Z +KX0vYDFKkABeblJMEPijIrXAG7LU3FFlzCy//3bqBnEyQaQ51j5AVvhUp2EMaYnT +nHsWRdJqHRSILUVL1KrlMwOgde3N6/zBvkL/+nhwipteGH9LGWfHT+qdIEuu7Keo +vO2owiep6G9FO95iMwsbExjg2nPr9qbEkLtJi2OuBveWhrGFgdUPreShmWC2MEwb +PFUAzoM0jzJMU32rWDqIkYnGbBPEapZcgx6j4QYsTwdBgBzVeeMJd37iezjL/uPI +yc+MHaDO7Z6WhykH6seWAmA5T9OFg0unmQttRsJrXYhjLC5Qw9KTG7PAOL/SGs6n +JMOF5J7Q3ljLNbFjGqnqlPQj2JTf+Bvs1mWi2m/GnTuhT9YNr766e9/wQjtSolMC +ATJEK5QkzMWtR8fDfol7aBjiYlptZOmOzRoBDaxlpsS8Huv5leevjY/8Il07+Qkw +LGClxTCda5JXN8q0E8xDGhiQBVYJqBpjtyDt2lZM4opx6wqYBiNkXrfTzLij5EkM +Rp1MpTZEK/wWZ982yC5ymUChaMP8BKDJT4I7kNzIqqVoi2WvRDtF4X5qeE30Y+uz +VSqnrFrvrEAz0ZWN0aCEv5aTnUwgPm+2qxTgTwT4u+sY3u5k3M5LAhzs4jBx0sqL +IU/4/YWNju0YsN+RXhKUpg4kFP2/bXLJOFYJ4yFPkAeXSwZJ0lF3Kg== +-----END RSA PRIVATE KEY-----