AusweisApp2
RemoteMessage.h
gehe zur Dokumentation dieser Datei
1 
5 #pragma once
6 
7 #include "EnumHelper.h"
8 
9 #include <QJsonDocument>
10 #include <QJsonObject>
11 #include <QString>
12 
13 
14 #define VALUE_NAME(_name, _key)\
15  inline QLatin1String _name(){\
16  return QLatin1String(_key);\
17  }
18 
19 
20 namespace governikus
21 {
22 defineEnumType(RemoteCardMessageType,
23  IFDEstablishContext,
24  IFDEstablishContextResponse,
25  IFDGetStatus,
26  IFDStatus,
27  IFDConnect,
28  IFDConnectResponse,
29  IFDDisconnect,
30  IFDDisconnectResponse,
31  IFDError,
32  IFDTransmit,
33  IFDTransmitResponse,
34  IFDEstablishPACEChannel,
35  IFDEstablishPACEChannelResponse,
36  IFDModifyPIN,
37  IFDModifyPINResponse,
38  UNDEFINED)
39 
40 
41 class RemoteMessage
42 {
43  private:
44  bool mIncomplete;
45  RemoteCardMessageType mMessageType;
46  QString mContextHandle;
47 
48  protected:
49  virtual QJsonObject createMessageBody(const QString& pContextHandle) const;
50  static QByteArray toByteArray(const QJsonObject& pJsonObject);
51 
52  void markIncomplete(const QString& pLogMessage);
53  void missingValue(const QLatin1String& pName);
54  void invalidType(const QLatin1String& pName, const QLatin1String& pExpectedType);
55  bool getBoolValue(const QJsonObject& pJsonObject, const QLatin1String& pName);
56  int getIntValue(const QJsonObject& pJsonObject, const QLatin1String& pName);
57  QString getStringValue(const QJsonObject& pJsonObject, const QLatin1String& pName);
58 
59  public:
60  static QJsonObject parseByteArray(const QByteArray& pMessage);
61 
62  RemoteMessage(RemoteCardMessageType pType);
63  RemoteMessage(const QJsonObject& pMessageObject);
64  virtual ~RemoteMessage() = default;
65 
66  bool isIncomplete() const;
67  RemoteCardMessageType getType() const;
68  const QString& getContextHandle() const;
69 
70  virtual QByteArray toByteArray(const QString& pContextHandle = QString()) const;
71 };
72 
73 
74 } // namespace governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
QByteArray getType() const
defineEnumType(KeyAgreementType, DH, ECDH) defineEnumType(MappingType
Method used for key agreement: