AusweisApp2
Lade ...
Suche ...
Keine Treffer
StateGenericSendReceive.h
gehe zur Dokumentation dieser Datei
1
5#pragma once
6
7#include "AbstractState.h"
11#include "paos/PaosMessage.h"
12#include "paos/PaosType.h"
13
14#include <QSharedPointer>
15#include <QSslPreSharedKeyAuthenticator>
16#include <QVector>
17
18class test_StateGenericSendReceive;
19
20namespace governikus
21{
22
24 : public AbstractState
25 , public GenericContextContainer<AuthContext>
26{
27 Q_OBJECT
28
29 private:
30 friend class ::test_StateGenericSendReceive;
31 const QVector<PaosType> mTypesToReceive;
32 QSharedPointer<QNetworkReply> mReply;
33
34 void setReceivedMessage(const QSharedPointer<PaosMessage>& pMessage);
35 GlobalStatus::Code checkAndSaveCertificate(const QSslCertificate& pCertificate);
36 void onSslErrors(const QList<QSslError>& pErrors);
37 void onSslHandshakeDone();
38 void run() override;
39
40 protected:
41 explicit StateGenericSendReceive(const QSharedPointer<WorkflowContext>& pContext, const QVector<PaosType>& pTypesToReceive, bool pConnectOnCardRemoved = true);
42 explicit StateGenericSendReceive(const QSharedPointer<WorkflowContext>& pContext, PaosType pTypesToReceive);
43
44 virtual QSharedPointer<PaosMessage> getAsMessage() = 0;
45 virtual QSharedPointer<ResponseType> getAsResponse() = 0;
46 virtual QSharedPointer<PaosCreator> getAsCreator() = 0;
47 virtual void emitStateMachineSignal(int result) = 0;
48
49 private Q_SLOTS:
50 void onReplyFinished();
51 void onPreSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator* pAuthenticator);
52
53 public:
54 void onExit(QEvent* pEvent) override;
55};
56
59{
60 Q_OBJECT
61 friend class StateBuilder;
62
63 explicit StateSendStartPaos(const QSharedPointer<WorkflowContext>& pContext)
64 : StateGenericSendReceive(pContext, QVector<PaosType>
65 {
66 PaosType::INITIALIZE_FRAMEWORK, PaosType::DID_LIST,
67 PaosType::DID_AUTHENTICATE_EAC1, PaosType::STARTPAOS_RESPONSE
68 }, false)
69 {
70 }
71
72 protected:
73 QSharedPointer<PaosMessage> getAsMessage() override
74 {
75 return getContext()->getStartPaos();
76 }
77
78
79 QSharedPointer<ResponseType> getAsResponse() override
80 {
81 return QSharedPointer<ResponseType>();
82 }
83
84
85 QSharedPointer<PaosCreator> getAsCreator() override
86 {
87 return getContext()->getStartPaos();
88 }
89
90
91 void emitStateMachineSignal(int pResult) override
92 {
93 if (pResult == 3)
94 {
95 Q_EMIT fireReceivedDidList();
96 }
97 else if (pResult == 4)
98 {
100 }
101 else if (pResult == 5)
102 {
104 }
105 }
106
107 Q_SIGNALS:
111
112
113};
114
117{
118 Q_OBJECT
119 friend class StateBuilder;
120
121 explicit StateSendInitializeFrameworkResponse(const QSharedPointer<WorkflowContext>& pContext)
122 : StateGenericSendReceive(pContext, QVector<PaosType>
123 {
124 PaosType::DID_LIST, PaosType::DID_AUTHENTICATE_EAC1, PaosType::STARTPAOS_RESPONSE
125 }, false)
126 {
127 }
128
129 protected:
130 QSharedPointer<PaosMessage> getAsMessage() override
131 {
132 return getContext()->getInitializeFrameworkResponse();
133 }
134
135
136 QSharedPointer<ResponseType> getAsResponse() override
137 {
138 return getContext()->getInitializeFrameworkResponse();
139 }
140
141
142 QSharedPointer<PaosCreator> getAsCreator() override
143 {
144 return getContext()->getInitializeFrameworkResponse();
145 }
146
147
148 void emitStateMachineSignal(int pResult) override
149 {
150 if (pResult == 3)
151 {
153 }
154 else if (pResult == 4)
155 {
157 }
158 }
159
160 Q_SIGNALS:
163
164
165};
166
169{
170 Q_OBJECT
171 friend class StateBuilder;
172
173 explicit StateSendDIDListResponse(const QSharedPointer<WorkflowContext>& pContext)
174 : StateGenericSendReceive(pContext, QVector<PaosType>
175 {
176 PaosType::DID_AUTHENTICATE_EAC1, PaosType::DISCONNECT, PaosType::STARTPAOS_RESPONSE
177 }, false)
178 {
179 }
180
181 protected:
182 QSharedPointer<PaosMessage> getAsMessage() override
183 {
184 return getContext()->getDidListResponse();
185 }
186
187
188 QSharedPointer<ResponseType> getAsResponse() override
189 {
190 return getContext()->getDidListResponse();
191 }
192
193
194 QSharedPointer<PaosCreator> getAsCreator() override
195 {
196 return getContext()->getDidListResponse();
197 }
198
199
200 void emitStateMachineSignal(int pResult) override
201 {
202 if (pResult == 3)
203 {
204 Q_EMIT fireReceivedDisconnect();
205 }
206 else if (pResult == 4)
207 {
209 }
210 }
211
212 Q_SIGNALS:
215
216};
217
220{
221 Q_OBJECT
222 friend class StateBuilder;
223
224 explicit StateSendDIDAuthenticateResponseEAC1(const QSharedPointer<WorkflowContext>& pContext)
225 : StateGenericSendReceive(pContext, QVector<PaosType>
226 {
227 PaosType::DID_AUTHENTICATE_EAC2, PaosType::DISCONNECT, PaosType::STARTPAOS_RESPONSE
228 })
229 {
230 }
231
232 protected:
233 QSharedPointer<PaosMessage> getAsMessage() override
234 {
235 return getContext()->getDidAuthenticateResponseEac1();
236 }
237
238
239 QSharedPointer<ResponseType> getAsResponse() override
240 {
241 return getContext()->getDidAuthenticateResponseEac1();
242 }
243
244
245 QSharedPointer<PaosCreator> getAsCreator() override
246 {
247 return getContext()->getDidAuthenticateResponseEac1();
248 }
249
250
251 void emitStateMachineSignal(int pResult) override
252 {
253 if (pResult == 3)
254 {
255 Q_EMIT fireReceivedDisconnect();
256 }
257 else if (pResult == 4)
258 {
260 }
261 }
262
263 Q_SIGNALS:
266
267};
268
271{
272 Q_OBJECT
273 friend class StateBuilder;
274
275 explicit StateSendDIDAuthenticateResponseEACAdditionalInputType(const QSharedPointer<WorkflowContext>& pContext)
276 : StateGenericSendReceive(pContext, QVector<PaosType>
277 {
278 PaosType::DID_AUTHENTICATE_EAC_ADDITIONAL_INPUT_TYPE, PaosType::STARTPAOS_RESPONSE
279 })
280 {
281 }
282
283 protected:
284 QSharedPointer<PaosMessage> getAsMessage() override
285 {
286 return getContext()->getDidAuthenticateResponseEacAdditionalInputType();
287 }
288
289
290 QSharedPointer<ResponseType> getAsResponse() override
291 {
292 return getContext()->getDidAuthenticateResponseEacAdditionalInputType();
293 }
294
295
296 QSharedPointer<PaosCreator> getAsCreator() override
297 {
298 return getContext()->getDidAuthenticateResponseEacAdditionalInputType();
299 }
300
301
302 void emitStateMachineSignal(int pResult) override
303 {
304 if (pResult == 3)
305 {
307 }
308 }
309
310 Q_SIGNALS:
312
313};
314
317{
318 Q_OBJECT
319 friend class StateBuilder;
320
321 explicit StateSendDIDAuthenticateResponseEAC2(const QSharedPointer<WorkflowContext>& pContext)
322 : StateGenericSendReceive(pContext, QVector<PaosType>
323 {
324 PaosType::TRANSMIT, PaosType::DISCONNECT, PaosType::STARTPAOS_RESPONSE
325 })
326 {
327 }
328
329 protected:
330 QSharedPointer<PaosMessage> getAsMessage() override
331 {
332 return getContext()->getDidAuthenticateResponseEac2();
333 }
334
335
336 QSharedPointer<ResponseType> getAsResponse() override
337 {
338 return getContext()->getDidAuthenticateResponseEac2();
339 }
340
341
342 QSharedPointer<PaosCreator> getAsCreator() override
343 {
344 return getContext()->getDidAuthenticateResponseEac2();
345 }
346
347
348 void emitStateMachineSignal(int pResult) override
349 {
350 if (pResult == 3)
351 {
352 Q_EMIT fireReceivedDisconnect();
353 }
354 else if (pResult == 4)
355 {
357 }
358 }
359
360 Q_SIGNALS:
363
364};
365
368{
369 Q_OBJECT
370 friend class StateBuilder;
371
372 explicit StateSendTransmitResponse(const QSharedPointer<WorkflowContext>& pContext)
373 : StateGenericSendReceive(pContext, QVector<PaosType>
374 {
375 PaosType::TRANSMIT, PaosType::DISCONNECT, PaosType::STARTPAOS_RESPONSE
376 })
377 {
378 }
379
380 protected:
381 QSharedPointer<PaosMessage> getAsMessage() override
382 {
383 return getContext()->getTransmitResponses().constLast();
384 }
385
386
387 QSharedPointer<ResponseType> getAsResponse() override
388 {
389 return getContext()->getTransmitResponses().constLast();
390 }
391
392
393 QSharedPointer<PaosCreator> getAsCreator() override
394 {
395 return getContext()->getTransmitResponses().constLast();
396 }
397
398
399 void emitStateMachineSignal(int pResult) override
400 {
401 if (pResult == 3)
402 {
403 Q_EMIT fireReceivedDisconnect();
404 }
405 else if (pResult == 4)
406 {
408 }
409 }
410
411 Q_SIGNALS:
414
415
416};
417
420{
421 Q_OBJECT
422 friend class StateBuilder;
423
424 explicit StateSendDisconnectResponse(const QSharedPointer<WorkflowContext>& pContext)
425 : StateGenericSendReceive(pContext, PaosType::STARTPAOS_RESPONSE)
426 {
427 }
428
429 protected:
430 QSharedPointer<PaosMessage> getAsMessage() override
431 {
432 return getContext()->getDisconnectResponse();
433 }
434
435
436 QSharedPointer<ResponseType> getAsResponse() override
437 {
438 return getContext()->getDisconnectResponse();
439 }
440
441
442 QSharedPointer<PaosCreator> getAsCreator() override
443 {
444 return getContext()->getDisconnectResponse();
445 }
446
447
448 void emitStateMachineSignal(int pResult) override
449 {
450 Q_UNUSED(pResult)
451 }
452
453
454};
455
456} // namespace governikus
Definition: AbstractState.h:20
Definition: GenericContextContainer.h:20
virtual QSharedPointer< AuthContext > getContext()
Definition: GenericContextContainer.h:34
Code
Definition: GlobalStatus.h:26
Definition: StateBuilder.h:18
Definition: StateGenericSendReceive.h:26
virtual QSharedPointer< PaosCreator > getAsCreator()=0
virtual QSharedPointer< PaosMessage > getAsMessage()=0
virtual QSharedPointer< ResponseType > getAsResponse()=0
void onExit(QEvent *pEvent) override
Definition: StateGenericSendReceive.cpp:186
virtual void emitStateMachineSignal(int result)=0
Definition: StateGenericSendReceive.h:220
QSharedPointer< ResponseType > getAsResponse() override
Definition: StateGenericSendReceive.h:239
QSharedPointer< PaosCreator > getAsCreator() override
Definition: StateGenericSendReceive.h:245
void emitStateMachineSignal(int pResult) override
Definition: StateGenericSendReceive.h:251
QSharedPointer< PaosMessage > getAsMessage() override
Definition: StateGenericSendReceive.h:233
Definition: StateGenericSendReceive.h:317
void emitStateMachineSignal(int pResult) override
Definition: StateGenericSendReceive.h:348
QSharedPointer< ResponseType > getAsResponse() override
Definition: StateGenericSendReceive.h:336
QSharedPointer< PaosMessage > getAsMessage() override
Definition: StateGenericSendReceive.h:330
QSharedPointer< PaosCreator > getAsCreator() override
Definition: StateGenericSendReceive.h:342
QSharedPointer< ResponseType > getAsResponse() override
Definition: StateGenericSendReceive.h:290
QSharedPointer< PaosMessage > getAsMessage() override
Definition: StateGenericSendReceive.h:284
QSharedPointer< PaosCreator > getAsCreator() override
Definition: StateGenericSendReceive.h:296
void emitStateMachineSignal(int pResult) override
Definition: StateGenericSendReceive.h:302
Definition: StateGenericSendReceive.h:169
void emitStateMachineSignal(int pResult) override
Definition: StateGenericSendReceive.h:200
QSharedPointer< PaosCreator > getAsCreator() override
Definition: StateGenericSendReceive.h:194
QSharedPointer< PaosMessage > getAsMessage() override
Definition: StateGenericSendReceive.h:182
QSharedPointer< ResponseType > getAsResponse() override
Definition: StateGenericSendReceive.h:188
Definition: StateGenericSendReceive.h:420
QSharedPointer< PaosMessage > getAsMessage() override
Definition: StateGenericSendReceive.h:430
QSharedPointer< PaosCreator > getAsCreator() override
Definition: StateGenericSendReceive.h:442
QSharedPointer< ResponseType > getAsResponse() override
Definition: StateGenericSendReceive.h:436
void emitStateMachineSignal(int pResult) override
Definition: StateGenericSendReceive.h:448
Definition: StateGenericSendReceive.h:117
void emitStateMachineSignal(int pResult) override
Definition: StateGenericSendReceive.h:148
QSharedPointer< ResponseType > getAsResponse() override
Definition: StateGenericSendReceive.h:136
QSharedPointer< PaosMessage > getAsMessage() override
Definition: StateGenericSendReceive.h:130
QSharedPointer< PaosCreator > getAsCreator() override
Definition: StateGenericSendReceive.h:142
Definition: StateGenericSendReceive.h:59
QSharedPointer< PaosCreator > getAsCreator() override
Definition: StateGenericSendReceive.h:85
void emitStateMachineSignal(int pResult) override
Definition: StateGenericSendReceive.h:91
QSharedPointer< PaosMessage > getAsMessage() override
Definition: StateGenericSendReceive.h:73
QSharedPointer< ResponseType > getAsResponse() override
Definition: StateGenericSendReceive.h:79
Definition: StateGenericSendReceive.h:368
QSharedPointer< ResponseType > getAsResponse() override
Definition: StateGenericSendReceive.h:387
QSharedPointer< PaosMessage > getAsMessage() override
Definition: StateGenericSendReceive.h:381
QSharedPointer< PaosCreator > getAsCreator() override
Definition: StateGenericSendReceive.h:393
void emitStateMachineSignal(int pResult) override
Definition: StateGenericSendReceive.h:399
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15