AusweisApp
Lade ...
Suche ...
Keine Treffer
RemoteServiceSettings.h
gehe zur Dokumentation dieser Datei
1
5#pragma once
6
7#include "AbstractSettings.h"
8
9#include <QDateTime>
10#include <QList>
11#include <QSet>
12#include <QSslCertificate>
13#include <QSslKey>
14#include <QString>
15
16class test_RemoteServiceSettings;
17class test_IfdConnector;
18class test_RemoteTlsServer;
19class test_RemoteWebSocketServer;
20
21namespace governikus
22{
23
25 : public AbstractSettings
26{
27 Q_OBJECT
28 friend class AppSettings;
29 friend class ::test_RemoteServiceSettings;
30 friend class ::test_IfdConnector;
31 friend class ::test_RemoteTlsServer;
32 friend class ::test_RemoteWebSocketServer;
33
34 public:
36 {
38 friend class ::test_RemoteServiceSettings;
39
40 private:
41 QByteArray mFingerprint;
42 QString mName;
43 QDateTime mLastConnected;
44
45 RemoteInfo(const QByteArray& pFingerprint,
46 const QDateTime& pLastConnected);
47
48 public:
49 RemoteInfo() = default;
50
51 static RemoteInfo fromJson(const QJsonObject&);
52 [[nodiscard]] QJsonObject toJson() const;
53
54 [[nodiscard]] const QByteArray& getFingerprint() const;
55
56 [[nodiscard]] QString getNameEscaped() const;
57 void setNameUnescaped(const QString& pName);
58
59 [[nodiscard]] const QDateTime& getLastConnected() const;
60 void setLastConnected(const QDateTime& pLastConnected);
61
62 bool operator==(const RemoteInfo& pOther) const;
63 bool operator!=(const RemoteInfo& pOther) const;
64 };
65
66 private:
67 QSharedPointer<QSettings> mStore;
68
70 [[nodiscard]] QString getDefaultDeviceName() const;
71 void setTrustedCertificates(const QList<QSslCertificate>& pCertificates);
72 void setUniqueTrustedCertificates(const QSet<QSslCertificate>& pCertificates);
73
74 void setRemoteInfos(const QList<RemoteInfo>& pInfos);
75 void syncRemoteInfos(const QSet<QSslCertificate>& pCertificates);
76
77 public:
78 static QByteArray generateFingerprint(const QSslCertificate& pCert);
79 ~RemoteServiceSettings() override = default;
80
81 [[nodiscard]] QString getDeviceName() const;
82 void setDeviceName(const QString& pName);
83
84 [[nodiscard]] bool getPinPadMode() const;
85 void setPinPadMode(bool pPinPadMode);
86
87 [[nodiscard]] bool getShowAccessRights() const;
88 void setShowAccessRights(bool pShowAccessRights);
89
90 [[nodiscard]] QList<QSslCertificate> getTrustedCertificates() const;
91 void addTrustedCertificate(const QSslCertificate& pCertificate);
92 void removeTrustedCertificate(const QSslCertificate& pCertificate);
93 void removeTrustedCertificate(const QByteArray& pFingerprint);
94
95 bool checkAndGenerateKey(int pCreateKeySize) const;
96
97 [[nodiscard]] QList<QSslCertificate> getCertificates() const;
98 void setCertificates(const QList<QSslCertificate>& pCertChain) 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 QByteArray& pFingerprint) const;
105 [[nodiscard]] QList<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
Definition AppSettings.h:22
Definition RemoteServiceSettings.h:36
bool operator!=(const RemoteInfo &pOther) const
Definition RemoteServiceSettings.cpp:453
QString getNameEscaped() const
Definition RemoteServiceSettings.cpp:421
void setLastConnected(const QDateTime &pLastConnected)
Definition RemoteServiceSettings.cpp:439
static RemoteInfo fromJson(const QJsonObject &)
Definition RemoteServiceSettings.cpp:395
void setNameUnescaped(const QString &pName)
Definition RemoteServiceSettings.cpp:427
const QByteArray & getFingerprint() const
Definition RemoteServiceSettings.cpp:415
QJsonObject toJson() const
Definition RemoteServiceSettings.cpp:405
const QDateTime & getLastConnected() const
Definition RemoteServiceSettings.cpp:433
bool operator==(const RemoteInfo &pOther) const
Definition RemoteServiceSettings.cpp:445
Definition RemoteServiceSettings.h:26
QList< QSslCertificate > getCertificates() const
Definition RemoteServiceSettings.cpp:229
void removeTrustedCertificate(const QSslCertificate &pCertificate)
Definition RemoteServiceSettings.cpp:181
void setCertificates(const QList< QSslCertificate > &pCertChain) const
Definition RemoteServiceSettings.cpp:235
bool updateRemoteInfo(const RemoteInfo &pInfo)
Definition RemoteServiceSettings.cpp:356
void setDeviceName(const QString &pName)
Definition RemoteServiceSettings.cpp:105
QSslKey getKey() const
Definition RemoteServiceSettings.cpp:247
QString getDeviceName() const
Definition RemoteServiceSettings.cpp:93
RemoteInfo getRemoteInfo(const QSslCertificate &pCertificate) const
Definition RemoteServiceSettings.cpp:270
static QByteArray generateFingerprint(const QSslCertificate &pCert)
Definition RemoteServiceSettings.cpp:35
void setKey(const QSslKey &pKey) const
Definition RemoteServiceSettings.cpp:263
bool checkAndGenerateKey(int pCreateKeySize) const
Definition RemoteServiceSettings.cpp:203
bool getPinPadMode() const
Definition RemoteServiceSettings.cpp:120
void setShowAccessRights(bool pShowAccessRights)
Definition RemoteServiceSettings.cpp:139
bool getShowAccessRights() const
Definition RemoteServiceSettings.cpp:133
void setPinPadMode(bool pPinPadMode)
Definition RemoteServiceSettings.cpp:126
QList< QSslCertificate > getTrustedCertificates() const
Definition RemoteServiceSettings.cpp:146
QList< RemoteInfo > getRemoteInfos() const
Definition RemoteServiceSettings.cpp:296
~RemoteServiceSettings() override=default
void addTrustedCertificate(const QSslCertificate &pCertificate)
Definition RemoteServiceSettings.cpp:173
static QString escapeDeviceName(const QString &pDeviceNameUnescaped)
Definition RemoteServiceSettings.cpp:380
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17