AusweisApp2
Lade ...
Suche ...
Keine Treffer
PaceHandler.h
gehe zur Dokumentation dieser Datei
1
7#pragma once
8
10#include "SecurityProtocol.h"
11#include "asn1/SecurityInfos.h"
12#include "pace/KeyAgreement.h"
13
14#include <QByteArray>
15#include <QSharedPointer>
16
17class test_PaceHandler;
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
This class represents a connection to a smart card.
Definition: CardConnectionWorker.h:33
Definition: KeyAgreement.h:28
Definition: PaceHandler.h:22
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
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:48
SecurityInfos ::= SET OF SecurityInfo.
Definition: SecurityInfos.h:32
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16