AusweisApp2
Reader.h
gehe zur Dokumentation dieser Datei
1 
5 #pragma once
6 
7 #include "Card.h"
8 #include "ReaderInfo.h"
9 
10 #include <QObject>
11 #include <QSharedPointer>
12 #include <QTimerEvent>
13 
14 namespace governikus
15 {
16 
17 class Reader
18  : public QObject
19 {
20  Q_OBJECT
21 
22  public:
23  enum class CardEvent
24  {
26  };
27 
28  protected:
30  int mTimerId;
31 
32  void timerEvent(QTimerEvent* pEvent) override;
33 
34  private:
35  virtual CardEvent updateCard() = 0;
36 
37  struct RetryCounterResult
38  {
39  CardReturnCode cardReturnCode = CardReturnCode::COMMAND_FAILED;
40  int retryCounter = -1;
41  bool pinDeactivated = false;
42  };
43  RetryCounterResult getRetryCounter(QSharedPointer<CardConnectionWorker> pCardConnectionWorker);
44 
45  void fireUpdateSignal(CardEvent pCardEvent);
46 
47  public:
48  Reader(ReaderManagerPlugInType pPlugInType, const QString& pReaderName);
49  virtual ~Reader() override = default;
50 
54  void update();
55 
56  const QString& getName() const
57  {
58  return mReaderInfo.getName();
59  }
60 
61 
62  const ReaderInfo& getReaderInfo() const
63  {
64  return mReaderInfo;
65  }
66 
67 
68  virtual Card* getCard() const = 0;
69 
70  void setPukInoperative();
71 
76  QSharedPointer<CardConnectionWorker> createCardConnectionWorker();
77 
78  CardReturnCode updateRetryCounter(QSharedPointer<CardConnectionWorker> pCardConnectionWorker);
79 
80  Q_SIGNALS:
81  void fireCardInserted(const QString& pReaderName);
82  void fireCardRemoved(const QString& pReaderName);
83  void fireCardRetryCounterChanged(const QString& pReaderName);
84  void fireReaderPropertiesUpdated(const QString& pReaderName);
86 
87 
88 };
89 
90 
92  : public Reader
93 {
94  Q_OBJECT
95 
96  public:
97  using Reader::Reader;
98  virtual ~ConnectableReader() override = default;
99 
100  virtual void connectReader() = 0;
101  virtual void disconnectReader(const QString& pError = QString()) = 0;
102 
103  Q_SIGNALS:
104  void fireReaderDisconnected();
105 };
106 
107 } // namespace governikus
governikus::Card
Definition: Card.h:24
governikus::Reader::CardEvent
CardEvent
Definition: Reader.h:24
governikus::CardConnectionWorker::create
static QSharedPointer< CardConnectionWorker > create(Reader *pReader)
Definition: CardConnectionWorker.cpp:42
governikus::MSEBuilder::P1::PERFORM_SECURITY_OPERATION
@ PERFORM_SECURITY_OPERATION
CardConnectionWorker.h
governikus::Reader::update
void update()
Periodically called to perform an update of the readers and cards state.
Definition: Reader.cpp:69
governikus::ConnectableReader::fireReaderDisconnected
void fireReaderDisconnected()
Definition: moc_Reader.cpp:319
governikus::Reader::timerEvent
void timerEvent(QTimerEvent *pEvent) override
Definition: Reader.cpp:60
governikus::ReaderInfo::getCardInfo
const CardInfo & getCardInfo() const
Definition: ReaderInfo.h:41
governikus::GlobalStatus::Code
Code
Definition: GlobalStatus.h:26
governikus::INVALID
INVALID
Definition: ResponseApdu.h:63
governikus::Reader::CardEvent::CARD_INSERTED
@ CARD_INSERTED
governikus::ReaderInfo
Definition: ReaderInfo.h:17
governikus::CardInfo::getEfCardAccess
QSharedPointer< const EFCardAccess > getEfCardAccess() const
Definition: CardInfo.cpp:82
ReaderInfo.h
governikus::ConnectableReader
Definition: Reader.h:93
governikus::ReaderInfo::isPinDeactivated
bool isPinDeactivated() const
Definition: ReaderInfo.h:83
governikus::Reader::fireCardRetryCounterChanged
void fireCardRetryCounterChanged(const QString &pReaderName)
Definition: moc_Reader.cpp:194
governikus::Reader::fireCardInserted
void fireCardInserted(const QString &pReaderName)
Definition: moc_Reader.cpp:180
governikus::Reader::getReaderInfo
const ReaderInfo & getReaderInfo() const
Definition: Reader.h:62
governikus::Reader::getCard
virtual Card * getCard() const =0
governikus::Reader::getName
const QString & getName() const
Definition: Reader.h:56
governikus::Card::isConnected
virtual bool isConnected()=0
Is the smart card connected, i.e.
governikus::ConnectableReader::connectReader
virtual void connectReader()=0
governikus::ConnectableReader::~ConnectableReader
virtual ~ConnectableReader() override=default
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
governikus::Card::connect
virtual CardReturnCode connect()=0
Establish a connection to the smart card.
governikus::Reader::~Reader
virtual ~Reader() override=default
governikus::Reader::Reader
Reader(ReaderManagerPlugInType pPlugInType, const QString &pReaderName)
Definition: Reader.cpp:21
governikus::PACE_PIN
PACE_PIN
Definition: SmartCardDefinitions.h:21
governikus::ReaderInfo::isRetryCounterDetermined
bool isRetryCounterDetermined() const
Definition: ReaderInfo.h:77
governikus::ConnectableReader::disconnectReader
virtual void disconnectReader(const QString &pError=QString())=0
governikus::MSEBuilder
Definition: MSEBuilder.h:17
governikus::Reader::fireCardRemoved
void fireCardRemoved(const QString &pReaderName)
Definition: moc_Reader.cpp:187
governikus::Reader::fireReaderDeviceError
void fireReaderDeviceError(GlobalStatus::Code pErrorCode)
Definition: moc_Reader.cpp:208
governikus::Reader::CardEvent::CARD_REMOVED
@ CARD_REMOVED
governikus::ReaderInfo::getRetryCounter
int getRetryCounter() const
Definition: ReaderInfo.h:71
governikus::ReaderInfo::getName
const QString & getName() const
Definition: ReaderInfo.h:101
governikus::Reader::createCardConnectionWorker
QSharedPointer< CardConnectionWorker > createCardConnectionWorker()
Creates a new CardConnectionWorker if and only if there is a card in the reader which is not already ...
Definition: Reader.cpp:35
MSEBuilder.h
governikus::Reader
Definition: Reader.h:19
governikus::Reader::updateRetryCounter
CardReturnCode updateRetryCounter(QSharedPointer< CardConnectionWorker > pCardConnectionWorker)
Definition: Reader.cpp:76
governikus::Reader::fireReaderPropertiesUpdated
void fireReaderPropertiesUpdated(const QString &pReaderName)
Definition: moc_Reader.cpp:201
governikus::MSEBuilder::P2::SET_AT
@ SET_AT
Reader.h
governikus::Reader::setPukInoperative
void setPukInoperative()
Definition: Reader.cpp:29
governikus::Reader::mTimerId
int mTimerId
Definition: Reader.h:30
governikus::Reader::mReaderInfo
ReaderInfo mReaderInfo
Definition: Reader.h:29
governikus::Reader::CardEvent::NONE
@ NONE
PaceInfo.h
Card.h