AusweisApp2
CardConnectionWorker.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "asn1/SecurityInfos.h"
10 #include "CardReturnCode.h"
11 #include "CommandApdu.h"
12 #include "EstablishPaceChannel.h"
13 #include "FileRef.h"
14 #include "pace/SecureMessaging.h"
15 #include "Reader.h"
16 #include "ResponseApdu.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  inline QSharedPointer<const EFCardAccess> getEfCardAccess() const;
45 
46  private Q_SLOTS:
47  void onReaderInfoChanged(const QString& pReaderName);
48 
49  protected:
54  explicit CardConnectionWorker(Reader* pReader);
55 
59  virtual ~CardConnectionWorker();
60 
61  public:
62  static QSharedPointer<CardConnectionWorker> create(Reader* pReader);
63 
64  Q_INVOKABLE ReaderInfo getReaderInfo() const;
65 
66  void setPukInoperative();
67 
68  virtual CardReturnCode updateRetryCounter();
69 
70  virtual CardReturnCode readFile(const FileRef& pFileRef, QByteArray& pFileContent);
71 
72  virtual ResponseApduResult transmit(const CommandApdu& pCommandApdu);
73 
79  virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId,
80  const QString& pPasswordValue);
81 
87  virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId,
88  const QString& pPasswordValue,
89  const QByteArray& pChat,
90  const QByteArray& pCertificateDescription);
91 
95  virtual CardReturnCode destroyPaceChannel();
96 
101  virtual void setProgressMessage(const QString& pMessage);
102 
106  Q_INVOKABLE virtual bool stopSecureMessaging();
107 
108  virtual ResponseApduResult setEidPin(const QString& pNewPin, quint8 pTimeoutSeconds);
109 
110  Q_SIGNALS:
111  void fireReaderInfoChanged(const ReaderInfo& pReaderInfo);
112 };
113 
114 } // namespace governikus
This class represents a connection to a smart card.
Definition: CardConnectionWorker.h:27
virtual void setProgressMessage(const QString &pMessage)
Sets the current workflow progress message.
Definition: CardConnectionWorker.cpp:144
void fireReaderInfoChanged(const ReaderInfo &pReaderInfo)
virtual CardReturnCode updateRetryCounter()
Definition: CardConnectionWorker.cpp:268
Definition: Reader.h:17
Definition: ReaderInfo.h:16
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, const QString &pPasswordValue)
Performs PACE and establishes a PACE channel.
Definition: CardConnectionWorker.cpp:166
Definition: CommandApdu.h:14
virtual CardReturnCode readFile(const FileRef &pFileRef, QByteArray &pFileContent)
Definition: CardConnectionWorker.cpp:105
virtual ResponseApduResult setEidPin(const QString &pNewPin, quint8 pTimeoutSeconds)
Definition: CardConnectionWorker.cpp:240
CardConnectionWorker(Reader *pReader)
The Card hold by the Reader is expected to be connected.
Definition: CardConnectionWorker.cpp:20
Definition: FileRef.h:14
static QSharedPointer< CardConnectionWorker > create(Reader *pReader)
Definition: CardConnectionWorker.cpp:42
Definition: ResponseApdu.h:106
virtual ResponseApduResult transmit(const CommandApdu &pCommandApdu)
Definition: CardConnectionWorker.cpp:73
Definition: EstablishPaceChannelOutput.h:47
virtual CardReturnCode destroyPaceChannel()
Destroys a previously established PACE channel.
Definition: CardConnectionWorker.cpp:217
Q_INVOKABLE ReaderInfo getReaderInfo() const
Definition: CardConnectionWorker.cpp:48
quint8
Definition: ResponseApdu.h:62
void setPukInoperative()
Definition: CardConnectionWorker.cpp:54
virtual Q_INVOKABLE bool stopSecureMessaging()
Destroys an established secure messaging channel, if there is one.
Definition: CardConnectionWorker.cpp:154
virtual ~CardConnectionWorker()
Destroys the CardConnection and disconnects from the card.
Definition: CardConnectionWorker.cpp:32