AusweisApp
Lade ...
Suche ...
Keine Treffer
PaceHandler.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
12#include "SecurityProtocol.h"
13#include "asn1/SecurityInfos.h"
14#include "pace/KeyAgreement.h"
15
16#include <QByteArray>
17#include <QSharedPointer>
18
19class test_PaceHandler;
20
21namespace governikus
22{
23class PaceHandler final
24{
25 Q_DISABLE_COPY(PaceHandler)
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;
38 QByteArray mCarPrev;
39
43 [[nodiscard]] bool isSupportedProtocol(const QSharedPointer<const PaceInfo>& pPaceInfo) const;
44
50 bool initialize(const QSharedPointer<const EFCardAccess>& pEfCardAccess);
51
57 CardReturnCode transmitMSESetAT(PacePasswordId pPasswordId);
58
59 public:
60 explicit PaceHandler(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
61
68 CardReturnCode establishPaceChannel(PacePasswordId pPasswordId, const QByteArray& pPassword);
69
73 void setChat(const QByteArray& pChat);
74
80 [[nodiscard]] const QByteArray& getEncryptionKey() const;
81
87 [[nodiscard]] const QByteArray& getMacKey() const;
88
94 [[nodiscard]] const QByteArray& getCarCurr() const;
95
101 [[nodiscard]] const QByteArray& getCarPrev() const;
102
107 [[nodiscard]] const QByteArray& getIdIcc() const;
108
109 [[nodiscard]] const QByteArray& getStatusMseSetAt() const;
110
115 [[nodiscard]] SecurityProtocol getPaceProtocol() const;
116};
117
118} // namespace governikus
This class represents a connection to a smart card.
Definition: CardConnectionWorker.h:35
Definition: KeyAgreement.h:30
Definition: PaceHandler.h:24
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:26
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
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:49
SecurityInfos ::= SET OF SecurityInfo.
Definition: SecurityInfos.h:34
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16