AusweisApp2
CardInfo.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "asn1/SecurityInfos.h"
10 #include "SmartCardDefinitions.h"
11 
12 #include <QCoreApplication>
13 #include <QSharedPointer>
14 
15 
16 namespace governikus
17 {
18 
19 class CardConnectionWorker;
20 class Reader;
21 class ReaderInfo;
22 
27 class CardInfo
28 {
29  Q_DECLARE_TR_FUNCTIONS(governikus::CardInfo)
30 
31  private:
32  CardType mCardType;
33  QSharedPointer<const EFCardAccess> mEfCardAccess;
34  int mRetryCounter;
35  bool mPinDeactivated;
36  bool mPukInoperative;
37  static const int UNDEFINED_RETRY_COUNTER;
38 
39  friend QDebug operator<<(QDebug, const CardInfo&);
40 
41  public:
42  CardInfo(CardType pCardType, const QSharedPointer<const EFCardAccess>& = QSharedPointer<const EFCardAccess>(),
43  int pRetryCounter = UNDEFINED_RETRY_COUNTER, bool pPinDeactivated = false, bool pPukInoperative = false);
44 
45  QString getCardTypeString() const;
46  bool isAvailable() const;
47  bool isEid() const;
48  bool isPassport() const;
49 
50  QSharedPointer<const EFCardAccess> getEfCardAccess() const;
51 
52  int getRetryCounter() const;
53 
54  bool isRetryCounterDetermined() const;
55 
59  bool isPinDeactivated() const;
60 
64  bool isPukInoperative() const;
65 
66  friend class Reader;
67 };
68 
69 
74 {
75  public:
80  static bool create(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker, ReaderInfo& pReaderInfo);
81 
82  private:
86  static CardType detectCard(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
87 
91  static QSharedPointer<EFCardAccess> readEfCardAccess(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
92 
97  static bool checkEfCardAccess(const QSharedPointer<EFCardAccess>& pEfCardAccess);
98 };
99 
100 
101 QDebug operator<<(QDebug pDbg, const CardInfo& pCardInfo);
102 
103 
104 } // namespace governikus
Holds smart card informations.
Definition: CardInfo.h:27
int getRetryCounter() const
Definition: CardInfo.cpp:88
bool isAvailable() const
Definition: CardInfo.cpp:64
bool isPinDeactivated() const
The online identification function has not been activated by the competent authority.
Definition: CardInfo.cpp:100
friend QDebug operator<<(QDebug, const CardInfo &)
Definition: CardInfo.cpp:259
CardInfo(CardType pCardType, const QSharedPointer< const EFCardAccess > &=QSharedPointer< const EFCardAccess >(), int pRetryCounter=UNDEFINED_RETRY_COUNTER, bool pPinDeactivated=false, bool pPukInoperative=false)
Definition: CardInfo.cpp:28
Definition: Reader.h:17
Definition: ReaderInfo.h:16
Factory for creation of CardInfo instances.
Definition: CardInfo.h:73
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
QSharedPointer< const EFCardAccess > getEfCardAccess() const
Definition: CardInfo.cpp:82
bool isPassport() const
Definition: CardInfo.cpp:76
bool isRetryCounterDetermined() const
Definition: CardInfo.cpp:94
QDebug operator<<(QDebug pDbg, const CardInfo &pCardInfo)
Definition: CardInfo.cpp:259
static bool create(const QSharedPointer< CardConnectionWorker > &pCardConnectionWorker, ReaderInfo &pReaderInfo)
In order to create a CardInfo instance a connection is established to the smart card and data is read...
Definition: CardInfo.cpp:112
bool isPukInoperative() const
The PUK is inoperative.
Definition: CardInfo.cpp:106
bool isEid() const
Definition: CardInfo.cpp:70
QString getCardTypeString() const
Definition: CardInfo.cpp:38