AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
CardConnectionWorker.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "asn1/SecurityInfos.h"
10 #include "Apdu.h"
11 #include "CardReturnCode.h"
12 #include "Commands.h"
13 #include "EstablishPACEChannel.h"
14 #include "FileRef.h"
15 #include "pace/SecureMessaging.h"
16 #include "Reader.h"
17 #include "SmartCardDefinitions.h"
18 
19 #include <QByteArray>
20 
21 namespace governikus
22 {
23 
28  : public QObject
29  , public QEnableSharedFromThis<CardConnectionWorker>
30 {
31  private:
32  Q_OBJECT
33 
37  QPointer<Reader> mReader;
38 
42  QScopedPointer<SecureMessaging> mSecureMessaging;
43 
44  bool hasCard() const;
45  inline QSharedPointer<const EFCardAccess> getEfCardAccess() const;
46 
47  private Q_SLOTS:
48  void onReaderInfoChanged(const QString& pReaderName);
49 
50  protected:
55  CardConnectionWorker(Reader* pReader);
56 
60  virtual ~CardConnectionWorker();
61 
62  public:
63  static QSharedPointer<CardConnectionWorker> create(Reader* pReader);
64 
65  Q_INVOKABLE ReaderInfo getReaderInfo() const;
66 
67  void setPukInoperative();
68 
69  virtual CardReturnCode updateRetryCounter();
70 
71  virtual CardReturnCode readFile(const FileRef& pFileRef, QByteArray& pFileContent);
72 
73  virtual CardReturnCode transmit(const CommandApdu& pCommandApdu, ResponseApdu& pResponseApdu);
74 
80  virtual CardReturnCode establishPaceChannel(PACE_PASSWORD_ID pPasswordId,
81  const QString& pPasswordValue,
82  EstablishPACEChannelOutput& pChannelOutput);
83 
89  virtual CardReturnCode establishPaceChannel(PACE_PASSWORD_ID pPasswordId,
90  const QString& pPasswordValue,
91  const QByteArray& pChat,
92  const QByteArray& pCertificateDescription,
93  EstablishPACEChannelOutput& pChannelOutput);
94 
98  virtual CardReturnCode destroyPaceChannel();
99 
103  Q_INVOKABLE virtual bool stopSecureMessaging();
104 
105  virtual CardReturnCode setEidPin(const QString& pNewPin, quint8 pTimeoutSeconds, ResponseApdu& pResponseApdu);
106 
107  Q_SIGNALS:
108  void fireReaderInfoChanged(const ReaderInfo& pReaderInfo);
109 };
110 
111 } /* namespace governikus */
This class represents a connection to a smart card.
Definition: CardConnectionWorker.h:27
void fireReaderInfoChanged(const ReaderInfo &pReaderInfo)
virtual CardReturnCode updateRetryCounter()
Definition: CardConnectionWorker.cpp:261
Definition: Reader.h:21
Definition: ReaderInfo.h:17
virtual CardReturnCode establishPaceChannel(PACE_PASSWORD_ID pPasswordId, const QString &pPasswordValue, EstablishPACEChannelOutput &pChannelOutput)
Performs PACE and establishes a PACE channel.
Definition: CardConnectionWorker.cpp:159
virtual CardReturnCode transmit(const CommandApdu &pCommandApdu, ResponseApdu &pResponseApdu)
Definition: CardConnectionWorker.cpp:73
Q_INVOKABLE ReaderInfo getReaderInfo() const
Definition: CardConnectionWorker.cpp:42
Definition: Apdu.h:91
virtual CardReturnCode readFile(const FileRef &pFileRef, QByteArray &pFileContent)
Definition: CardConnectionWorker.cpp:107
CardConnectionWorker(Reader *pReader)
The Card hold by the Reader is expected to be connected.
Definition: CardConnectionWorker.cpp:15
Definition: EstablishPACEChannel.h:98
Definition: FileRef.h:14
static QSharedPointer< CardConnectionWorker > create(Reader *pReader)
Definition: CardConnectionWorker.cpp:36
virtual CardReturnCode destroyPaceChannel()
Destroys a previously established PACE channel.
Definition: CardConnectionWorker.cpp:211
virtual CardReturnCode setEidPin(const QString &pNewPin, quint8 pTimeoutSeconds, ResponseApdu &pResponseApdu)
Definition: CardConnectionWorker.cpp:235
void setPukInoperative()
Definition: CardConnectionWorker.cpp:48
virtual Q_INVOKABLE bool stopSecureMessaging()
Destroys an established secure messaging channel, if there is one.
Definition: CardConnectionWorker.cpp:147
Definition: Apdu.h:118
virtual ~CardConnectionWorker()
Destroys the CardConnection and disconnects from the card.
Definition: CardConnectionWorker.cpp:27