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