AusweisApp
 
Lade ...
Suche ...
Keine Treffer
PaceHandler.h
gehe zur Dokumentation dieser Datei
1
4
5#pragma once
6
8#include "SecurityProtocol.h"
10#include "pace/KeyAgreement.h"
11
12#include <QByteArray>
13#include <QSharedPointer>
14
15
16class test_PaceHandler;
17
18
19namespace governikus
20{
21class PaceHandler final
22{
23 Q_DISABLE_COPY(PaceHandler)
24 friend class ::test_PaceHandler;
25
26 private:
27 const QSharedPointer<CardConnectionWorker> mCardConnectionWorker;
28 QSharedPointer<KeyAgreement> mKeyAgreement;
29 QSharedPointer<const PaceInfo> mPaceInfo;
30 QByteArray mStatusMseSetAt;
31 QByteArray mIdIcc;
32 QByteArray mEncryptionKey;
33 QByteArray mMacKey;
34 QByteArray mChat;
35 QByteArray mCarCurr;
36 QByteArray mCarPrev;
37
41 [[nodiscard]] bool isSupportedProtocol(const QSharedPointer<const PaceInfo>& pPaceInfo) const;
42
48 bool initialize(const QSharedPointer<const EFCardAccess>& pEfCardAccess);
49
55 CardReturnCode transmitMSESetAT(PacePasswordId pPasswordId);
56
57 public:
58 explicit PaceHandler(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
59
66 CardReturnCode establishPaceChannel(PacePasswordId pPasswordId, const QByteArray& pPassword);
67
71 void setChat(const QByteArray& pChat);
72
78 [[nodiscard]] const QByteArray& getEncryptionKey() const;
79
85 [[nodiscard]] const QByteArray& getMacKey() const;
86
92 [[nodiscard]] const QByteArray& getCarCurr() const;
93
99 [[nodiscard]] const QByteArray& getCarPrev() const;
100
105 [[nodiscard]] const QByteArray& getIdIcc() const;
106
107 [[nodiscard]] const QByteArray& getStatusMseSetAt() const;
108
113 [[nodiscard]] SecurityProtocol getPaceProtocol() const;
114};
115
116} // namespace governikus
Definition CardConnectionWorker.h:27
Definition KeyAgreement.h:27
void setChat(const QByteArray &pChat)
The certificate holder authorization template to be supplied to the card.
Definition PaceHandler.cpp:176
friend class ::test_PaceHandler
Definition PaceHandler.h:24
const QByteArray & getIdIcc() const
The IDicc is the card's compressed ephemeral public key.
Definition PaceHandler.cpp:206
SecurityProtocol getPaceProtocol() const
The used PACE protocol.
Definition PaceHandler.cpp:35
const QByteArray & getMacKey() const
During PACE protocol a MAC key is determined.
Definition PaceHandler.cpp:188
PaceHandler(const QSharedPointer< CardConnectionWorker > &pCardConnectionWorker)
Definition PaceHandler.cpp:20
const QByteArray & getCarCurr() const
During PACE protocol a certificate authority reference (CAR) may be determined.
Definition PaceHandler.cpp:194
const QByteArray & getCarPrev() const
During PACE protocol a certificate authority reference (CAR) may be determined.
Definition PaceHandler.cpp:200
const QByteArray & getEncryptionKey() const
During PACE protocol an encryption key is determined.
Definition PaceHandler.cpp:182
const QByteArray & getStatusMseSetAt() const
Definition PaceHandler.cpp:212
CardReturnCode establishPaceChannel(PacePasswordId pPasswordId, const QByteArray &pPassword)
Performs the PACE protocol and establishes a PACE channel.
Definition PaceHandler.cpp:45
Definition PaceInfo.h:47
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17
SecurityInfos EFCardAccess
EFCardAccess ::= SecurityInfos.
Definition SecurityInfos.h:64