AusweisApp2
Lade ...
Suche ...
Keine Treffer
CardInfo.h
gehe zur Dokumentation dieser Datei
1
7#pragma once
8
9#include "FileRef.h"
11#include "asn1/SecurityInfos.h"
12
13#include <QCoreApplication>
14#include <QSharedPointer>
15
16class test_CardInfo;
17
18namespace governikus
19{
20
21class CardConnectionWorker;
22class Reader;
23class ReaderInfo;
24
30{
31 Q_DECLARE_TR_FUNCTIONS(governikus::CardInfo)
32 friend class Reader;
33 friend QDebug operator<<(QDebug, const CardInfo&);
34
35 public:
36 enum class TagType
37 {
38 UNKNOWN,
39 NFC_4A,
40 NFC_4B
41 };
42
43 private:
44 CardType mCardType;
45 QSharedPointer<const EFCardAccess> mEfCardAccess;
46 int mRetryCounter;
47 bool mPinDeactivated;
48 bool mPukInoperative;
49 bool mPinInitial;
50 TagType mTagType;
51 static const int UNDEFINED_RETRY_COUNTER;
52
53 public:
54 CardInfo(CardType pCardType, const QSharedPointer<const EFCardAccess>& = QSharedPointer<const EFCardAccess>(),
55 int pRetryCounter = UNDEFINED_RETRY_COUNTER, bool pPinDeactivated = false, bool pPukInoperative = false, bool pPinInitial = false);
56
57 void setCardType(CardType pCardType);
58 [[nodiscard]] CardType getCardType() const;
59 [[nodiscard]] QString getCardTypeString() const;
60
61 [[nodiscard]] QSharedPointer<const EFCardAccess> getEfCardAccess() const;
62 [[nodiscard]] MobileEidType getMobileEidType() const;
63
64 [[nodiscard]] int getRetryCounter() const;
65 void setRetryCounter(int pRetryCounter);
66
67 [[nodiscard]] TagType getTagType() const;
68 void setTagType(TagType pTagType);
69
70 [[nodiscard]] bool isRetryCounterDetermined() const;
71
75 [[nodiscard]] bool isPinDeactivated() const;
76
80 [[nodiscard]] bool isPukInoperative() const;
81
82 [[nodiscard]] bool isPinInitial() const;
83};
84
85
90{
91 friend class ::test_CardInfo;
92
93 public:
98 static CardInfo create(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
99
100 private:
101 static bool selectApplication(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker, const FileRef& pFileRef);
102
106 static bool detectCard(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
107 static bool detectEid(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker, const FileRef& pRef);
108
112 static QSharedPointer<EFCardAccess> readEfCardAccess(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
113
118 static bool checkEfCardAccess(const QSharedPointer<EFCardAccess>& pEfCardAccess);
119};
120
121
122QDebug operator<<(QDebug pDbg, const CardInfo& pCardInfo);
123
124
125} // namespace governikus
Factory for creation of CardInfo instances.
Definition: CardInfo.h:90
static CardInfo create(const QSharedPointer< CardConnectionWorker > &pCardConnectionWorker)
In order to create a CardInfo instance a connection is established to the smart card and data is read...
Definition: CardInfo.cpp:157
Holds smart card information.
Definition: CardInfo.h:30
void setCardType(CardType pCardType)
Definition: CardInfo.cpp:41
MobileEidType getMobileEidType() const
Definition: CardInfo.cpp:132
void setRetryCounter(int pRetryCounter)
Definition: CardInfo.cpp:90
QString getCardTypeString() const
Definition: CardInfo.cpp:53
bool isPukInoperative() const
The PUK is inoperative.
Definition: CardInfo.cpp:108
bool isPinDeactivated() const
The online identification function has not been activated by the competent authority.
Definition: CardInfo.cpp:102
int getRetryCounter() const
Definition: CardInfo.cpp:84
CardType getCardType() const
Definition: CardInfo.cpp:47
void setTagType(TagType pTagType)
Definition: CardInfo.cpp:126
TagType getTagType() const
Definition: CardInfo.cpp:120
bool isRetryCounterDetermined() const
Definition: CardInfo.cpp:96
TagType
Definition: CardInfo.h:37
QSharedPointer< const EFCardAccess > getEfCardAccess() const
Definition: CardInfo.cpp:78
bool isPinInitial() const
Definition: CardInfo.cpp:114
Definition: FileRef.h:17
Definition: Reader.h:19
A simple template renderer.
Definition: ActivationContext.h:15
QDebug operator<<(QDebug pDbg, const CommandApdu &pCommandApdu)
Definition: CommandApdu.h:91