AusweisApp
Lade ...
Suche ...
Keine Treffer
EstablishPaceChannelOutput.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "CardReturnCode.h"
12#include "apdu/ResponseApdu.h"
13#include "asn1/SecurityInfos.h"
15
16
17#include <QByteArray>
18
19
20namespace governikus
21{
22
37{
38 ASN1_OCTET_STRING* mErrorCode;
39 ASN1_OCTET_STRING* mStatusMSESetAt;
41 ASN1_OCTET_STRING* mIdPICC;
42 ASN1_OCTET_STRING* mCurCAR;
43 ASN1_OCTET_STRING* mPrevCAR;
44};
46
47
49{
50 private:
51 CardReturnCode mPaceReturnCode;
52 QByteArray mStatusMseSetAt;
53 QByteArray mEfCardAccess;
54 QByteArray mIdIcc;
55 QByteArray mCarCurr;
56 QByteArray mCarPrev;
57
58 [[nodiscard]] static CardReturnCode parseReturnCode(quint32 pPaceReturnCode);
60
61 void initMseStatusSetAt();
62 void initEfCardAccess();
63 bool findErrorCode(const QString& pOutputData);
64
65 public:
66 explicit EstablishPaceChannelOutput(CardReturnCode pPaceReturnCode = CardReturnCode::COMMAND_FAILED);
67
71 [[nodiscard]] bool parse(const QByteArray& pControlOutput);
72 [[nodiscard]] bool parseResultCode(const QByteArray& pPaceOutput);
73
77 [[nodiscard]] bool parseOutputData(const QByteArray& pOutput);
78
82 [[nodiscard]] bool parseFromCcid(const QByteArray& pOutput);
83
84 [[nodiscard]] CardReturnCode getPaceReturnCode() const;
85 void setPaceReturnCode(CardReturnCode pPaceReturnCode);
86
87 [[nodiscard]] StatusCode getStatusCodeMseSetAt() const;
88 [[nodiscard]] const QByteArray& getStatusMseSetAt() const;
89 void setStatusMseSetAt(const QByteArray& pStatusMseSetAt);
90
91 [[nodiscard]] const QByteArray& getEfCardAccess() const;
92 void setEfCardAccess(const QByteArray& pEfCardAccess);
93
94 [[nodiscard]] const QByteArray& getIdIcc() const;
95 void setIdIcc(const QByteArray& pIdIcc);
96
97 [[nodiscard]] const QByteArray& getCarCurr() const;
98 void setCarCurr(const QByteArray& pCarCurr);
99
100 [[nodiscard]] const QByteArray& getCarPrev() const;
101 void setCarPrev(const QByteArray& pCarPrev);
102
103 [[nodiscard]] QByteArray toResultCode() const;
104 [[nodiscard]] QByteArray toOutputData() const;
105 [[nodiscard]] QByteArray toCcid() const;
106
107#ifndef QT_NO_DEBUG
109 {
110 return !(mPaceReturnCode != pOther.mPaceReturnCode
111 || mEfCardAccess != pOther.mEfCardAccess
112 || mCarCurr != pOther.mCarCurr
113 || mCarPrev != pOther.mCarPrev
114 || mIdIcc != pOther.mIdIcc
115 || mStatusMseSetAt != pOther.mStatusMseSetAt);
116 }
117
118
119#endif
120
121
122};
123
124
125} // namespace governikus
#define DECLARE_ASN1_OBJECT(name)
Definition ASN1TemplateUtil.h:177
Definition EstablishPaceChannelOutput.h:49
bool operator==(const EstablishPaceChannelOutput &pOther) const
Definition EstablishPaceChannelOutput.h:108
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17
struct stack_st_securityinfo_st securityinfos_st
Definition SecurityInfos.h:23
QSharedPointer< T > decodeObject(const QByteArray &pData, bool pLogging=true)
Template function for decoding an OpenSSL type from DER encoded QByteArray.
Definition ASN1TemplateUtil.h:114
As defined in TR-03119:
Definition EstablishPaceChannelOutput.h:37
ASN1_OCTET_STRING * mCurCAR
Definition EstablishPaceChannelOutput.h:42
ASN1_OCTET_STRING * mErrorCode
Definition EstablishPaceChannelOutput.h:38
ASN1_OCTET_STRING * mIdPICC
Definition EstablishPaceChannelOutput.h:41
ASN1_OCTET_STRING * mPrevCAR
Definition EstablishPaceChannelOutput.h:43
ASN1_OCTET_STRING * mStatusMSESetAt
Definition EstablishPaceChannelOutput.h:39
securityinfos_st * mEfCardAccess
Definition EstablishPaceChannelOutput.h:40