AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
Commands.h
gehe zur Dokumentation dieser Datei
1 
5 #pragma once
6 
7 #include "asn1/Chat.h"
8 #include "Apdu.h"
9 #include "CardReturnCode.h"
10 #include "FileRef.h"
11 #include "SmartCardDefinitions.h"
12 
13 
14 namespace governikus
15 {
16 
18 {
19  private:
20  Q_DISABLE_COPY(CommandApduBuilder)
21 
22  public:
24  virtual ~CommandApduBuilder();
25  virtual CommandApdu build() = 0;
26 };
27 
29  : public CommandApduBuilder
30 {
31  private:
32  const FileRef mFileRef;
33 
34  public:
35  enum class P1 : char
36  {
37  SELECT_MF = 0x00, CHILD_DF = 0x01, CHILD_EF = 0x02, PARENT_DF = 0x03, APPLICATION_ID = 0x04, ABS_PATH = 0x08, REL_PATH = 0x09,
38  };
39 
40  enum class P2 : char
41  {
42  FCI = 0x00, FCP = 0x04, FMD = 0x08, NONE = 0x0c,
43  };
44 
45  SelectBuilder(const FileRef& pFileRef);
46  CommandApdu build() override;
47 };
48 
50  : public CommandApduBuilder
51 {
52  public:
54  CommandApdu build() override;
55 };
56 
58  : public ResponseApdu
59 {
60  public:
62  virtual ~GetChallengeResponse();
63  QByteArray getChallenge() const;
64 };
65 
67  : public CommandApduBuilder
68 {
69  public:
70  enum class INS : char
71  {
73  };
74 
75  enum class P1 : char
76  {
77  COMPUTE_DIGITAL_SIGNATURE = 0x41, PUT_HASH = char(0xa0), PERFORM_SECURITY_OPERATION = char(0xc1), SET_DST = char(0x81), ERASE = char(0xF4),
78  };
79 
80  enum class P2 : char
81  {
83  };
84 
85  static bool isUpdateRetryCounterCommand(const QByteArray& cmd);
86 
87  MSEBuilder(P1 p1, P2 p2);
88  void setAuxiliaryData(const QByteArray& pData);
89  void setOid(const QByteArray& pData);
90  void setPublicKey(const QByteArray& pData);
91  void setPublicKey(PACE_PASSWORD_ID pPassword);
92  void setPrivateKey(const QByteArray& pData);
93  void setEphemeralPublicKey(const QByteArray& pData);
94  void setChat(const QByteArray& pData);
95  CommandApdu build() override;
96 
97  private:
98  P1 mP1;
99  P2 mP2;
100  QByteArray mAuxiliaryData;
101  QByteArray mOid;
102  QByteArray mPublicKey;
103  QByteArray mPrivateKey;
104  QByteArray mEphemeralPublicKey;
105  QByteArray mChat;
106 };
107 
109  : public CommandApduBuilder
110 {
111  public:
112  enum class P1 : int
113  {
114  DECRYPT = 0x80, ENCRYPT = 0x86, SIGN_HASH = 0x9e, VERIFY = 0x00,
115  };
116 
117  enum class P2 : int
118  {
119  UNCRYPTED_DATA = 0x80, ENCRYPTED_DATA = 0x86, HASH_VALUE = 0x9a, CERTIFICATE = 0xbe,
120  };
121 
122  PSOBuilder(P1 p1, P2 p2);
123  void setCertificateBody(const QByteArray& pData);
124  void setSignature(const QByteArray& pData);
125  CommandApdu build() override;
126 
127  private:
128  P1 mP1;
129  P2 mP2;
130  QByteArray mCertificateBody;
131  QByteArray mSignature;
132 };
133 
135  : public CommandApduBuilder
136 {
137  public:
138  EABuilder();
139  void setSignature(const QByteArray& pData);
140  CommandApdu build() override;
141 
142  private:
143  QByteArray mSignature;
144 };
145 
147  : public CommandApduBuilder
148 {
149  public:
150  GABuilder(char pClassByte = CommandApdu::CLA);
151  void setCaEphemeralPublicKey(const QByteArray& pData);
152  void setPaceMappingData(const QByteArray& pData);
153  void setPaceEphemeralPublicKey(const QByteArray& pData);
154  void setPaceAuthenticationToken(const QByteArray& pData);
155  CommandApdu build() override;
156 
157  private:
158  char mClassByte;
159  QByteArray mCaEphemeralPublicKey;
160  QByteArray mPaceMappingData;
161  QByteArray mPaceEphemeralPublicKey;
162  QByteArray mPaceAuthenticationToken;
163 };
164 
166  : public CommandApduBuilder
167 {
168  private:
169  uint mOffset;
170  int mLe;
171 
172  public:
173  ReadBinaryBuilder(uint pOffset, int pLe);
174  CommandApdu build() override;
175 };
176 
178  : public CommandApduBuilder
179 {
180  public:
181  ResetRetryCounterBuilder(const QByteArray& pPin = QByteArray());
182  CommandApdu build() override;
183 
184  private:
185  QByteArray mPin;
186 };
187 
188 } /* namespace governikus */
P2
Definition: Commands.h:40
CommandApdu build() override
Definition: Commands.cpp:300
Definition: Commands.h:177
void setPrivateKey(const QByteArray &pData)
Definition: Commands.cpp:164
void setCaEphemeralPublicKey(const QByteArray &pData)
Definition: Commands.cpp:272
P1
Definition: Commands.h:112
P2
Definition: Commands.h:80
void setAuxiliaryData(const QByteArray &pData)
Definition: Commands.cpp:135
ReadBinaryBuilder(uint pOffset, int pLe)
Definition: Commands.cpp:328
GABuilder(char pClassByte=CommandApdu::CLA)
Definition: Commands.cpp:261
virtual CommandApdu build()=0
void setEphemeralPublicKey(const QByteArray &pData)
Definition: Commands.cpp:171
CommandApduBuilder()
Definition: Commands.cpp:22
char
Definition: SmartCardDefinitions.h:16
Definition: Commands.h:17
Definition: Commands.h:165
static const char CLA
Definition: Apdu.h:84
static bool isUpdateRetryCounterCommand(const QByteArray &cmd)
Definition: Commands.cpp:93
CommandApdu build() override
Definition: Commands.cpp:350
Definition: Commands.h:49
GetChallengeResponse()
Definition: Commands.cpp:69
void setPaceAuthenticationToken(const QByteArray &pData)
Definition: Commands.cpp:293
Definition: Commands.h:28
P1
Definition: Commands.h:75
CommandApdu build() override
Definition: Commands.cpp:42
CommandApdu build() override
Definition: Commands.cpp:223
QByteArray getChallenge() const
Definition: Commands.cpp:80
Definition: Apdu.h:91
GetChallengeBuilder()
Definition: Commands.cpp:53
virtual ~GetChallengeResponse()
Definition: Commands.cpp:75
INS
Definition: Commands.h:70
ResetRetryCounterBuilder(const QByteArray &pPin=QByteArray())
Definition: Commands.cpp:343
Definition: FileRef.h:14
Definition: Commands.h:66
Definition: Commands.h:57
void setCertificateBody(const QByteArray &pData)
Definition: Commands.cpp:211
Definition: Commands.h:108
void setOid(const QByteArray &pData)
Definition: Commands.cpp:141
CommandApdu build() override
Definition: Commands.cpp:184
void setPaceMappingData(const QByteArray &pData)
Definition: Commands.cpp:279
EABuilder()
Definition: Commands.cpp:238
CommandApdu build() override
Definition: Commands.cpp:58
void setSignature(const QByteArray &pData)
Definition: Commands.cpp:245
void setPublicKey(const QByteArray &pData)
Definition: Commands.cpp:148
CommandApdu build() override
Definition: Commands.cpp:336
void setChat(const QByteArray &pData)
Definition: Commands.cpp:178
PSOBuilder(P1 p1, P2 p2)
Definition: Commands.cpp:201
P2
Definition: Commands.h:117
void setSignature(const QByteArray &pData)
Definition: Commands.cpp:217
CommandApdu build() override
Definition: Commands.cpp:251
void setPaceEphemeralPublicKey(const QByteArray &pData)
Definition: Commands.cpp:286
Definition: Apdu.h:118
virtual ~CommandApduBuilder()
Definition: Commands.cpp:27
P1
Definition: Commands.h:35
MSEBuilder(P1 p1, P2 p2)
Definition: Commands.cpp:121
Definition: Commands.h:146
Definition: Commands.h:134
SelectBuilder(const FileRef &pFileRef)
Definition: Commands.cpp:35