AusweisApp2
SimulatorCard.h
gehe zur Dokumentation dieser Datei
1
7#pragma once
8
9#include "Card.h"
10#include "SimulatorFileSystem.h"
13
14#include <memory>
15
16namespace governikus
17{
18
19
21 : public Card
22{
23 Q_OBJECT
24
25 private:
26 bool mConnected;
27 SimulatorFileSystem mFileSystem;
28 QSharedPointer<AuthenticatedAuxiliaryData> mAuxiliaryData;
29 std::unique_ptr<SecureMessaging> mSecureMessaging;
30 std::unique_ptr<SecureMessaging> mNewSecureMessaging;
31 int mRiKeyId;
32
33 public:
34 explicit SimulatorCard(const SimulatorFileSystem& pFileSystem);
35
36 CardReturnCode establishConnection() override;
37 CardReturnCode releaseConnection() override;
38 bool isConnected() const override;
39
40 ResponseApduResult transmit(const CommandApdu& pCmd) override;
41
42 EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, int pPreferredPinLength, const QByteArray& pChat, const QByteArray& pCertificateDescription, quint8 pTimeoutSeconds) override;
43
44 CardReturnCode destroyPaceChannel() override;
45
46 ResponseApduResult setEidPin(quint8 pTimeoutSeconds) override;
47
48 private:
49 QByteArray brainpoolP256r1Multiplication(const QByteArray& pPoint, const QByteArray& pScalar);
50 QByteArray generateAuthenticationToken(const QByteArray& pPublicKey, const QByteArray& pNonce);
51 QByteArray generateRestrictedId(const QByteArray& pPublicKey);
52 StatusCode verifyAuxiliaryData(const QByteArray& pCommandData);
53};
54
55} // namespace governikus
Definition: Card.h:45
Definition: EstablishPaceChannelOutput.h:48
Definition: SimulatorCard.h:22
bool isConnected() const override
Is the smart card connected, i.e.
Definition: SimulatorCard.cpp:67
ResponseApduResult transmit(const CommandApdu &pCmd) override
Performs a transmit to the smart card.
Definition: SimulatorCard.cpp:73
SimulatorCard(const SimulatorFileSystem &pFileSystem)
Definition: SimulatorCard.cpp:32
CardReturnCode releaseConnection() override
Destroys the previously established connection to the smart card.
Definition: SimulatorCard.cpp:56
ResponseApduResult setEidPin(quint8 pTimeoutSeconds) override
Sets a new eID PIN, i.e.
Definition: SimulatorCard.cpp:264
CardReturnCode establishConnection() override
Establish a connection to the smart card.
Definition: SimulatorCard.cpp:44
EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, int pPreferredPinLength, const QByteArray &pChat, const QByteArray &pCertificateDescription, quint8 pTimeoutSeconds) override
Establishes a PACE channel, i.e.
Definition: SimulatorCard.cpp:239
CardReturnCode destroyPaceChannel() override
Destroys an existing PACE channel, i.e.
Definition: SimulatorCard.cpp:258
Definition: SimulatorFileSystem.h:23
A simple template renderer.
Definition: ActivationContext.h:15
quint8
Definition: ResponseApdu.h:62
Definition: ResponseApdu.h:115