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
governikus::UNKNOWN
UNKNOWN
Definition: SmartCardDefinitions.h:18
DECLARE_ASN1_OBJECT
#define DECLARE_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:164
CertificateDescription.h
governikus::EstablishPaceChannelOutput::setCarPrev
void setCarPrev(const QByteArray &pCarPrev)
Definition: EstablishPaceChannelOutput.cpp:455
LengthValue.h
governikus::EstablishPaceChannelOutput::toOutputData
QByteArray toOutputData() const
Definition: EstablishPaceChannelOutput.cpp:470
governikus::EstablishPaceChannelOutput::parseFromCcid
bool parseFromCcid(const QByteArray &pOutput)
Definition: EstablishPaceChannelOutput.cpp:298
EstablishPaceChannelOutput.h
governikus::EstablishPaceChannelOutput::getIdIcc
const QByteArray & getIdIcc() const
Definition: EstablishPaceChannelOutput.cpp:425
governikus::ESTABLISHPACECHANNELOUTPUT
As defined in TR-03119:
Definition: EstablishPaceChannelOutput.h:36
governikus::EstablishPaceChannelOutput::toResultCode
QByteArray toResultCode() const
Definition: EstablishPaceChannelOutput.cpp:461
governikus::ESTABLISHPACECHANNELOUTPUT::mPrevCAR
ASN1_OCTET_STRING * mPrevCAR
Definition: EstablishPaceChannelOutput.h:42
governikus::mCarCurr
ASN1_OCTET_STRING * mCarCurr
Definition: GeneralAuthenticateResponse.h:118
U
U
Definition: Randomizer.cpp:37
governikus::Enum::getValue
static EnumBaseTypeT getValue(EnumTypeT pType)
Definition: EnumHelper.h:181
governikus::EstablishPaceChannelOutput::getCarPrev
const QByteArray & getCarPrev() const
Definition: EstablishPaceChannelOutput.cpp:449
governikus::EstablishPaceChannelOutput::getStatusMseSetAt
const QByteArray & getStatusMseSetAt() const
Definition: EstablishPaceChannelOutput.cpp:389
governikus::ESTABLISHPACECHANNELOUTPUT::mStatusMSESetAt
ASN1_OCTET_STRING * mStatusMSESetAt
Definition: EstablishPaceChannelOutput.h:38
governikus::EstablishPaceChannelOutput::toCcid
QByteArray toCcid() const
Definition: EstablishPaceChannelOutput.cpp:496
governikus::SUCCESS
SUCCESS
Definition: ResponseApdu.h:79
governikus::decodeAsn1Object
T * decodeAsn1Object(T **, const unsigned char **, long)
Default template function for decoding an OpenSSL type.
Definition: ASN1TemplateUtil.h:86
governikus::EstablishPaceChannelOutput::getPaceReturnCode
CardReturnCode getPaceReturnCode() const
Definition: EstablishPaceChannelOutput.cpp:377
governikus::ESTABLISHPACECHANNELOUTPUT::mIdPICC
ASN1_OCTET_STRING * mIdPICC
Definition: EstablishPaceChannelOutput.h:40
EstablishPaceChannelCode.h
CardReturnCode.h
governikus::EstablishPaceChannelOutput
Definition: EstablishPaceChannelOutput.h:48
governikus::securityinfos_st
struct stack_st_securityinfo_st securityinfos_st
Definition: SecurityInfos.h:20
governikus::Asn1OctetStringUtil::getValue
static QByteArray getValue(ASN1_OCTET_STRING *pAsn1OctetString)
Definition: ASN1Util.cpp:66
governikus::EstablishPaceChannelOutput::setCarCurr
void setCarCurr(const QByteArray &pCarCurr)
Definition: EstablishPaceChannelOutput.cpp:443
governikus::mCarPrev
ASN1_OCTET_STRING * mCarPrev
Definition: GeneralAuthenticateResponse.h:119
IMPLEMENT_ASN1_OBJECT
#define IMPLEMENT_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:139
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
SmartCardDefinitions.h
governikus::Asn1OctetStringUtil::setValue
static void setValue(const QByteArray &pValue, ASN1_OCTET_STRING *pAsn1OctetString)
Definition: ASN1Util.cpp:60
governikus::EstablishPaceChannelOutput::setStatusMseSetAt
void setStatusMseSetAt(const QByteArray &pStatusMseSetAt)
Definition: EstablishPaceChannelOutput.cpp:395
governikus::EstablishPaceChannelOutput::setIdIcc
void setIdIcc(const QByteArray &pIdIcc)
Definition: EstablishPaceChannelOutput.cpp:431
governikus::EstablishPaceChannelOutput::parse
bool parse(const QByteArray &pControlOutput)
Definition: EstablishPaceChannelOutput.cpp:179
governikus::EstablishPaceChannelOutput::parseResultCode
bool parseResultCode(const QByteArray &pPaceOutput)
Definition: EstablishPaceChannelOutput.cpp:207
governikus::EstablishPaceChannelOutput::EstablishPaceChannelOutput
EstablishPaceChannelOutput(CardReturnCode pPaceReturnCode=CardReturnCode::COMMAND_FAILED)
Definition: EstablishPaceChannelOutput.cpp:166
governikus::EstablishPaceChannelOutput::getEfCardAccess
const QByteArray & getEfCardAccess() const
Definition: EstablishPaceChannelOutput.cpp:407
governikus::EstablishPaceChannelOutput::setEfCardAccess
void setEfCardAccess(const QByteArray &pEfCardAccess)
Definition: EstablishPaceChannelOutput.cpp:413
governikus::ESTABLISHPACECHANNELOUTPUT::mEfCardAccess
securityinfos_st * mEfCardAccess
Definition: EstablishPaceChannelOutput.h:39
governikus::encodeObject
QByteArray encodeObject(T *pObject)
Template function for encoding an OpenSSL type as DER encoded QByteArray.
Definition: ASN1TemplateUtil.h:64
governikus::EstablishPaceChannelOutput::parseOutputData
bool parseOutputData(const QByteArray &pOutput)
Definition: EstablishPaceChannelOutput.cpp:225
ResponseApdu.h
SecurityInfos.h
governikus::EstablishPaceChannelOutput::setPaceReturnCode
void setPaceReturnCode(CardReturnCode pPaceReturnCode)
Definition: EstablishPaceChannelOutput.cpp:383
governikus::ESTABLISHPACECHANNELOUTPUT::mErrorCode
ASN1_OCTET_STRING * mErrorCode
Definition: EstablishPaceChannelOutput.h:37
governikus::EstablishPaceChannelOutput::getCarCurr
const QByteArray & getCarCurr() const
Definition: EstablishPaceChannelOutput.cpp:437
governikus::ESTABLISHPACECHANNELOUTPUT::mCurCAR
ASN1_OCTET_STRING * mCurCAR
Definition: EstablishPaceChannelOutput.h:41
governikus::EstablishPaceChannelOutput::operator==
bool operator==(const EstablishPaceChannelOutput &pOther) const
Definition: EstablishPaceChannelOutput.h:105