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_RemoteConnector;
21class test_RemoteTlsServer;
22class test_RemoteWebSocketServer;
23
24namespace governikus
25{
26
28 : public AbstractSettings
29{
30 Q_OBJECT
31
32 friend class AppSettings;
33 friend class ::test_RemoteServiceSettings;
34 friend class ::test_RemoteConnector;
35 friend class ::test_RemoteTlsServer;
36 friend class ::test_RemoteWebSocketServer;
37
38 public:
40 {
42 friend class ::test_RemoteServiceSettings;
43
44 private:
45 QString mFingerprint;
46 QString mName;
47 QDateTime mLastConnected;
48
49 RemoteInfo(const QString& pFingerprint,
50 const QDateTime& pLastConnected);
51
52 public:
53 RemoteInfo() = default;
54
55 static RemoteInfo fromJson(const QJsonObject&);
56 [[nodiscard]] QJsonObject toJson() const;
57
58 [[nodiscard]] const QString& getFingerprint() const;
59
60 [[nodiscard]] QString getNameEscaped() const;
61 void setNameUnescaped(const QString& pName);
62
63 [[nodiscard]] const QDateTime& getLastConnected() const;
64 void setLastConnected(const QDateTime& pLastConnected);
65
66 bool operator==(const RemoteInfo& pOther) const;
67 bool operator!=(const RemoteInfo& pOther) const;
68 };
69
70 private:
71 QSharedPointer<QSettings> mStore;
72
74 [[nodiscard]] QString getDefaultServerName() const;
75 void setTrustedCertificates(const QList<QSslCertificate>& pCertificates);
76 void setUniqueTrustedCertificates(const QSet<QSslCertificate>& pCertificates);
77
78 void setRemoteInfos(const QVector<RemoteInfo>& pInfos);
79 void syncRemoteInfos(const QSet<QSslCertificate>& pCertificates);
80
81 public:
82 static QString generateFingerprint(const QSslCertificate& pCert);
83 ~RemoteServiceSettings() override;
84 void save() override;
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:27
Definition: RemoteServiceSettings.h:40
bool operator!=(const RemoteInfo &pOther) const
Definition: RemoteServiceSettings.cpp:425
QString getNameEscaped() const
Definition: RemoteServiceSettings.cpp:393
void setLastConnected(const QDateTime &pLastConnected)
Definition: RemoteServiceSettings.cpp:411
static RemoteInfo fromJson(const QJsonObject &)
Definition: RemoteServiceSettings.cpp:367
void setNameUnescaped(const QString &pName)
Definition: RemoteServiceSettings.cpp:399
QJsonObject toJson() const
Definition: RemoteServiceSettings.cpp:377
const QDateTime & getLastConnected() const
Definition: RemoteServiceSettings.cpp:405
const QString & getFingerprint() const
Definition: RemoteServiceSettings.cpp:387
bool operator==(const RemoteInfo &pOther) const
Definition: RemoteServiceSettings.cpp:417
Definition: RemoteServiceSettings.h:29
void removeTrustedCertificate(const QSslCertificate &pCertificate)
Definition: RemoteServiceSettings.cpp:173
void setCertificate(const QSslCertificate &pCert) const
Definition: RemoteServiceSettings.cpp:224
bool updateRemoteInfo(const RemoteInfo &pInfo)
Definition: RemoteServiceSettings.cpp:328
QSslKey getKey() const
Definition: RemoteServiceSettings.cpp:230
RemoteInfo getRemoteInfo(const QSslCertificate &pCertificate) const
Definition: RemoteServiceSettings.cpp:248
void save() override
Definition: RemoteServiceSettings.cpp:63
void setKey(const QSslKey &pKey) const
Definition: RemoteServiceSettings.cpp:242
bool checkAndGenerateKey(bool pForceGeneration=false)
Definition: RemoteServiceSettings.cpp:195
bool getPinPadMode() const
Definition: RemoteServiceSettings.cpp:101
void setPinPadMode(bool pPinPadMode)
Definition: RemoteServiceSettings.cpp:107
QList< QSslCertificate > getTrustedCertificates() const
Definition: RemoteServiceSettings.cpp:113
~RemoteServiceSettings() override
Definition: RemoteServiceSettings.cpp:58
QVector< RemoteInfo > getRemoteInfos() const
Definition: RemoteServiceSettings.cpp:269
QSslCertificate getCertificate() const
Definition: RemoteServiceSettings.cpp:218
QString getServerName() const
Definition: RemoteServiceSettings.cpp:82
void addTrustedCertificate(const QSslCertificate &pCertificate)
Definition: RemoteServiceSettings.cpp:165
static QString generateFingerprint(const QSslCertificate &pCert)
Definition: RemoteServiceSettings.cpp:39
static QString escapeDeviceName(const QString &pDeviceNameUnescaped)
Definition: RemoteServiceSettings.cpp:352
void setServerName(const QString &pName)
Definition: RemoteServiceSettings.cpp:88
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15