AusweisApp2
ECardApiResult.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "GlobalStatus.h"
10 
11 #include <QCoreApplication>
12 #include <QJsonObject>
13 #include <QMap>
14 #include <QPair>
15 #include <QSharedData>
16 #include <QString>
17 
18 class test_ECardApiResult;
19 class test_UrlUtil;
20 
21 namespace governikus
22 {
23 
25 {
26  Q_GADGET
27  Q_DECLARE_TR_FUNCTIONS(governikus::ECardApiResult)
28 
29  friend class RemoteMessageResponse;
30  friend class StartPaosResponse;
31  friend class ::test_ECardApiResult;
32  friend class ::test_UrlUtil;
33 
34  public:
35  enum class Major
36  {
37  Unknown,
38  Ok,
39  Warning,
40  Error
41  };
42 
43  enum class Minor
44  {
45  null, // Used by Major::Ok and undefined state only!
79  };
80 
81  enum class Origin
82  {
83  Server, Client
84  };
85 
86  Q_ENUM(Major)
87  Q_ENUM(Minor)
88  Q_ENUM(Origin)
89 
90  private:
91  class ResultData
92  : public QSharedData
93  {
94  public:
95  const Major mMajor;
96  const Minor mMinor;
97  const QString mMessage;
98  const QString mMessageLang;
99  const Origin mOrigin;
100 
101  ResultData(Major pMajor, Minor pMinor, const QString& pMessage, Origin pOrigin);
102 
103  bool operator ==(const ResultData& pOther) const
104  {
105  return mMajor == pOther.mMajor &&
106  mMinor == pOther.mMinor &&
107  mMessage == pOther.mMessage &&
108  mMessageLang == pOther.mMessageLang &&
109  mOrigin == pOther.mOrigin;
110  }
111 
112 
113  };
114 
115  static const QMap<Major, QString> cMajorResults;
116  static const QMap<Minor, QString> cMinorResults;
117 
118  static QMap<GlobalStatus::Code, Minor> cConversionMap1;
119  static QMap<Minor, GlobalStatus::Code> cConversionMap2;
120 
121  static void initConversionMaps();
122  static void addConversionElement(const GlobalStatus::Code pCode, const Minor pMinor);
123  static GlobalStatus::Code toStatus(const Minor pMinor);
124  static Minor fromStatus(const GlobalStatus::Code pCode);
125 
127  static ECardApiResult::Origin fromStatus(const GlobalStatus::Origin pSelf);
128 
129  static ECardApiResult fromStatus(const GlobalStatus& pStatus);
130 
131  static Major parseMajor(const QString& pMajor);
132  static Minor parseMinor(const QString& pMinor);
133 
134  QSharedDataPointer<ResultData> d;
135 
136  ECardApiResult(Major pMajor, Minor pMinor, const QString& pMessage = QString(), Origin pOrigin = Origin::Client);
137  ECardApiResult(const QString& pMajor, const QString& pMinor = QString(), const QString& pMessage = QString(), Origin pOrigin = Origin::Client);
138 
139  public:
140  ECardApiResult(const GlobalStatus& pStatus);
141 
142  bool operator ==(const ECardApiResult& pResult) const;
143 
144  static ECardApiResult createOk();
145 
146  static bool isMajor(const QString& pMajor);
147  static bool isMinor(const QString& pMinor);
148  static QString getMessage(Minor pMinor);
149 
150  Major getMajor() const;
151  Minor getMinor() const;
152  QString getMessage() const;
153  const QString& getMessageLang() const;
154 
155  static QString getMajorString(Major pMajor);
156  static QString getMinorString(Minor pMinor);
157 
158  QString getMajorString() const;
159  QString getMinorString() const;
160 
161  bool isValid() const;
162  bool isOk() const;
163  bool isOriginServer() const;
164  QJsonObject toJson() const;
165 
166  GlobalStatus toStatus() const;
167  explicit operator GlobalStatus() const;
168 };
169 
170 } // namespace governikus
171 
172 QDebug operator <<(QDebug pDbg, const governikus::ECardApiResult& pResult);
governikus::ECardApiResult::Minor::KEY_KeyGenerationNotPossible
@ KEY_KeyGenerationNotPossible
governikus::ECardApiResult::Minor::IFDL_IO_RepeatedDataMismatch
@ IFDL_IO_RepeatedDataMismatch
RESULTMINOR
#define RESULTMINOR
Definition: ECardApiResult.cpp:15
governikus::ECardApiResult::Minor::SAL_Cancellation_by_User
@ SAL_Cancellation_by_User
governikus::GlobalStatus::Code::Workflow_TrustedChannel_Server_Format_Error
@ Workflow_TrustedChannel_Server_Format_Error
governikus::ECardApiResult::toStatus
GlobalStatus toStatus() const
Definition: ECardApiResult.cpp:584
governikus::ECardApiResult::Minor::AL_Not_Initialized
@ AL_Not_Initialized
governikus::GlobalStatus::Code::Workflow_Network_Ssl_Hash_Not_In_Certificate_Description
@ Workflow_Network_Ssl_Hash_Not_In_Certificate_Description
governikus::ECardApiResult::Minor
Minor
Definition: ECardApiResult.h:44
governikus::StartPaosResponse
Definition: StartPaosResponse.h:21
governikus::GlobalStatus::Code::Paos_Error_AL_Communication_Error
@ Paos_Error_AL_Communication_Error
governikus::ECardApiResult::Minor::AL_Session_Terminated_Warning
@ AL_Session_Terminated_Warning
governikus::GlobalStatus::Code::Workflow_Certificate_No_Url_In_Description
@ Workflow_Certificate_No_Url_In_Description
governikus::GlobalStatus::Code::RemoteConnector_RemoteHostRefusedConnection
@ RemoteConnector_RemoteHostRefusedConnection
RESULTMAJOR
#define RESULTMAJOR
Definition: ECardApiResult.cpp:14
governikus::GlobalStatus::Code::Workflow_Server_Incomplete_Information_Provided
@ Workflow_Server_Incomplete_Information_Provided
governikus::operator<<
QDebug operator<<(QDebug pDbg, const CardInfo &pCardInfo)
Definition: CardInfo.cpp:259
governikus::ECardApiResult::Major::Error
@ Error
governikus::ECardApiResult::Minor::DP_Communication_Error
@ DP_Communication_Error
governikus::GlobalStatus::Code::Workflow_Preverification_Developermode_Error
@ Workflow_Preverification_Developermode_Error
governikus::GlobalStatus::Code::Workflow_Wrong_Parameter_Invocation
@ Workflow_Wrong_Parameter_Invocation
governikus::ECardApiResult::Minor::AL_Unkown_API_Function
@ AL_Unkown_API_Function
governikus::GlobalStatus::Code::Workflow_No_Unique_AtCvc
@ Workflow_No_Unique_AtCvc
governikus::GlobalStatus::Code::Workflow_Network_Empty_Redirect_Url
@ Workflow_Network_Empty_Redirect_Url
governikus::ECardApiResult::Minor::IFDL_UnknownSlot
@ IFDL_UnknownSlot
governikus::ECardApiResult::Origin
Origin
Definition: ECardApiResult.h:82
governikus::GlobalStatus::Code::Workflow_TrustedChannel_Other_Network_Error
@ Workflow_TrustedChannel_Other_Network_Error
governikus::GlobalStatus::Code
Code
Definition: GlobalStatus.h:26
governikus::ECardApiResult::Minor::AL_Internal_Error
@ AL_Internal_Error
governikus::GlobalStatus::Code::Workflow_TrustedChannel_No_Data_Received
@ Workflow_TrustedChannel_No_Data_Received
governikus::GlobalStatus::Code::Network_TimeOut
@ Network_TimeOut
governikus::ECardApiResult::Major::Unknown
@ Unknown
governikus::GlobalStatus::Code::Workflow_Unexpected_Message_From_EidServer
@ Workflow_Unexpected_Message_From_EidServer
governikus::ECardApiResult::Minor::IFDL_CancellationByUser
@ IFDL_CancellationByUser
governikus::GlobalStatus::Code::Card_NewPin_Mismatch
@ Card_NewPin_Mismatch
governikus::GlobalStatus::Code::Workflow_AlreadyInProgress_Error
@ Workflow_AlreadyInProgress_Error
governikus::ECardApiResult::Major
Major
Definition: ECardApiResult.h:36
governikus::GlobalStatus::Code::Workflow_TrustedChannel_Ssl_Certificate_Unsupported_Algorithm_Or_Length
@ Workflow_TrustedChannel_Ssl_Certificate_Unsupported_Algorithm_Or_Length
governikus::GlobalStatus::Code::Paos_Error_AL_Unknown_Error
@ Paos_Error_AL_Unknown_Error
governikus::GlobalStatus::toErrorDescription
QString toErrorDescription(const bool pSimplifiedVersion=false) const
Definition: GlobalStatus.cpp:88
governikus::GlobalStatus::Code::RemoteConnector_InvalidRequest
@ RemoteConnector_InvalidRequest
governikus::GlobalStatus::Code::Workflow_Network_Malformed_Redirect_Url
@ Workflow_Network_Malformed_Redirect_Url
governikus::GlobalStatus::Code::Paos_Error_SAL_Cancellation_by_User
@ Paos_Error_SAL_Cancellation_by_User
governikus::GlobalStatus::Code::Workflow_Processing_Error
@ Workflow_Processing_Error
governikus::ECardApiResult::getMinor
Minor getMinor() const
Definition: ECardApiResult.cpp:514
governikus::GlobalStatus::Code::Paos_Error_AL_Internal_Error
@ Paos_Error_AL_Internal_Error
governikus::ECardApiResult::Minor::IL_Signature_InvalidCertificatePath
@ IL_Signature_InvalidCertificatePath
governikus::GlobalStatus::Code::Workflow_Reader_Device_Scan_Error
@ Workflow_Reader_Device_Scan_Error
governikus::GlobalStatus::Code::Workflow_TrustedChannel_Establishment_Error
@ Workflow_TrustedChannel_Establishment_Error
governikus::ECardApiResult::Minor::SAL_MEAC_DocumentValidityVerificationFailed
@ SAL_MEAC_DocumentValidityVerificationFailed
governikus::ECardApiResult::isMinor
static bool isMinor(const QString &pMinor)
Definition: ECardApiResult.cpp:334
governikus::ECardApiResult::Origin::Client
@ Client
governikus::GlobalStatus::Code::RemoteConnector_ConnectionTimeout
@ RemoteConnector_ConnectionTimeout
governikus::ECardApiResult::getMessage
QString getMessage() const
Definition: ECardApiResult.cpp:520
governikus::GlobalStatus::Code::Card_Invalid_Can
@ Card_Invalid_Can
governikus::GlobalStatus::Code::Card_NewPin_Invalid_Length
@ Card_NewPin_Invalid_Length
governikus::ECardApiResult::Minor::null
@ null
governikus::ECardApiResult::toJson
QJsonObject toJson() const
Definition: ECardApiResult.cpp:625
governikus::GlobalStatus::Code::Paos_Generic_Server_Error
@ Paos_Generic_Server_Error
governikus::ECardApiResult::Minor::AL_Communication_Error
@ AL_Communication_Error
governikus::GlobalStatus::ExternalInformation::ECARDAPI_ERROR
@ ECARDAPI_ERROR
governikus::GlobalStatus::Code::Downloader_Cannot_Save_File
@ Downloader_Cannot_Save_File
governikus::ECardApiResult::isMajor
static bool isMajor(const QString &pMajor)
Definition: ECardApiResult.cpp:328
governikus::GlobalStatus::Code::Paos_Unexpected_Warning
@ Paos_Unexpected_Warning
governikus::ECardApiResult::Minor::IFDL_Timeout_Error
@ IFDL_Timeout_Error
governikus::GlobalStatus::Code::Paos_Error_DP_Trusted_Channel_Establishment_Failed
@ Paos_Error_DP_Trusted_Channel_Establishment_Failed
governikus::GlobalStatus::Code::Unknown_Error
@ Unknown_Error
governikus::GlobalStatus::Code::Downloader_Data_Corrupted
@ Downloader_Data_Corrupted
governikus::ECardApiResult::Minor::IFDL_Terminal_NoCard
@ IFDL_Terminal_NoCard
governikus::GlobalStatus::Code::No_Error
@ No_Error
governikus::ECardApiResult::Minor::DP_Unknown_Webservice_Binding
@ DP_Unknown_Webservice_Binding
governikus::GlobalStatus::Code::Workflow_Communication_Missing_Redirect_Url
@ Workflow_Communication_Missing_Redirect_Url
governikus::ECardApiResult::Minor::AL_No_Permission
@ AL_No_Permission
governikus::ECardApiResult
Definition: ECardApiResult.h:25
governikus::GlobalStatus::Code::Card_Puk_Blocked
@ Card_Puk_Blocked
governikus::GlobalStatus::Code::Card_Protocol_Error
@ Card_Protocol_Error
governikus::GlobalStatus::Code::Workflow_Redirect_Transmission_Error
@ Workflow_Redirect_Transmission_Error
governikus::ECardApiResult::getMajorString
QString getMajorString() const
Definition: ECardApiResult.cpp:544
governikus::GlobalStatus::Code::Workflow_TrustedChannel_Hash_Not_In_Description
@ Workflow_TrustedChannel_Hash_Not_In_Description
governikus::ECardApiResult::Minor::DP_Trusted_Channel_Establishment_Failed
@ DP_Trusted_Channel_Establishment_Failed
GlobalStatus.h
governikus::ECardApiResult::Minor::DP_Unknown_Protocol
@ DP_Unknown_Protocol
governikus::ECardApiResult::operator==
bool operator==(const ECardApiResult &pResult) const
Definition: ECardApiResult.cpp:502
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
governikus::GlobalStatus::Code::Workflow_TrustedChannel_TimeOut
@ Workflow_TrustedChannel_TimeOut
governikus::GlobalStatus::Code::Workflow_Bluetooth_Reader_Connection_Error
@ Workflow_Bluetooth_Reader_Connection_Error
governikus::ECardApiResult::isValid
bool isValid() const
Definition: ECardApiResult.cpp:556
governikus::RemoteMessageResponse
Definition: RemoteMessageResponse.h:15
governikus::ECardApiResult::isOk
bool isOk() const
Definition: ECardApiResult.cpp:572
governikus::ECardApiResult::Minor::AL_Warning_Connection_Disconnected
@ AL_Warning_Connection_Disconnected
governikus::GlobalStatus::Code::Workflow_No_Permission_Error
@ Workflow_No_Permission_Error
governikus::ECardApiResult::getMinorString
QString getMinorString() const
Definition: ECardApiResult.cpp:550
governikus::ECardApiResult::getMessage
static QString getMessage(Minor pMinor)
Definition: ECardApiResult.cpp:340
governikus::GlobalStatus::Code::Workflow_Unknown_Paos_From_EidServer
@ Workflow_Unknown_Paos_From_EidServer
governikus::ECardApiResult::Origin::Server
@ Server
governikus::ECardApiResult::isOriginServer
bool isOriginServer() const
Definition: ECardApiResult.cpp:578
governikus::ECardApiResult::Major::Warning
@ Warning
governikus::ECardApiResult::Minor::SAL_MEAC_AgeVerificationFailedWarning
@ SAL_MEAC_AgeVerificationFailedWarning
governikus::ECardApiResult::Minor::IFDL_IFD_SharingViolation
@ IFDL_IFD_SharingViolation
governikus::GlobalStatus::Code::Workflow_Network_Ssl_Certificate_Unsupported_Algorithm_Or_Length
@ Workflow_Network_Ssl_Certificate_Unsupported_Algorithm_Or_Length
governikus::GlobalStatus::Code::Workflow_No_Unique_DvCvc
@ Workflow_No_Unique_DvCvc
governikus::GlobalStatus::Code::Card_Unexpected_Transmit_Status
@ Card_Unexpected_Transmit_Status
governikus::GlobalStatus::Code::Card_Pin_Not_Blocked
@ Card_Pin_Not_Blocked
operator<<
QDebug operator<<(QDebug pDbg, const governikus::ECardApiResult &pResult)
Definition: ECardApiResult.cpp:657
governikus::GlobalStatus::Code::Workflow_TrustedChannel_Proxy_Error
@ Workflow_TrustedChannel_Proxy_Error
governikus::GlobalStatus::Code::RemoteConnector_ConnectionError
@ RemoteConnector_ConnectionError
governikus::GlobalStatus::Code::RemoteReader_CloseCode_AbnormalClose
@ RemoteReader_CloseCode_AbnormalClose
governikus::GlobalStatus::Code::Workflow_Certificate_No_Description
@ Workflow_Certificate_No_Description
governikus::GlobalStatus::Code::Card_Not_Found
@ Card_Not_Found
governikus::GlobalStatus::Code::Workflow_Reader_Became_Inaccessible
@ Workflow_Reader_Became_Inaccessible
governikus::GlobalStatus::Code::Card_Communication_Error
@ Card_Communication_Error
governikus::ECardApiResult::Minor::SAL_MEAC_CommunityVerificationFailedWarning
@ SAL_MEAC_CommunityVerificationFailedWarning
governikus::GlobalStatus::Origin::Server
@ Server
governikus::GlobalStatus::Code::Card_Invalid_Puk
@ Card_Invalid_Puk
governikus::LanguageLoader
Definition: LanguageLoader.h:23
governikus::ECardApiResult::getMessageLang
const QString & getMessageLang() const
Definition: ECardApiResult.cpp:526
governikus::GlobalStatus::Origin::Client
@ Client
governikus::GlobalStatus::Code::Downloader_File_Not_Found
@ Downloader_File_Not_Found
governikus::GlobalStatus
Definition: GlobalStatus.h:20
governikus::ECardApiResult::Minor::SAL_SecurityConditionNotSatisfied
@ SAL_SecurityConditionNotSatisfied
governikus::GlobalStatus::getOrigin
Origin getOrigin() const
Definition: GlobalStatus.cpp:407
governikus::ECardApiResult::Minor::AL_Unknown_Error
@ AL_Unknown_Error
governikus::GlobalStatus::Code::Network_Ssl_Establishment_Error
@ Network_Ssl_Establishment_Error
governikus::GlobalStatus::Code::Workflow_Cancellation_By_User
@ Workflow_Cancellation_By_User
governikus::GlobalStatus::Code::Workflow_TrustedChannel_ServiceUnavailable
@ Workflow_TrustedChannel_ServiceUnavailable
governikus::GlobalStatus::getStatusCode
Code getStatusCode() const
Definition: GlobalStatus.cpp:82
ECardApiResult.h
governikus::ECardApiResult::Minor::AL_Parameter_Error
@ AL_Parameter_Error
governikus::GlobalStatus::Code::Paos_Error_SAL_Invalid_Key
@ Paos_Error_SAL_Invalid_Key
governikus::GlobalStatus::Code::Network_Proxy_Error
@ Network_Proxy_Error
governikus::GlobalStatus::Code::Card_Invalid_Pin
@ Card_Invalid_Pin
governikus::ECardApiResult::Minor::IFDL_InvalidSlotHandle
@ IFDL_InvalidSlotHandle
governikus::ECardApiResult::getMajorString
static QString getMajorString(Major pMajor)
Definition: ECardApiResult.cpp:532
governikus::GlobalStatus::Code::Workflow_Certificate_Hash_Error
@ Workflow_Certificate_Hash_Error
governikus::GlobalStatus::Code::Workflow_Network_Invalid_Scheme
@ Workflow_Network_Invalid_Scheme
governikus::GlobalStatus::Code::Workflow_Cannot_Confirm_IdCard_Authenticity
@ Workflow_Cannot_Confirm_IdCard_Authenticity
governikus::GlobalStatus::Code::Network_ServiceUnavailable
@ Network_ServiceUnavailable
governikus::GlobalStatus::Code::Workflow_TrustedChannel_Error_From_Server
@ Workflow_TrustedChannel_Error_From_Server
governikus::GlobalStatus::Code::Workflow_Error_Page_Transmission_Error
@ Workflow_Error_Page_Transmission_Error
governikus::GlobalStatus::Code::RemoteConnector_NoSupportedApiLevel
@ RemoteConnector_NoSupportedApiLevel
governikus::ECardApiResult::Major::Ok
@ Ok
governikus::ECardApiResult::Minor::DP_Node_Not_Reachable
@ DP_Node_Not_Reachable
governikus::GlobalStatus::Code::Workflow_Network_Expected_Redirect
@ Workflow_Network_Expected_Redirect
governikus::GlobalStatus::Code::Card_Cancellation_By_User
@ Card_Cancellation_By_User
governikus::ECardApiResult::getMajor
Major getMajor() const
Definition: ECardApiResult.cpp:508
governikus::GlobalStatus::Origin
Origin
Definition: GlobalStatus.h:119
governikus::GlobalStatus::Code::Card_Pin_Blocked
@ Card_Pin_Blocked
governikus::GlobalStatus::Code::Network_Other_Error
@ Network_Other_Error
governikus::ECardApiResult::getMinorString
static QString getMinorString(Minor pMinor)
Definition: ECardApiResult.cpp:538
governikus::ECardApiResult::Minor::DP_Unknown_Cipher_Suite
@ DP_Unknown_Cipher_Suite
governikus::GlobalStatus::Code::Workflow_Card_Removed
@ Workflow_Card_Removed
governikus::ECardApiResult::Minor::DP_Unknown_Channel_Handle
@ DP_Unknown_Channel_Handle
governikus::GlobalStatus::Code::Workflow_Certificate_Sop_Error
@ Workflow_Certificate_Sop_Error
LanguageLoader.h
governikus::ECardApiResult::Minor::IFDL_IO_UnknownPINFormat
@ IFDL_IO_UnknownPINFormat
governikus::ECardApiResult::Minor::SAL_Invalid_Key
@ SAL_Invalid_Key
governikus::ECardApiResult::Minor::DP_Timeout_Error
@ DP_Timeout_Error
governikus::GlobalStatus::Code::Workflow_Preverification_Error
@ Workflow_Preverification_Error
governikus::GlobalStatus::Code::Workflow_Network_Ssl_Connection_Unsupported_Algorithm_Or_Length
@ Workflow_Network_Ssl_Connection_Unsupported_Algorithm_Or_Length
governikus::GlobalStatus::Code::Card_Input_TimeOut
@ Card_Input_TimeOut
governikus::ECardApiResult::createOk
static ECardApiResult createOk()
Definition: ECardApiResult.cpp:85