AusweisApp2
Lade ...
Suche ...
Keine Treffer
SimulatorCard.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "Card.h"
12#include "SimulatorFileSystem.h"
13#include "apdu/FileCommand.h"
16
17#include <memory>
18
19namespace governikus
20{
21
22
24 : public Card
25{
26 Q_OBJECT
27
28 private:
29 bool mConnected;
30 SimulatorFileSystem mFileSystem;
31 QSharedPointer<AuthenticatedAuxiliaryData> mAuxiliaryData;
32 std::unique_ptr<SecureMessaging> mSecureMessaging;
33 std::unique_ptr<SecureMessaging> mNewSecureMessaging;
34 int mCaKeyId;
35 int mRiKeyId;
36
37 public:
38 explicit SimulatorCard(const SimulatorFileSystem& pFileSystem);
39
40 CardReturnCode establishConnection() override;
41 CardReturnCode releaseConnection() override;
42 bool isConnected() const override;
43
44 ResponseApduResult transmit(const CommandApdu& pCmd) override;
45
46 EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, int pPreferredPinLength, const QByteArray& pChat, const QByteArray& pCertificateDescription, quint8 pTimeoutSeconds) override;
47
48 CardReturnCode destroyPaceChannel() override;
49
50 ResponseApduResult setEidPin(quint8 pTimeoutSeconds) override;
51
52 private:
53 ResponseApduResult executeFileCommand(const CommandApdu& pCmd);
54 ResponseApduResult executeMseSetAt(const CommandApdu& pCmd);
55 ResponseApduResult executeGeneralAuthenticate(const CommandApdu& pCmd);
56 QByteArray brainpoolP256r1Multiplication(const QByteArray& pPoint, const QByteArray& pScalar) const;
57 QByteArray generateAuthenticationToken(const QByteArray& pPublicKey, const QByteArray& pNonce);
58 QByteArray generateRestrictedId(const QByteArray& pPublicKey);
59 StatusCode verifyAuxiliaryData(const QByteArray& pCommandData);
60};
61
62} // namespace governikus
Definition: Card.h:47
Definition: EstablishPaceChannelOutput.h:50
Definition: SimulatorCard.h:25
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
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:171
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:146
CardReturnCode destroyPaceChannel() override
Destroys an existing PACE channel, i.e.
Definition: SimulatorCard.cpp:165
Definition: SimulatorFileSystem.h:25
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16
quint8
Definition: ResponseApdu.h:62
Definition: ResponseApdu.h:115