AusweisApp
Lade ...
Suche ...
Keine Treffer
RemoteServiceModel.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "Env.h"
13#include "RemoteDeviceModel.h"
14#include "SingletonCreator.h"
15#include "WorkflowModel.h"
16#include "WorkflowRequest.h"
18
19#include <QObject>
20#include <QQmlEngine>
21#include <QtQml/qqmlregistration.h>
22
23
24class test_UiPluginQml;
25
26
27namespace governikus
28{
29
31 : public WorkflowModel
32 , public SingletonCreator<RemoteServiceModel>
33{
37
38 friend class Env;
39 friend class ::test_UiPluginQml;
40
60 Q_PROPERTY(bool requiresLocalNetworkPermission MEMBER mRequiresLocalNetworkPermission CONSTANT)
63
64 private:
66 bool mRunnable;
67 bool mIsStarting;
68 bool mCanEnableNfc;
69 bool mPairingRequested;
70 QString mErrorMessage;
71 QByteArray mPsk;
72 RemoteDeviceModel mAllDevices;
73 RemoteDeviceFilterModel mAvailableDevicesInPairingMode;
74 RemoteDeviceFilterModel mAvailablePairedDevices;
75 RemoteDeviceFilterModel mUnavailablePairedDevices;
76 QString mConnectionInfo;
77 QString mConnectedServerDeviceNames;
78 QSharedPointer<IfdListEntry> mRememberedServerEntry;
79 const bool mRequiresLocalNetworkPermission;
80#if defined(Q_OS_IOS)
81 bool mWasRunning;
82 bool mWasPairing;
83#endif
84
86 ~RemoteServiceModel() override = default;
87
89 QRegularExpression getPercentMatcher() const;
90
91 void setStarting(bool pStarting);
92
93 private Q_SLOTS:
94 void onEstablishConnectionDone(const QSharedPointer<IfdListEntry>& pEntry, const GlobalStatus& pStatus);
95 void onConnectionInfoChanged(bool pConnected);
96 void onCardConnected(const QSharedPointer<CardConnection>& pConnection) const;
97 void onCardDisconnected(const QSharedPointer<CardConnection>& pConnection) const;
98 void onConnectedDevicesChanged();
99 void onEnvironmentChanged();
100 void onApplicationStateChanged(const bool pIsAppInForeground);
101 void onPairingCompleted(const QSslCertificate& pCertificate);
102 void onNameChanged();
103
104 public Q_SLOTS:
107
108 public:
109 [[nodiscard]] bool isRunning() const;
110 Q_INVOKABLE void setRunning(bool pState, bool pEnablePairing = false);
111 [[nodiscard]] bool isStarting() const;
112
113
119 [[nodiscard]] bool detectRemoteDevices() const;
120 Q_INVOKABLE bool rememberServer(const QString& pDeviceId);
122 [[nodiscard]] QList<ReaderManagerPluginType> getSupportedReaderPluginTypes() const override;
123
125 void setPairing(bool pEnabled) const;
126 [[nodiscard]] bool isPairing() const;
127 [[nodiscard]] bool isConnectedToPairedDevice() const;
128 [[nodiscard]] bool enableTransportPinLink() const;
129 [[nodiscard]] bool isRunnable() const;
130 [[nodiscard]] bool isCanEnableNfc() const;
131 [[nodiscard]] QString getErrorMessage() const;
132 [[nodiscard]] QByteArray getPsk() const;
133 [[nodiscard]] QString getDisplayText() const;
134 [[nodiscard]] int getPercentage() const;
135 [[nodiscard]] QString getConnectionInfo() const;
136 [[nodiscard]] QString getConnectedServerDeviceNames() const;
137 [[nodiscard]] bool getRemoteReaderVisible() const;
138 [[nodiscard]] QString getTransactionInfo() const;
139 [[nodiscard]] QString getConnectedClientName() const;
140
141 [[nodiscard]] Q_INVOKABLE bool pinPadModeOn() const;
142 Q_INVOKABLE void forgetDevice(const QString& pId);
147
148 Q_SIGNALS:
158 void firePairingFailed(const QString& pDeviceName, const QString& pErrorMessage);
159 void firePairingSuccess(const QString& pDeviceName);
167};
168
169
170} // namespace governikus
Definition Env.h:42
Definition GlobalStatus.h:22
Definition IfdListEntry.h:21
Definition IfdServiceContext.h:28
Definition RemoteDeviceFilterModel.h:17
Definition RemoteDeviceModel.h:34
Definition RemoteServiceModel.h:33
RemoteDeviceFilterModel * getAvailablePairedDevices()
Definition RemoteServiceModel.cpp:231
QByteArray psk
Definition RemoteServiceModel.h:47
RemoteDeviceFilterModel * getUnavailablePairedDevices()
Definition RemoteServiceModel.cpp:243
Q_INVOKABLE void changePinLength()
Definition RemoteServiceModel.cpp:553
QString connectedClientName
Definition RemoteServiceModel.h:62
bool running
Definition RemoteServiceModel.h:41
bool remoteReaderVisible
Definition RemoteServiceModel.h:59
void setDetectRemoteDevices(bool pNewStatus)
Definition RemoteServiceModel.cpp:249
int getPercentage() const
Definition RemoteServiceModel.cpp:447
bool connectedToPairedDevice
Definition RemoteServiceModel.h:50
bool isRunnable() const
Definition RemoteServiceModel.cpp:416
QString transactionInfo
Definition RemoteServiceModel.h:61
void fireStartWorkflow(const QSharedPointer< WorkflowRequest > &pRequest)
void firePairingFailed(const QString &pDeviceName, const QString &pErrorMessage)
Q_INVOKABLE void forgetDevice(const QString &pId)
Definition RemoteServiceModel.cpp:529
bool canEnableNfc
Definition RemoteServiceModel.h:44
void onTranslationChanged()
Definition RemoteServiceModel.cpp:134
bool isPairing
Definition RemoteServiceModel.h:46
governikus::RemoteDeviceFilterModel * availablePairedDevices
Definition RemoteServiceModel.h:55
QString connectionInfo
Definition RemoteServiceModel.h:51
RemoteDeviceModel * getAllDevices()
Definition RemoteServiceModel.cpp:225
QString getErrorMessage() const
Definition RemoteServiceModel.cpp:428
governikus::RemoteDeviceModel * allDevices
Definition RemoteServiceModel.h:53
Q_INVOKABLE bool pinPadModeOn() const
Definition RemoteServiceModel.cpp:491
bool isConnectedToPairedDevice() const
Definition RemoteServiceModel.cpp:399
QString connectedServerDeviceNames
Definition RemoteServiceModel.h:52
bool runnable
Definition RemoteServiceModel.h:43
void firePskChanged(const QByteArray &pPsk)
void setPairing(bool pEnabled) const
Definition RemoteServiceModel.cpp:379
QString getConnectionInfo() const
Definition RemoteServiceModel.cpp:454
bool getRemoteReaderVisible() const
Definition RemoteServiceModel.cpp:466
void fireCertificateRemoved(const QString &pDeviceName)
governikus::RemoteDeviceFilterModel * availableDevicesInPairingMode
Definition RemoteServiceModel.h:54
bool isStarting
Definition RemoteServiceModel.h:42
Q_INVOKABLE bool rememberServer(const QString &pDeviceId)
Definition RemoteServiceModel.cpp:286
void firePairingSuccess(const QString &pDeviceName)
QString getConnectedServerDeviceNames() const
Definition RemoteServiceModel.cpp:460
bool requiresLocalNetworkPermission
Definition RemoteServiceModel.h:60
void resetRemoteServiceContext(const QSharedPointer< IfdServiceContext > &pContext=QSharedPointer< IfdServiceContext >())
Definition RemoteServiceModel.cpp:338
Q_INVOKABLE void cancelPasswordRequest()
Definition RemoteServiceModel.cpp:535
QByteArray getPsk() const
Definition RemoteServiceModel.cpp:434
QString getTransactionInfo() const
Definition RemoteServiceModel.cpp:472
bool detectRemoteDevices
Definition RemoteServiceModel.h:57
QString errorMessage
Definition RemoteServiceModel.h:45
bool isCanEnableNfc() const
Definition RemoteServiceModel.cpp:422
RemoteDeviceFilterModel * getAvailableDevicesInPairingMode()
Definition RemoteServiceModel.cpp:237
governikus::RemoteDeviceFilterModel * unavailablePairedDevices
Definition RemoteServiceModel.h:56
QList< ReaderManagerPluginType > getSupportedReaderPluginTypes() const override
Definition RemoteServiceModel.cpp:274
Q_INVOKABLE void connectToRememberedServer(const QByteArray &pServerPsk)
Definition RemoteServiceModel.cpp:261
Q_INVOKABLE void setRunning(bool pState, bool pEnablePairing=false)
Definition RemoteServiceModel.cpp:181
Q_INVOKABLE bool isPinAuthentication() const
Definition RemoteServiceModel.cpp:562
int percentage
Definition RemoteServiceModel.h:49
QString getDisplayText() const
Definition RemoteServiceModel.cpp:440
bool enableTransportPinLink
Definition RemoteServiceModel.h:58
QString getConnectedClientName() const
Definition RemoteServiceModel.cpp:478
Q_INVOKABLE void passwordsDiffer()
Definition RemoteServiceModel.cpp:544
void onReaderPluginTypesChanged(bool pExplicitStart)
Definition RemoteServiceModel.cpp:140
bool isRunning() const
Definition RemoteServiceModel.cpp:175
QString displayText
Definition RemoteServiceModel.h:48
Definition SingletonCreator.h:22
Definition WorkflowModel.h:27
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