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