AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
PaceHandler.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "asn1/PACEInfo.h"
10 #include "asn1/SecurityInfos.h"
11 #include "CardConnectionWorker.h"
12 #include "CardOperationResult.h"
13 #include "EnumHelper.h"
14 #include "pace/KeyAgreement.h"
15 
16 #include <QByteArray>
17 #include <QSharedPointer>
18 #include <QString>
19 
20 class test_PaceHandler;
21 
22 namespace governikus
23 {
25 {
26  friend class ::test_PaceHandler;
27 
28  private:
29  const QSharedPointer<CardConnectionWorker> mCardConnectionWorker;
30  QSharedPointer<KeyAgreement> mKeyAgreement;
31  QSharedPointer<const PACEInfo> mPaceInfo;
32  QByteArray mStatusMseSetAt;
33  QByteArray mIdIcc;
34  QByteArray mEncryptionKey;
35  QByteArray mMacKey;
36  QByteArray mChat;
37  QByteArray mCarCurr, mCarPrev;
38 
42  bool isSupportedProtocol(const QSharedPointer<const PACEInfo>& pPaceInfo) const;
43 
49  bool initialize(const QSharedPointer<const EFCardAccess>& pEfCardAccess);
50 
56  CardReturnCode transmitMSESetAT(PACE_PASSWORD_ID pPasswordId);
57 
58  Q_DISABLE_COPY(PaceHandler)
59 
60  public:
61  PaceHandler(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
62 
69  CardReturnCode establishPaceChannel(PACE_PASSWORD_ID pPasswordId, const QString& pPassword);
70 
74  void setChat(const QByteArray& pChat);
75 
81  const QByteArray& getEncryptionKey() const;
82 
88  const QByteArray& getMacKey() const;
89 
95  const QByteArray& getCarCurr() const;
96 
102  const QByteArray& getCarPrev() const;
103 
108  const QByteArray& getIdIcc() const;
109 
110  const QByteArray& getStatusMseSetAt() const;
111 
116  QByteArray getPaceProtocol() const;
117 };
118 
119 } /* namespace governikus */
const QByteArray & getEncryptionKey() const
During PACE protocol an encryption key is determined.
Definition: PaceHandler.cpp:196
This class represents a connection to a smart card.
Definition: CardConnectionWorker.h:27
const QByteArray & getStatusMseSetAt() const
Definition: PaceHandler.cpp:226
const QByteArray & getIdIcc() const
The IDicc is the card&#39;s compressed ephemeral public key.
Definition: PaceHandler.cpp:220
void setChat(const QByteArray &pChat)
The certificate holder authorization template to be supplied to the card.
Definition: PaceHandler.cpp:190
const QByteArray & getCarPrev() const
During PACE protocol a certificate authority reference (CAR) may be determined.
Definition: PaceHandler.cpp:214
const QByteArray & getCarCurr() const
During PACE protocol a certificate authority reference (CAR) may be determined.
Definition: PaceHandler.cpp:208
QByteArray getPaceProtocol() const
The used PACE protocol.
Definition: PaceHandler.cpp:37
const QByteArray & getMacKey() const
During PACE protocol a MAC key is determined.
Definition: PaceHandler.cpp:202
CardReturnCode establishPaceChannel(PACE_PASSWORD_ID pPasswordId, const QString &pPassword)
Performs the PACE protocol and establishes a PACE channel.
Definition: PaceHandler.cpp:47
Definition: PaceHandler.h:24