AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
PcscCard.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "Card.h"
10 #include "CardReturnCode.h"
11 #include "PcscReader.h"
12 #include "PcscUtils.h"
13 
14 #include <QByteArray>
15 #include <QPointer>
16 #include <QTimer>
17 
18 
19 namespace governikus
20 {
21 
22 class PcscCard
23  : public Card
24 {
25  Q_OBJECT
26 
27  private:
28  QPointer<PcscReader> mReader;
29  PCSC_INT mProtocol;
30  SCARDCONTEXT mContextHandle;
31  SCARDHANDLE mCardHandle;
32  QTimer mTimer;
33 
34  PCSC_RETURNCODE transmit(const QByteArray& pSendBuffer, QByteArray& pReceiveBuffer);
35 
36  PCSC_RETURNCODE transmit(const QByteArray& pSendBuffer,
37  QByteArray& pReceiveBuffer,
38  const SCARD_IO_REQUEST* pSendPci,
39  SCARD_IO_REQUEST& pRecvPci,
40  PCSC_INT& pBytesReceived);
41 
42  PCSC_RETURNCODE control(PCSC_INT pCntrCode, const QByteArray& pCntrInput, QByteArray& pCntrOutput);
43 
44  private Q_SLOTS:
45  void sendSCardStatus();
46 
47  public:
48  PcscCard(PcscReader* pPcscReader);
49  virtual ~PcscCard() override;
50 
51  virtual CardReturnCode connect() override;
52  virtual CardReturnCode disconnect() override;
53  virtual bool isConnected() override;
54 
55  virtual CardReturnCode transmit(const CommandApdu& pCmd, ResponseApdu& pRes) override;
56 
57  virtual CardReturnCode establishPaceChannel(PACE_PASSWORD_ID pPasswordId, const QByteArray& pChat, const QByteArray& pCertificateDescription, EstablishPACEChannelOutput& pChannelOutput, quint8 pTimeoutSeconds) override;
58 
59  virtual CardReturnCode destroyPaceChannel() override;
60 
61  virtual CardReturnCode setEidPin(quint8 pTimeoutSeconds, ResponseApdu& pResponseApdu) override;
62 };
63 
64 } /* namespace governikus */
virtual CardReturnCode disconnect() override
Destroys the previously established connection to the smart card.
Definition: PcscCard.cpp:135
virtual CardReturnCode connect() override
Establish a connection to the smart card.
Definition: PcscCard.cpp:101
Definition: PcscCard.h:22
virtual bool isConnected() override
Is the smart card connected, i.e.
Definition: PcscCard.cpp:156
virtual CardReturnCode setEidPin(quint8 pTimeoutSeconds, ResponseApdu &pResponseApdu) override
Sets a new eID PIN, i.e.
Definition: PcscCard.cpp:386
Definition: PcscReader.h:27
Definition: Apdu.h:91
Definition: EstablishPACEChannel.h:98
virtual CardReturnCode establishPaceChannel(PACE_PASSWORD_ID pPasswordId, const QByteArray &pChat, const QByteArray &pCertificateDescription, EstablishPACEChannelOutput &pChannelOutput, quint8 pTimeoutSeconds) override
Establishes a PACE channel, i.e.
Definition: PcscCard.cpp:299
virtual ~PcscCard() override
Definition: PcscCard.cpp:68
PcscCard(PcscReader *pPcscReader)
Definition: PcscCard.cpp:52
virtual CardReturnCode destroyPaceChannel() override
Destroys an existing PACE channel, i.e.
Definition: PcscCard.cpp:329
Definition: Apdu.h:118
Definition: Card.h:22