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