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
20class test_RemoteServiceSettings;
21class test_IfdConnector;
22class test_RemoteTlsServer;
23class test_RemoteWebSocketServer;
24
25namespace governikus
26{
27
29 : public AbstractSettings
30{
32 friend class AppSettings;
33 friend class ::test_RemoteServiceSettings;
34 friend class ::test_IfdConnector;
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,
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;
65
66 bool operator==(const RemoteInfo& pOther) const;
67 bool operator!=(const RemoteInfo& pOther) const;
68 };
69
70 private:
72
74 [[nodiscard]] QString getDefaultDeviceName() const;
75 void setTrustedCertificates(const QList<QSslCertificate>& pCertificates);
76 void setUniqueTrustedCertificates(const QSet<QSslCertificate>& pCertificates);
77
78 void setRemoteInfos(const QList<RemoteInfo>& pInfos);
79 void syncRemoteInfos(const QSet<QSslCertificate>& pCertificates);
80
81 public:
82 static QString generateFingerprint(const QSslCertificate& pCert);
83 ~RemoteServiceSettings() override = default;
84
85 [[nodiscard]] QString getDeviceName() const;
86 void setDeviceName(const QString& pName);
87
88 [[nodiscard]] bool getPinPadMode() const;
89 void setPinPadMode(bool pPinPadMode);
90
91 [[nodiscard]] bool getShowAccessRights() const;
93
94 [[nodiscard]] QList<QSslCertificate> getTrustedCertificates() const;
97 void removeTrustedCertificate(const QString& pFingerprint);
98
99 bool checkAndGenerateKey(int pCreateKeySize) const;
100
101 [[nodiscard]] QList<QSslCertificate> getCertificates() const;
102 void setCertificates(const QList<QSslCertificate>& pCertChain) const;
103
104 [[nodiscard]] QSslKey getKey() const;
105 void setKey(const QSslKey& pKey) const;
106
108 [[nodiscard]] RemoteInfo getRemoteInfo(const QString& pFingerprint) const;
109 [[nodiscard]] QList<RemoteInfo> getRemoteInfos() const;
110 bool updateRemoteInfo(const RemoteInfo& pInfo);
111
112 static QString escapeDeviceName(const QString& pDeviceNameUnescaped);
113
114 Q_SIGNALS:
117};
118
119
120} // namespace governikus
121
Q_DECLARE_TYPEINFO(governikus::RemoteServiceSettings::RemoteInfo, Q_MOVABLE_TYPE)
Definition AbstractSettings.h:26
Definition AppSettings.h:22
Definition RemoteServiceSettings.h:40
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
QJsonObject toJson() const
Definition RemoteServiceSettings.cpp:405
const QDateTime & getLastConnected() const
Definition RemoteServiceSettings.cpp:433
const QString & getFingerprint() const
Definition RemoteServiceSettings.cpp:415
bool operator==(const RemoteInfo &pOther) const
Definition RemoteServiceSettings.cpp:445
Definition RemoteServiceSettings.h:30
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
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 generateFingerprint(const QSslCertificate &pCert)
Definition RemoteServiceSettings.cpp:35
static QString escapeDeviceName(const QString &pDeviceNameUnescaped)
Definition RemoteServiceSettings.cpp:380
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17
QSharedPointer< T > decodeObject(const QByteArray &pData, bool pLogging=true)
Template function for decoding an OpenSSL type from DER encoded QByteArray.
Definition ASN1TemplateUtil.h:114