AusweisApp2
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);
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:29
Definition RemoteServiceSettings.h:41
bool operator!=(const RemoteInfo &pOther) const
Definition RemoteServiceSettings.cpp:432
QString getNameEscaped() const
Definition RemoteServiceSettings.cpp:400
void setLastConnected(const QDateTime &pLastConnected)
Definition RemoteServiceSettings.cpp:418
static RemoteInfo fromJson(const QJsonObject &)
Definition RemoteServiceSettings.cpp:374
void setNameUnescaped(const QString &pName)
Definition RemoteServiceSettings.cpp:406
QJsonObject toJson() const
Definition RemoteServiceSettings.cpp:384
const QDateTime & getLastConnected() const
Definition RemoteServiceSettings.cpp:412
const QString & getFingerprint() const
Definition RemoteServiceSettings.cpp:394
bool operator==(const RemoteInfo &pOther) const
Definition RemoteServiceSettings.cpp:424
Definition RemoteServiceSettings.h:31
void removeTrustedCertificate(const QSslCertificate &pCertificate)
Definition RemoteServiceSettings.cpp:167
void setCertificate(const QSslCertificate &pCert) const
Definition RemoteServiceSettings.cpp:218
bool updateRemoteInfo(const RemoteInfo &pInfo)
Definition RemoteServiceSettings.cpp:330
QSslKey getKey() const
Definition RemoteServiceSettings.cpp:225
void fireInitialDeviceNameSet(const QString &pName)
RemoteInfo getRemoteInfo(const QSslCertificate &pCertificate) const
Definition RemoteServiceSettings.cpp:244
void setKey(const QSslKey &pKey) const
Definition RemoteServiceSettings.cpp:237
bool checkAndGenerateKey(bool pForceGeneration=false)
Definition RemoteServiceSettings.cpp:189
bool getPinPadMode() const
Definition RemoteServiceSettings.cpp:86
void setShowAccessRights(bool pShowAccessRights)
Definition RemoteServiceSettings.cpp:105
bool getShowAccessRights() const
Definition RemoteServiceSettings.cpp:99
void setPinPadMode(bool pPinPadMode)
Definition RemoteServiceSettings.cpp:92
QList< QSslCertificate > getTrustedCertificates() const
Definition RemoteServiceSettings.cpp:112
QVector< RemoteInfo > getRemoteInfos() const
Definition RemoteServiceSettings.cpp:270
QSslCertificate getCertificate() const
Definition RemoteServiceSettings.cpp:212
QString getServerName() const
Definition RemoteServiceSettings.cpp:72
~RemoteServiceSettings() override=default
void addTrustedCertificate(const QSslCertificate &pCertificate)
Definition RemoteServiceSettings.cpp:159
static QString generateFingerprint(const QSslCertificate &pCert)
Definition RemoteServiceSettings.cpp:41
static QString escapeDeviceName(const QString &pDeviceNameUnescaped)
Definition RemoteServiceSettings.cpp:359
void setServerName(const QString &pName)
Definition RemoteServiceSettings.cpp:78
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:16