AusweisApp
Lade ...
Suche ...
Keine Treffer
PcscCard.h
gehe zur Dokumentation dieser Datei
1
10#pragma once
11
12#include "Card.h"
13#include "CardReturnCode.h"
14#include "PcscReader.h"
15#include "PcscUtils.h"
16
17#include <QByteArray>
18#include <QPointer>
19#include <QTimer>
20
21
22namespace governikus
23{
24
26 : public Card
27{
28 Q_OBJECT
29
30 private:
31 struct CardResult
32 {
33 PCSC_RETURNCODE mReturnCode;
34 QByteArray mResponse = QByteArray();
35 };
36
37 QPointer<PcscReader> mReader;
38 PCSC_INT mProtocol;
39 SCARDCONTEXT mContextHandle;
40 SCARDHANDLE mCardHandle;
41 QTimer mTimer;
42
43 CardResult transmit(const QByteArray& pSendBuffer);
44 CardResult transmit(const QByteArray& pSendBuffer, const SCARD_IO_REQUEST* pSendPci);
45 CardResult control(PCSC_INT pCntrCode, const QByteArray& pCntrInput);
46
47 private Q_SLOTS:
48 void sendSCardStatus();
49
50 public:
51 explicit PcscCard(PcscReader* pPcscReader);
52 ~PcscCard() override;
53
54 CardReturnCode establishConnection() override;
55 CardReturnCode releaseConnection() override;
56 bool isConnected() const override;
57
58 ResponseApduResult transmit(const CommandApdu& pCmd) override;
59
60 EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, int pPreferredPinLength, const QByteArray& pChat, const QByteArray& pCertificateDescription, quint8 pTimeoutSeconds) override;
61
62 CardReturnCode destroyPaceChannel() override;
63
64 ResponseApduResult setEidPin(quint8 pTimeoutSeconds) override;
65};
66
67} // namespace governikus
Definition: Card.h:47
Definition: EstablishPaceChannelOutput.h:48
Definition: PcscCard.h:27
CardReturnCode establishConnection() override
Establish a connection to the smart card.
Definition: PcscCard.cpp:102
CardReturnCode destroyPaceChannel() override
Destroys an existing PACE channel, i.e.
Definition: PcscCard.cpp:351
~PcscCard() override
Definition: PcscCard.cpp:69
CardReturnCode releaseConnection() override
Destroys the previously established connection to the smart card.
Definition: PcscCard.cpp:136
ResponseApduResult setEidPin(quint8 pTimeoutSeconds) override
Sets a new eID PIN, i.e.
Definition: PcscCard.cpp:401
bool isConnected() const override
Is the smart card connected, i.e.
Definition: PcscCard.cpp:157
EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, int pPreferredPinLength, const QByteArray &pChat, const QByteArray &pCertificateDescription, quint8 pTimeoutSeconds) override
Establishes a PACE channel, i.e.
Definition: PcscCard.cpp:320
Definition: PcscReader.h:26
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16
quint8
Definition: ResponseApdu.h:62
Definition: ResponseApdu.h:115