ImagingTools Core SDK
CSslConfigurationAdapterComp.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtNetwork/QSslKey>
7
8// ACF includes
9#include <ilog/TLoggerCompWrap.h>
10#include <iprm/IParamsSet.h>
11
12// ImtCore includes
13#include <imtcom/ISslConfigurationApplier.h>
14
15
16namespace imtcom
17{
18
19
20class CSslConfigurationAdapterComp:
21 public ilog::CLoggerComponentBase,
22 virtual public ISslConfigurationApplier
23{
24public:
25 typedef ilog::CLoggerComponentBase BaseClass;
26
27 I_BEGIN_COMPONENT(CSslConfigurationAdapterComp)
28 I_REGISTER_INTERFACE(imtcom::ISslConfigurationApplier)
29 I_ASSIGN(m_sslConfigurationCompPtr, "SslConfiguration", "SSL Configuration is used by networking classes to relay information about an open SSL connection and to allow the server to control certain features of that connection.", true, "SslConfiguration")
30 I_END_COMPONENT
31
32 // reimplemented (imtcom::ISslConfigurationApplier)
33 virtual bool LoadLocalCertificateFromFile(const QString& path, QSsl::EncodingFormat format = QSsl::Pem) const override;
34 virtual bool LoadPrivateKeyFromFile(
35 const QString& path,
36 QSsl::KeyAlgorithm algorithm,
37 QSsl::EncodingFormat format = QSsl::Pem,
38 const QByteArray& passPhrase = {}) const override;
39 virtual bool LoadCaCertificatesFromFile(const QString& path, QSsl::EncodingFormat format = QSsl::Pem) const override;
40 virtual bool SetPeerVerifyMode(QSslSocket::PeerVerifyMode mode) const override;
41 virtual bool SetSslProtocol(QSsl::SslProtocol protocol) const override;
42
43private:
44 bool ApplyEncodingFormat(iprm::IParamsSet& paramsSet, QSsl::EncodingFormat format) const;
45 bool ApplyFilePath(iprm::IParamsSet& paramsSet, const QString& path) const;
46 void ProvideSslEnabled() const;
47
48private:
49 I_REF(iprm::IParamsSet, m_sslConfigurationCompPtr);
50};
51
52
53} // namespace imtcom
54
55
Interface for applying SSL-related settings to an SSL configuration.
Server Communication and Connection Management Module.