AusweisApp2
PaceHandler.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "asn1/SecurityInfos.h"
10 #include "CardConnectionWorker.h"
11 #include "pace/KeyAgreement.h"
12 
13 #include <QByteArray>
14 #include <QSharedPointer>
15 #include <QString>
16 
17 class test_PaceHandler;
18 
19 namespace governikus
20 {
21 class PaceHandler final
22 {
23  friend class ::test_PaceHandler;
24 
25  private:
26  const QSharedPointer<CardConnectionWorker> mCardConnectionWorker;
27  QSharedPointer<KeyAgreement> mKeyAgreement;
28  QSharedPointer<const PaceInfo> mPaceInfo;
29  QByteArray mStatusMseSetAt;
30  QByteArray mIdIcc;
31  QByteArray mEncryptionKey;
32  QByteArray mMacKey;
33  QByteArray mChat;
34  QByteArray mCarCurr, mCarPrev;
35 
39  bool isSupportedProtocol(const QSharedPointer<const PaceInfo>& pPaceInfo) const;
40 
46  bool initialize(const QSharedPointer<const EFCardAccess>& pEfCardAccess);
47 
53  CardReturnCode transmitMSESetAT(PacePasswordId pPasswordId);
54 
55  Q_DISABLE_COPY(PaceHandler)
56 
57  public:
58  explicit PaceHandler(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
59 
66  CardReturnCode establishPaceChannel(PacePasswordId pPasswordId, const QString& pPassword);
67 
71  void setChat(const QByteArray& pChat);
72 
78  const QByteArray& getEncryptionKey() const;
79 
85  const QByteArray& getMacKey() const;
86 
92  const QByteArray& getCarCurr() const;
93 
99  const QByteArray& getCarPrev() const;
100 
105  const QByteArray& getIdIcc() const;
106 
107  const QByteArray& getStatusMseSetAt() const;
108 
113  QByteArray getPaceProtocol() const;
114 };
115 
116 } // namespace governikus
const QByteArray & getStatusMseSetAt() const
Definition: PaceHandler.cpp:239
Definition: test_PaceHandler.cpp:18
PaceHandler(const QSharedPointer< CardConnectionWorker > &pCardConnectionWorker)
Definition: PaceHandler.cpp:20
QByteArray getPaceProtocol() const
The used PACE protocol.
Definition: PaceHandler.cpp:35
void setChat(const QByteArray &pChat)
The certificate holder authorization template to be supplied to the card.
Definition: PaceHandler.cpp:203
const QByteArray & getIdIcc() const
The IDicc is the card&#39;s compressed ephemeral public key.
Definition: PaceHandler.cpp:233
const QByteArray & getEncryptionKey() const
During PACE protocol an encryption key is determined.
Definition: PaceHandler.cpp:209
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
const QByteArray & getMacKey() const
During PACE protocol a MAC key is determined.
Definition: PaceHandler.cpp:215
CardReturnCode establishPaceChannel(PacePasswordId pPasswordId, const QString &pPassword)
Performs the PACE protocol and establishes a PACE channel.
Definition: PaceHandler.cpp:45
const QByteArray & getCarPrev() const
During PACE protocol a certificate authority reference (CAR) may be determined.
Definition: PaceHandler.cpp:227
Definition: PaceHandler.h:21
const QByteArray & getCarCurr() const
During PACE protocol a certificate authority reference (CAR) may be determined.
Definition: PaceHandler.cpp:221