AusweisApp2
SimulatorCard.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "Card.h"
10 #include "SimulatorFileSystem.h"
12 #include "pace/SecureMessaging.h"
13 
14 #include <memory>
15 
16 namespace 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