AusweisApp
Lade ...
Suche ...
Keine Treffer
RemoteServiceSettings.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "AbstractSettings.h"
12
13#include <QDateTime>
14#include <QList>
15#include <QSet>
16#include <QSslCertificate>
17#include <QSslKey>
18#include <QString>
19#include <QVector>
20
21class test_RemoteServiceSettings;
22class test_IfdConnector;
23class test_RemoteTlsServer;
24class test_RemoteWebSocketServer;
25
26namespace governikus
27{
28
30 : public AbstractSettings
31{
32 Q_OBJECT
33 friend class AppSettings;
34 friend class ::test_RemoteServiceSettings;
35 friend class ::test_IfdConnector;
36 friend class ::test_RemoteTlsServer;
37 friend class ::test_RemoteWebSocketServer;
38
39 public:
41 {
43 friend class ::test_RemoteServiceSettings;
44
45 private:
46 QString mFingerprint;
47 QString mName;
48 QDateTime mLastConnected;
49
50 RemoteInfo(const QString& pFingerprint,
51 const QDateTime& pLastConnected);
52
53 public:
54 RemoteInfo() = default;
55
56 static RemoteInfo fromJson(const QJsonObject&);
57 [[nodiscard]] QJsonObject toJson() const;
58
59 [[nodiscard]] const QString& getFingerprint() const;
60
61 [[nodiscard]] QString getNameEscaped() const;
62 void setNameUnescaped(const QString& pName);
63
64 [[nodiscard]] const QDateTime& getLastConnected() const;
65 void setLastConnected(const QDateTime& pLastConnected);
66
67 bool operator==(const RemoteInfo& pOther) const;
68 bool operator!=(const RemoteInfo& pOther) const;
69 };
70
71 private:
72 QSharedPointer<QSettings> mStore;
73
75 [[nodiscard]] QString getDefaultServerName() const;
76 void setTrustedCertificates(const QList<QSslCertificate>& pCertificates);
77 void setUniqueTrustedCertificates(const QSet<QSslCertificate>& pCertificates);
78
79 void setRemoteInfos(const QVector<RemoteInfo>& pInfos);
80 void syncRemoteInfos(const QSet<QSslCertificate>& pCertificates);
81
82 public:
83 static QString generateFingerprint(const QSslCertificate& pCert);
84 ~RemoteServiceSettings() override = default;
85
86 [[nodiscard]] QString getServerName() const;
87 void setServerName(const QString& pName);
88
89 [[nodiscard]] bool getPinPadMode() const;
90 void setPinPadMode(bool pPinPadMode);
91
92 [[nodiscard]] bool getShowAccessRights() const;
93 void setShowAccessRights(bool pShowAccessRights);
94
95 [[nodiscard]] QList<QSslCertificate> getTrustedCertificates() const;
96 void addTrustedCertificate(const QSslCertificate& pCertificate);
97 void removeTrustedCertificate(const QSslCertificate& pCertificate);
98 void removeTrustedCertificate(const QString& pFingerprint);
99
100 bool checkAndGenerateKey(bool pForceGeneration = false) const;
101
102 [[nodiscard]] QSslCertificate getCertificate() const;
103 void setCertificate(const QSslCertificate& pCert) const;
104
105 [[nodiscard]] QSslKey getKey() const;
106 void setKey(const QSslKey& pKey) const;
107
108 [[nodiscard]] RemoteInfo getRemoteInfo(const QSslCertificate& pCertificate) const;
109 [[nodiscard]] RemoteInfo getRemoteInfo(const QString& pFingerprint) const;
110 [[nodiscard]] QVector<RemoteInfo> getRemoteInfos() const;
111 bool updateRemoteInfo(const RemoteInfo& pInfo);
112
113 static QString escapeDeviceName(const QString& pDeviceNameUnescaped);
114
115 Q_SIGNALS:
118 void fireInitialDeviceNameSet(const QString& pName);
119};
120
121
122} // namespace governikus
123
Q_DECLARE_TYPEINFO(governikus::RemoteServiceSettings::RemoteInfo, Q_MOVABLE_TYPE)
Definition AbstractSettings.h:26
Represents application settings.
Definition AppSettings.h:28
Definition RemoteServiceSettings.h:41
bool operator!=(const RemoteInfo &pOther) const
Definition RemoteServiceSettings.cpp:431
QString getNameEscaped() const
Definition RemoteServiceSettings.cpp:399
void setLastConnected(const QDateTime &pLastConnected)
Definition RemoteServiceSettings.cpp:417
static RemoteInfo fromJson(const QJsonObject &)
Definition RemoteServiceSettings.cpp:373
void setNameUnescaped(const QString &pName)
Definition RemoteServiceSettings.cpp:405
QJsonObject toJson() const
Definition RemoteServiceSettings.cpp:383
const QDateTime & getLastConnected() const
Definition RemoteServiceSettings.cpp:411
const QString & getFingerprint() const
Definition RemoteServiceSettings.cpp:393
bool operator==(const RemoteInfo &pOther) const
Definition RemoteServiceSettings.cpp:423
Definition RemoteServiceSettings.h:31
void removeTrustedCertificate(const QSslCertificate &pCertificate)
Definition RemoteServiceSettings.cpp:162
void setCertificate(const QSslCertificate &pCert) const
Definition RemoteServiceSettings.cpp:213
bool updateRemoteInfo(const RemoteInfo &pInfo)
Definition RemoteServiceSettings.cpp:329
bool checkAndGenerateKey(bool pForceGeneration=false) const
Definition RemoteServiceSettings.cpp:184
QSslKey getKey() const
Definition RemoteServiceSettings.cpp:220
void fireInitialDeviceNameSet(const QString &pName)
RemoteInfo getRemoteInfo(const QSslCertificate &pCertificate) const
Definition RemoteServiceSettings.cpp:243
void setKey(const QSslKey &pKey) const
Definition RemoteServiceSettings.cpp:236
bool getPinPadMode() const
Definition RemoteServiceSettings.cpp:81
void setShowAccessRights(bool pShowAccessRights)
Definition RemoteServiceSettings.cpp:100
bool getShowAccessRights() const
Definition RemoteServiceSettings.cpp:94
void setPinPadMode(bool pPinPadMode)
Definition RemoteServiceSettings.cpp:87
QList< QSslCertificate > getTrustedCertificates() const
Definition RemoteServiceSettings.cpp:107
QVector< RemoteInfo > getRemoteInfos() const
Definition RemoteServiceSettings.cpp:269
QSslCertificate getCertificate() const
Definition RemoteServiceSettings.cpp:207
QString getServerName() const
Definition RemoteServiceSettings.cpp:67
~RemoteServiceSettings() override=default
void addTrustedCertificate(const QSslCertificate &pCertificate)
Definition RemoteServiceSettings.cpp:154
static QString generateFingerprint(const QSslCertificate &pCert)
Definition RemoteServiceSettings.cpp:36
static QString escapeDeviceName(const QString &pDeviceNameUnescaped)
Definition RemoteServiceSettings.cpp:358
void setServerName(const QString &pName)
Definition RemoteServiceSettings.cpp:73
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:16