AusweisApp2
RemoteCard.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "Card.h"
10 #include "messages/RemoteMessage.h"
11 #include "RemoteDispatcherClient.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  QJsonObject mResponse;
34  const QSharedPointer<RemoteDispatcherClient> 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(RemoteCardMessageType pMessageTpe, const QJsonObject& pJsonObject);
43  void onDispatcherClosed(GlobalStatus::Code pCloseCode, const QString& pId);
44 
45  Q_SIGNALS:
46  void fireCardRemoved();
47 
48  public:
49  RemoteCard(const QSharedPointer<RemoteDispatcherClient>& 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 ResponseApduResult transmit(const CommandApdu& pCmd) override;
57 
58  virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, const QByteArray& pChat, const QByteArray& pCertificateDescription, quint8 pTimeoutSeconds = 60) override;
59 
60  virtual ResponseApduResult setEidPin(quint8 pTimeoutSeconds) override;
61 };
62 
63 } // namespace governikus
Code
Definition: GlobalStatus.h:25
Definition: RemoteCard.h:22
virtual CardReturnCode disconnect() override
Destroys the previously established connection to the smart card.
Definition: RemoteCard.cpp:146
void fireCardRemoved()
Definition: moc_RemoteCard.cpp:148
virtual ResponseApduResult setEidPin(quint8 pTimeoutSeconds) override
Sets a new eID PIN, i.e.
Definition: RemoteCard.cpp:232
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
virtual ResponseApduResult transmit(const CommandApdu &pCmd) override
Performs a transmit to the smart card.
Definition: RemoteCard.cpp:175
Definition: CommandApdu.h:14
Definition: ResponseApdu.h:106
virtual ~RemoteCard() override
Definition: RemoteCard.cpp:116
virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, const QByteArray &pChat, const QByteArray &pCertificateDescription, quint8 pTimeoutSeconds=60) override
Establishes a PACE channel, i.e.
Definition: RemoteCard.cpp:197
Definition: EstablishPaceChannelOutput.h:47
virtual CardReturnCode connect() override
Establish a connection to the smart card.
Definition: RemoteCard.cpp:122
RemoteCard(const QSharedPointer< RemoteDispatcherClient > &pRemoteDispatcher, const QString &pReaderName)
Definition: RemoteCard.cpp:96
quint8
Definition: ResponseApdu.h:62
virtual bool isConnected() override
Is the smart card connected, i.e.
Definition: RemoteCard.cpp:169
Definition: Card.h:22