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]] QList<QSslCertificate> getTrustedCertificates() const;
93 void addTrustedCertificate(const QSslCertificate& pCertificate);
94 void removeTrustedCertificate(const QSslCertificate& pCertificate);
95 void removeTrustedCertificate(const QString& pFingerprint);
96
97 bool checkAndGenerateKey(bool pForceGeneration = false);
98
99 [[nodiscard]] QSslCertificate getCertificate() const;
100 void setCertificate(const QSslCertificate& pCert) const;
101
102 [[nodiscard]] QSslKey getKey() const;
103 void setKey(const QSslKey& pKey) const;
104
105 [[nodiscard]] RemoteInfo getRemoteInfo(const QSslCertificate& pCertificate) const;
106 [[nodiscard]] RemoteInfo getRemoteInfo(const QString& pFingerprint) const;
107 [[nodiscard]] QVector<RemoteInfo> getRemoteInfos() const;
108 bool updateRemoteInfo(const RemoteInfo& pInfo);
109
110 static QString escapeDeviceName(const QString& pDeviceNameUnescaped);
111
112 Q_SIGNALS:
115};
116
117
118} // namespace governikus
119
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: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:31
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
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16