21 Network_ServiceUnavailable,
24 Network_Ssl_Establishment_Error,
29 Downloader_File_Not_Found,
30 Downloader_Cannot_Save_File,
31 Downloader_Data_Corrupted,
32 Downloader_Missing_Platform,
35 Update_Execution_Failed,
37 Workflow_AlreadyInProgress_Error,
38 Workflow_Communication_Missing_Redirect_Url,
39 Workflow_InternalError_BeforeTcToken,
40 Workflow_Cancellation_By_User,
41 Workflow_Card_Removed,
42 Workflow_Cannot_Confirm_IdCard_Authenticity,
43 Workflow_Unknown_Paos_From_EidServer,
44 Workflow_Start_Paos_Response_Missing,
45 Workflow_Unexpected_Message_From_EidServer,
46 Workflow_Preverification_Developermode_Error,
47 Workflow_Preverification_Error,
48 Workflow_No_Unique_AtCvc,
49 Workflow_No_Unique_DvCvc,
50 Workflow_No_Permission_Error,
51 Workflow_Wrong_Length_Error,
52 Workflow_Certificate_No_Description,
53 Workflow_Certificate_No_Url_In_Description,
54 Workflow_Certificate_Hash_Error,
55 Workflow_Certificate_Sop_Error,
56 Workflow_Browser_Transmission_Error,
57 Workflow_TrustedChannel_Establishment_Error,
58 Workflow_TrustedChannel_Server_Error,
59 Workflow_TrustedChannel_Client_Error,
60 Workflow_TrustedChannel_Hash_Not_In_Description,
61 Workflow_TrustedChannel_No_Data_Received,
62 Workflow_TrustedChannel_Ssl_Connection_Unsupported_Algorithm_Or_Length,
63 Workflow_TrustedChannel_Ssl_Certificate_Unsupported_Algorithm_Or_Length,
64 Workflow_TrustedChannel_ServiceUnavailable,
65 Workflow_TrustedChannel_TimeOut,
66 Workflow_TrustedChannel_Proxy_Error,
67 Workflow_TrustedChannel_Server_Format_Error,
68 Workflow_TrustedChannel_Other_Network_Error,
69 Workflow_Reader_Became_Inaccessible,
70 Workflow_Server_Incomplete_Information_Provided,
71 Workflow_Network_Ssl_Connection_Unsupported_Algorithm_Or_Length,
72 Workflow_Network_Ssl_Certificate_Unsupported_Algorithm_Or_Length,
73 Workflow_Network_Ssl_Hash_Not_In_Certificate_Description,
74 Workflow_Network_Empty_Redirect_Url,
75 Workflow_Network_Expected_Redirect,
76 Workflow_Network_Invalid_Scheme,
77 Workflow_Network_Malformed_Redirect_Url,
78 Workflow_Wrong_Parameter_Invocation,
79 Workflow_Smart_eID_Unavailable,
80 Workflow_Smart_eID_Applet_Preparation_Failed,
81 Workflow_Smart_eID_Authentication_Failed,
82 Workflow_Smart_eID_ServiceInformation_Query_Failed,
83 Workflow_Smart_eID_PrePersonalization_Failed,
84 Workflow_Smart_eID_Personalization_Failed,
85 Workflow_Smart_eID_Personalization_Denied,
87 Paos_Unexpected_Warning,
89 Paos_Generic_Server_Error,
91 Paos_Error_AL_Unknown_Error,
92 Paos_Error_AL_Internal_Error,
93 Paos_Error_AL_Communication_Error,
94 Paos_Error_DP_Trusted_Channel_Establishment_Failed,
95 Paos_Error_SAL_Cancellation_by_User,
96 Paos_Error_SAL_Invalid_Key,
99 Card_Communication_Error,
101 Card_Unexpected_Transmit_Status,
102 Card_Cancellation_By_User,
104 Card_Pin_Deactivated,
109 Card_Pin_Not_Blocked,
111 Card_NewPin_Mismatch,
112 Card_NewPin_Invalid_Length,
113 Card_ValidityVerificationFailed,
116 RemoteReader_CloseCode_AbnormalClose,
118 IfdConnector_InvalidRequest,
119 IfdConnector_NoSupportedApiLevel,
120 IfdConnector_ConnectionError,
121 IfdConnector_RemoteHostRefusedConnection
127 Q_DECLARE_TR_FUNCTIONS(governikus::GlobalStatus)
130 using Code = GlobalStatusCode;
137 enum class ExternalInformation
140 ECARDAPI_SERVERMESSAGE,
144 CERTIFICATE_ISSUER_NAME,
147 PERSONALIZATION_RESTRICTION_DATE
150 using ExternalInfoMap = QMap<ExternalInformation, QString>;
154 Q_ENUM(ExternalInformation)
161 const Code mStatusCode;
162 const ExternalInfoMap mExternalInformation;
165 InternalStatus(Code pStatusCode,
const ExternalInfoMap& pExternalInformation,
const Origin pOrigin)
166 : mStatusCode(pStatusCode)
167 , mExternalInformation(pExternalInformation)
173 InternalStatus(Code pStatusCode,
const QPair<ExternalInformation, QString>& pExternalInformation,
const Origin pOrigin)
174 : mStatusCode(pStatusCode)
175 , mExternalInformation({
176 {pExternalInformation.first, pExternalInformation.second}
183 bool operator ==(
const InternalStatus& pOther)
const
185 return mStatusCode == pOther.mStatusCode &&
186 mExternalInformation == pOther.mExternalInformation &&
187 mOrigin == pOther.mOrigin;
193 QSharedDataPointer<InternalStatus> d;
194 [[nodiscard]] QString getExternalInfo(ExternalInformation pType)
const;
196 [[nodiscard]] QString toErrorDescriptionInternal()
const;
199 GlobalStatus(Code pStatusCode,
const ExternalInfoMap& pExternalInformation,
const Origin pOrigin = Origin::Client)
200 : d(
new InternalStatus(pStatusCode, pExternalInformation, pOrigin))
205 GlobalStatus(Code pStatusCode,
const QPair<ExternalInformation, QString>& pExternalInformation,
const Origin pOrigin = Origin::Client)
206 : d(
new InternalStatus(pStatusCode, pExternalInformation, pOrigin))
211 GlobalStatus(Code pStatusCode = Code::Unknown_Error,
const Origin pOrigin = Origin::Client)
212 : d(
new InternalStatus(pStatusCode, ExternalInfoMap(), pOrigin))
217 bool operator ==(
const GlobalStatus& pOther)
const;
218 [[nodiscard]]
bool is(
const Code pStatusCode)
const;
220 [[nodiscard]] Code getStatusCode()
const;
222 [[nodiscard]] QString toErrorDescription(
const bool pSimplifiedVersion =
false)
const;
223 [[nodiscard]] QString getExternalInfo(
const QString& pToken = QStringLiteral(
"; "))
const;
225 [[nodiscard]]
Origin getOrigin()
const;
226 [[nodiscard]]
bool isOriginServer()
const;
228 [[nodiscard]]
bool isNoError()
const;
229 [[nodiscard]]
bool isError()
const;
230 [[nodiscard]]
bool isCancellationByUser()
const;
231 [[nodiscard]]
bool isMessageMasked()
const;