AusweisApp2
EstablishPaceChannelOutput.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
10 #include "asn1/SecurityInfos.h"
11 #include "CardReturnCode.h"
13 #include "SmartCardDefinitions.h"
14 
15 
16 #include <QByteArray>
17 
18 
19 namespace governikus
20 {
21 
36 {
37  ASN1_OCTET_STRING* mErrorCode;
38  ASN1_OCTET_STRING* mStatusMSESetAt;
40  ASN1_OCTET_STRING* mIdPICC;
41  ASN1_OCTET_STRING* mCurCAR;
42  ASN1_OCTET_STRING* mPrevCAR;
43 };
45 
46 
48 {
49  private:
50  CardReturnCode mPaceReturnCode;
51  QByteArray mStatusMseSetAt;
52  QByteArray mEfCardAccess;
53  QByteArray mIdIcc;
54  QByteArray mCarCurr;
55  QByteArray mCarPrev;
56 
57  [[nodiscard]] static CardReturnCode parseReturnCode(quint32 pPaceReturnCode);
58  [[nodiscard]] static EstablishPaceChannelErrorCode generateReturnCode(CardReturnCode pReturnCode);
59 
60  void initMseStatusSetAt();
61  void initEfCardAccess();
62 
63  public:
64  explicit EstablishPaceChannelOutput(CardReturnCode pPaceReturnCode = CardReturnCode::COMMAND_FAILED);
65 
69  [[nodiscard]] bool parse(const QByteArray& pControlOutput);
70  [[nodiscard]] bool parseResultCode(const QByteArray& pPaceOutput);
71 
75  [[nodiscard]] bool parseOutputData(const QByteArray& pOutput);
76 
80  [[nodiscard]] bool parseFromCcid(const QByteArray& pOutput);
81 
82  [[nodiscard]] CardReturnCode getPaceReturnCode() const;
83  void setPaceReturnCode(CardReturnCode pPaceReturnCode);
84 
85  [[nodiscard]] const QByteArray& getStatusMseSetAt() const;
86  void setStatusMseSetAt(const QByteArray& pStatusMseSetAt);
87 
88  [[nodiscard]] const QByteArray& getEfCardAccess() const;
89  void setEfCardAccess(const QByteArray& pEfCardAccess);
90 
91  [[nodiscard]] const QByteArray& getIdIcc() const;
92  void setIdIcc(const QByteArray& pIdIcc);
93 
94  [[nodiscard]] const QByteArray& getCarCurr() const;
95  void setCarCurr(const QByteArray& pCarCurr);
96 
97  [[nodiscard]] const QByteArray& getCarPrev() const;
98  void setCarPrev(const QByteArray& pCarPrev);
99 
100  [[nodiscard]] QByteArray toResultCode() const;
101  [[nodiscard]] QByteArray toOutputData() const;
102  [[nodiscard]] QByteArray toCcid() const;
103 
104 #ifndef QT_NO_DEBUG
105  bool operator==(const EstablishPaceChannelOutput& pOther) const
106  {
107  return !(mPaceReturnCode != pOther.mPaceReturnCode
108  || mEfCardAccess != pOther.mEfCardAccess
109  || mCarCurr != pOther.mCarCurr
110  || mCarPrev != pOther.mCarPrev
111  || mIdIcc != pOther.mIdIcc
112  || mStatusMseSetAt != pOther.mStatusMseSetAt);
113  }
114 
115 
116 #endif
117 
118 
119 };
120 
121 
122 } // namespace governikus
#define DECLARE_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:164
Definition: EstablishPaceChannelOutput.h:48
bool operator==(const EstablishPaceChannelOutput &pOther) const
Definition: EstablishPaceChannelOutput.h:105
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
struct stack_st_securityinfo_st securityinfos_st
Definition: SecurityInfos.h:20
ASN1_OCTET_STRING * mCarCurr
Definition: GeneralAuthenticateResponse.h:118
ASN1_OCTET_STRING * mCarPrev
Definition: GeneralAuthenticateResponse.h:119
As defined in TR-03119:
Definition: EstablishPaceChannelOutput.h:36
ASN1_OCTET_STRING * mCurCAR
Definition: EstablishPaceChannelOutput.h:41
ASN1_OCTET_STRING * mErrorCode
Definition: EstablishPaceChannelOutput.h:37
ASN1_OCTET_STRING * mIdPICC
Definition: EstablishPaceChannelOutput.h:40
ASN1_OCTET_STRING * mPrevCAR
Definition: EstablishPaceChannelOutput.h:42
ASN1_OCTET_STRING * mStatusMSESetAt
Definition: EstablishPaceChannelOutput.h:38
securityinfos_st * mEfCardAccess
Definition: EstablishPaceChannelOutput.h:39