AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
RemoteCard.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "Card.h"
10 #include "messages/RemoteMessage.h"
11 #include "RemoteDispatcher.h"
12 
13 #include <QMutex>
14 #include <QSharedPointer>
15 #include <QString>
16 #include <QWaitCondition>
17 
18 
19 namespace governikus
20 {
21 
23  : public Card
24 {
25  Q_OBJECT
26 
27  private:
28  bool mWaitingForAnswer;
29  QWaitCondition mWaitCondition;
30  QMutex mResponseAvailable, mProcessResponse;
31 
32  RemoteCardMessageType mExpectedAnswerType;
33  QSharedPointer<const RemoteMessage> mResponse;
34  const QSharedPointer<RemoteDispatcher> mRemoteDispatcher;
35  QString mReaderName;
36  QString mSlotHandle;
37  bool mConnected;
38 
39  bool sendMessage(const QSharedPointer<const RemoteMessage>& pMessage, RemoteCardMessageType pExpectedAnswer, unsigned long pTimeout);
40 
41  private Q_SLOTS:
42  void onMessageReceived(const QSharedPointer<const RemoteMessage>& pMessage);
43  void onDispatcherClosed(GlobalStatus::Code pCloseCode, const QSharedPointer<RemoteDispatcher>& pRemoteDispatcher);
44 
45  Q_SIGNALS:
46  void fireCardRemoved();
47 
48  public:
49  RemoteCard(const QSharedPointer<RemoteDispatcher>& pRemoteDispatcher, const QString& pReaderName);
50  virtual ~RemoteCard() override;
51 
52  virtual CardReturnCode connect() override;
53  virtual CardReturnCode disconnect() override;
54  virtual bool isConnected() override;
55 
56  virtual CardReturnCode transmit(const CommandApdu& pCmd, ResponseApdu& pRes) override;
57 
58  virtual CardReturnCode establishPaceChannel(PACE_PASSWORD_ID pPasswordId, const QByteArray& pChat, const QByteArray& pCertificateDescription, EstablishPACEChannelOutput& pChannelOutput, quint8 pTimeoutSeconds = 60) override;
59 
60  virtual CardReturnCode setEidPin(quint8 pTimeoutSeconds, ResponseApdu& pResponseApdu) override;
61 };
62 
63 } /* namespace governikus */
Code
Definition: GlobalStatus.h:24
Definition: RemoteCard.h:22
virtual CardReturnCode disconnect() override
Destroys the previously established connection to the smart card.
Definition: RemoteCard.cpp:139
RemoteCard(const QSharedPointer< RemoteDispatcher > &pRemoteDispatcher, const QString &pReaderName)
Definition: RemoteCard.cpp:90
virtual CardReturnCode setEidPin(quint8 pTimeoutSeconds, ResponseApdu &pResponseApdu) override
Sets a new eID PIN, i.e.
Definition: RemoteCard.cpp:208
Definition: Apdu.h:91
virtual CardReturnCode transmit(const CommandApdu &pCmd, ResponseApdu &pRes) override
Performs a transmit to the smart card.
Definition: RemoteCard.cpp:165
Definition: EstablishPACEChannel.h:98
virtual ~RemoteCard() override
Definition: RemoteCard.cpp:112
virtual CardReturnCode connect() override
Establish a connection to the smart card.
Definition: RemoteCard.cpp:118
virtual bool isConnected() override
Is the smart card connected, i.e.
Definition: RemoteCard.cpp:159
Definition: Apdu.h:118
virtual CardReturnCode establishPaceChannel(PACE_PASSWORD_ID pPasswordId, const QByteArray &pChat, const QByteArray &pCertificateDescription, EstablishPACEChannelOutput &pChannelOutput, quint8 pTimeoutSeconds=60) override
Establishes a PACE channel, i.e.
Definition: RemoteCard.cpp:185
Definition: Card.h:22