AusweisApp2
CommandData.h
gehe zur Dokumentation dieser Datei
1 
5 #pragma once
6 
7 #include "SmartCardDefinitions.h"
8 #include "asn1/Oid.h"
9 
10 #include <QByteArray>
11 #include <QVector>
12 #include <openssl/asn1.h>
13 
14 
15 namespace governikus
16 {
17 
19 {
20  public:
21  // According to TR-03110-3, chapter B.(1|2|3) and B.14.*
22  enum DATA_TAG : int
23  {
24  NONE = -1,
28  INTEGER = 2,
39  CERTIFICATE_BODY = 78
40  };
41 
42  private:
43  int mClass;
44  int mTag;
45  QByteArray mSimpleData;
46  QVector<CommandData> mComplexData;
47 
48  public:
49  explicit CommandData(int pClass = V_ASN1_UNIVERSAL, DATA_TAG pTag = NONE, const QByteArray& pData = QByteArray());
50  explicit CommandData(const QByteArray& pData);
51 
52  [[nodiscard]] QByteArray getData(int pClass, DATA_TAG pTag) const;
53  [[nodiscard]] QByteArray getObject(int pClass, DATA_TAG pTag) const;
54 
55  void append(const QByteArray& pData);
56  void append(DATA_TAG pTag, int pValue);
57  void append(DATA_TAG pTag, const Oid& pOid);
58  void append(DATA_TAG pTag, PacePasswordId pPassword);
59  void append(DATA_TAG pTag, const QByteArray& pData);
60 
61  operator QByteArray() const;
62 
63 #ifndef QT_NO_DEBUG
64  int getObjectCount() const;
65 #endif
66 };
67 
68 } // namespace governikus
Definition: CommandData.h:19
int getObjectCount() const
Definition: CommandData.cpp:178
CommandData(int pClass=V_ASN1_UNIVERSAL, DATA_TAG pTag=NONE, const QByteArray &pData=QByteArray())
Definition: CommandData.cpp:19
DATA_TAG
Definition: CommandData.h:23
@ MAPPING_DATA
Definition: CommandData.h:27
@ INTEGER
Definition: CommandData.h:28
@ NONE
Definition: CommandData.h:24
@ CRYPTOGRAPHIC_MECHANISM_REFERENCE
Definition: CommandData.h:25
@ PACE_EPHEMERAL_PUBLIC_KEY
Definition: CommandData.h:29
@ CERTIFICATE_BODY
Definition: CommandData.h:39
@ AUXILIARY_AUTHENTICATED_DATA
Definition: CommandData.h:34
@ CERTIFICATE_HOLDER_AUTHORIZATION_TEMPLATE
Definition: CommandData.h:38
@ DYNAMIC_AUTHENTICATION_DATA
Definition: CommandData.h:36
@ TA_EPHEMERAL_PUBLIC_KEY
Definition: CommandData.h:35
@ PUBLIC_KEY_REFERENCE
Definition: CommandData.h:30
@ PRIVATE_KEY_REFERENCE
Definition: CommandData.h:31
@ AUTHENTICATION_TOKEN
Definition: CommandData.h:32
@ RI_EPHEMERAL_PUBLIC_KEY
Definition: CommandData.h:33
@ CA_EPHEMERAL_PUBLIC_KEY
Definition: CommandData.h:26
@ CERTIFICATE_SIGNATURE
Definition: CommandData.h:37
QByteArray getObject(int pClass, DATA_TAG pTag) const
Definition: CommandData.cpp:97
void append(const QByteArray &pData)
Definition: CommandData.cpp:117
QByteArray getData(int pClass, DATA_TAG pTag) const
Definition: CommandData.cpp:77
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16