AusweisApp2
Lade ...
Suche ...
Keine Treffer
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
19namespace governikus
20{
21
23 : public Card
24{
25 Q_OBJECT
26
27 private:
28 struct CardResult
29 {
30 PCSC_RETURNCODE mReturnCode;
31 QByteArray mResponse = QByteArray();
32 };
33
34 QPointer<PcscReader> mReader;
35 PCSC_INT mProtocol;
36 SCARDCONTEXT mContextHandle;
37 SCARDHANDLE mCardHandle;
38 QTimer mTimer;
39
40 CardResult transmit(const QByteArray& pSendBuffer);
41 CardResult transmit(const QByteArray& pSendBuffer, const SCARD_IO_REQUEST* pSendPci);
42 CardResult control(PCSC_INT pCntrCode, const QByteArray& pCntrInput);
43
44 private Q_SLOTS:
45 void sendSCardStatus();
46
47 public:
48 explicit PcscCard(PcscReader* pPcscReader);
49 ~PcscCard() override;
50
51 CardReturnCode establishConnection() override;
52 CardReturnCode releaseConnection() override;
53 bool isConnected() const override;
54
55 ResponseApduResult transmit(const CommandApdu& pCmd) override;
56
57 EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, int pPreferredPinLength, const QByteArray& pChat, const QByteArray& pCertificateDescription, quint8 pTimeoutSeconds) override;
58
59 CardReturnCode destroyPaceChannel() override;
60
61 ResponseApduResult setEidPin(quint8 pTimeoutSeconds) override;
62};
63
64} // namespace governikus
Definition: Card.h:45
Definition: EstablishPaceChannelOutput.h:48
Definition: PcscCard.h:24
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:24
A simple template renderer.
Definition: ActivationContext.h:15
quint8
Definition: ResponseApdu.h:62
Definition: ResponseApdu.h:115