AusweisApp2
Lade ...
Suche ...
Keine Treffer
RemoteServiceSettings.h
gehe zur Dokumentation dieser Datei
1
7#pragma once
8
9#include "AbstractSettings.h"
10
11#include <QDateTime>
12#include <QList>
13#include <QSet>
14#include <QSslCertificate>
15#include <QSslKey>
16#include <QString>
17#include <QVector>
18
19class test_RemoteServiceSettings;
20class test_IfdConnector;
21class test_RemoteTlsServer;
22class test_RemoteWebSocketServer;
23
24namespace governikus
25{
26
28 : public AbstractSettings
29{
30 Q_OBJECT
31 friend class AppSettings;
32 friend class ::test_RemoteServiceSettings;
33 friend class ::test_IfdConnector;
34 friend class ::test_RemoteTlsServer;
35 friend class ::test_RemoteWebSocketServer;
36
37 public:
39 {
41 friend class ::test_RemoteServiceSettings;
42
43 private:
44 QString mFingerprint;
45 QString mName;
46 QDateTime mLastConnected;
47
48 RemoteInfo(const QString& pFingerprint,
49 const QDateTime& pLastConnected);
50
51 public:
52 RemoteInfo() = default;
53
54 static RemoteInfo fromJson(const QJsonObject&);
55 [[nodiscard]] QJsonObject toJson() const;
56
57 [[nodiscard]] const QString& getFingerprint() const;
58
59 [[nodiscard]] QString getNameEscaped() const;
60 void setNameUnescaped(const QString& pName);
61
62 [[nodiscard]] const QDateTime& getLastConnected() const;
63 void setLastConnected(const QDateTime& pLastConnected);
64
65 bool operator==(const RemoteInfo& pOther) const;
66 bool operator!=(const RemoteInfo& pOther) const;
67 };
68
69 private:
70 QSharedPointer<QSettings> mStore;
71
73 [[nodiscard]] QString getDefaultServerName() const;
74 void setTrustedCertificates(const QList<QSslCertificate>& pCertificates);
75 void setUniqueTrustedCertificates(const QSet<QSslCertificate>& pCertificates);
76
77 void setRemoteInfos(const QVector<RemoteInfo>& pInfos);
78 void syncRemoteInfos(const QSet<QSslCertificate>& pCertificates);
79
80 public:
81 static QString generateFingerprint(const QSslCertificate& pCert);
82 ~RemoteServiceSettings() override = default;
83
84 [[nodiscard]] QString getServerName() const;
85 void setServerName(const QString& pName);
86
87 [[nodiscard]] bool getPinPadMode() const;
88 void setPinPadMode(bool pPinPadMode);
89
90 [[nodiscard]] QList<QSslCertificate> getTrustedCertificates() const;
91 void addTrustedCertificate(const QSslCertificate& pCertificate);
92 void removeTrustedCertificate(const QSslCertificate& pCertificate);
93 void removeTrustedCertificate(const QString& pFingerprint);
94
95 bool checkAndGenerateKey(bool pForceGeneration = false);
96
97 [[nodiscard]] QSslCertificate getCertificate() const;
98 void setCertificate(const QSslCertificate& pCert) const;
99
100 [[nodiscard]] QSslKey getKey() const;
101 void setKey(const QSslKey& pKey) const;
102
103 [[nodiscard]] RemoteInfo getRemoteInfo(const QSslCertificate& pCertificate) const;
104 [[nodiscard]] RemoteInfo getRemoteInfo(const QString& pFingerprint) const;
105 [[nodiscard]] QVector<RemoteInfo> getRemoteInfos() const;
106 bool updateRemoteInfo(const RemoteInfo& pInfo);
107
108 static QString escapeDeviceName(const QString& pDeviceNameUnescaped);
109
110 Q_SIGNALS:
113};
114
115
116} // namespace governikus
117
Q_DECLARE_TYPEINFO(governikus::RemoteServiceSettings::RemoteInfo, Q_MOVABLE_TYPE)
Definition: AbstractSettings.h:26
Represents application settings.
Definition: AppSettings.h:27
Definition: RemoteServiceSettings.h:39
bool operator!=(const RemoteInfo &pOther) const
Definition: RemoteServiceSettings.cpp:408
QString getNameEscaped() const
Definition: RemoteServiceSettings.cpp:376
void setLastConnected(const QDateTime &pLastConnected)
Definition: RemoteServiceSettings.cpp:394
static RemoteInfo fromJson(const QJsonObject &)
Definition: RemoteServiceSettings.cpp:350
void setNameUnescaped(const QString &pName)
Definition: RemoteServiceSettings.cpp:382
QJsonObject toJson() const
Definition: RemoteServiceSettings.cpp:360
const QDateTime & getLastConnected() const
Definition: RemoteServiceSettings.cpp:388
const QString & getFingerprint() const
Definition: RemoteServiceSettings.cpp:370
bool operator==(const RemoteInfo &pOther) const
Definition: RemoteServiceSettings.cpp:400
Definition: RemoteServiceSettings.h:29
void removeTrustedCertificate(const QSslCertificate &pCertificate)
Definition: RemoteServiceSettings.cpp:153
void setCertificate(const QSslCertificate &pCert) const
Definition: RemoteServiceSettings.cpp:204
bool updateRemoteInfo(const RemoteInfo &pInfo)
Definition: RemoteServiceSettings.cpp:311
QSslKey getKey() const
Definition: RemoteServiceSettings.cpp:211
RemoteInfo getRemoteInfo(const QSslCertificate &pCertificate) const
Definition: RemoteServiceSettings.cpp:230
void setKey(const QSslKey &pKey) const
Definition: RemoteServiceSettings.cpp:223
bool checkAndGenerateKey(bool pForceGeneration=false)
Definition: RemoteServiceSettings.cpp:175
bool getPinPadMode() const
Definition: RemoteServiceSettings.cpp:85
void setPinPadMode(bool pPinPadMode)
Definition: RemoteServiceSettings.cpp:91
QList< QSslCertificate > getTrustedCertificates() const
Definition: RemoteServiceSettings.cpp:98
QVector< RemoteInfo > getRemoteInfos() const
Definition: RemoteServiceSettings.cpp:251
QSslCertificate getCertificate() const
Definition: RemoteServiceSettings.cpp:198
QString getServerName() const
Definition: RemoteServiceSettings.cpp:71
~RemoteServiceSettings() override=default
void addTrustedCertificate(const QSslCertificate &pCertificate)
Definition: RemoteServiceSettings.cpp:145
static QString generateFingerprint(const QSslCertificate &pCert)
Definition: RemoteServiceSettings.cpp:40
static QString escapeDeviceName(const QString &pDeviceNameUnescaped)
Definition: RemoteServiceSettings.cpp:335
void setServerName(const QString &pName)
Definition: RemoteServiceSettings.cpp:77
A simple template renderer.
Definition: ActivationContext.h:15