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  protected:
51  explicit CardConnectionWorker(Reader* pReader);
52 
56  ~CardConnectionWorker() override;
57 
58  public:
59  static QSharedPointer<CardConnectionWorker> create(Reader* pReader);
60 
61  Q_INVOKABLE ReaderInfo getReaderInfo() const;
62 
63  void setPukInoperative();
64 
65  virtual CardReturnCode updateRetryCounter();
66 
67  virtual CardReturnCode readFile(const FileRef& pFileRef, QByteArray& pFileContent);
68 
69  virtual ResponseApduResult transmit(const CommandApdu& pCommandApdu);
70 
76  virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId,
77  const QByteArray& pPasswordValue);
78 
84  virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId,
85  const QByteArray& pPasswordValue,
86  const QByteArray& pChat,
87  const QByteArray& pCertificateDescription);
88 
92  virtual CardReturnCode destroyPaceChannel();
93 
98  virtual void setProgressMessage(const QString& pMessage, int pProgress = -1);
99 
103  Q_INVOKABLE virtual bool stopSecureMessaging();
104 
105  virtual ResponseApduResult setEidPin(const QByteArray& pNewPin, quint8 pTimeoutSeconds);
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:30
virtual CardReturnCode destroyPaceChannel()
Destroys a previously established PACE channel.
Definition: CardConnectionWorker.cpp:234
~CardConnectionWorker() override
Destroys the CardConnection and disconnects from the card.
Definition: CardConnectionWorker.cpp:32
CardConnectionWorker(Reader *pReader)
The Card hold by the Reader is expected to be connected.
Definition: CardConnectionWorker.cpp:20
Q_INVOKABLE ReaderInfo getReaderInfo() const
Definition: CardConnectionWorker.cpp:48
virtual CardReturnCode updateRetryCounter()
Definition: CardConnectionWorker.cpp:287
static QSharedPointer< CardConnectionWorker > create(Reader *pReader)
Definition: CardConnectionWorker.cpp:42
void setPukInoperative()
Definition: CardConnectionWorker.cpp:54
virtual CardReturnCode readFile(const FileRef &pFileRef, QByteArray &pFileContent)
Definition: CardConnectionWorker.cpp:98
virtual ResponseApduResult transmit(const CommandApdu &pCommandApdu)
Definition: CardConnectionWorker.cpp:66
virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, const QByteArray &pPasswordValue)
Performs PACE and establishes a PACE channel.
Definition: CardConnectionWorker.cpp:159
virtual ResponseApduResult setEidPin(const QByteArray &pNewPin, quint8 pTimeoutSeconds)
Definition: CardConnectionWorker.cpp:257
virtual void setProgressMessage(const QString &pMessage, int pProgress=-1)
Sets the current workflow progress message.
Definition: CardConnectionWorker.cpp:137
void fireReaderInfoChanged(const ReaderInfo &pReaderInfo)
virtual Q_INVOKABLE bool stopSecureMessaging()
Destroys an established secure messaging channel, if there is one.
Definition: CardConnectionWorker.cpp:147
Definition: CommandApdu.h:16
Definition: EstablishPaceChannelOutput.h:48
Definition: ReaderInfo.h:17
Definition: Reader.h:19
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
quint8
Definition: ResponseApdu.h:62
Definition: FileRef.h:15
Definition: ResponseApdu.h:107