AusweisApp2
CardInfo.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "asn1/SecurityInfos.h"
10 #include "FileRef.h"
11 #include "SmartCardDefinitions.h"
12 
13 #include <QCoreApplication>
14 #include <QSharedPointer>
15 
16 
17 namespace governikus
18 {
19 
20 class CardConnectionWorker;
21 class Reader;
22 class ReaderInfo;
23 
28 class CardInfo
29 {
30  Q_DECLARE_TR_FUNCTIONS(governikus::CardInfo)
31 
32  private:
33  CardType mCardType;
34  QSharedPointer<const EFCardAccess> mEfCardAccess;
35  int mRetryCounter;
36  bool mPinDeactivated;
37  bool mPukInoperative;
38  static const int UNDEFINED_RETRY_COUNTER;
39 
40  friend QDebug operator<<(QDebug, const CardInfo&);
41 
42  public:
43  CardInfo(CardType pCardType, const QSharedPointer<const EFCardAccess>& = QSharedPointer<const EFCardAccess>(),
44  int pRetryCounter = UNDEFINED_RETRY_COUNTER, bool pPinDeactivated = false, bool pPukInoperative = false);
45 
46  [[nodiscard]] QString getCardTypeString() const;
47  [[nodiscard]] bool isAvailable() const;
48  [[nodiscard]] bool isEid() const;
49  [[nodiscard]] bool isPassport() const;
50 
51  [[nodiscard]] QSharedPointer<const EFCardAccess> getEfCardAccess() const;
52 
53  [[nodiscard]] int getRetryCounter() const;
54  void setRetryCounter(int pRetryCounter);
55 
56  [[nodiscard]] bool isRetryCounterDetermined() const;
57 
61  [[nodiscard]] bool isPinDeactivated() const;
62 
66  [[nodiscard]] bool isPukInoperative() const;
67 
68  friend class Reader;
69 };
70 
71 
76 {
77  public:
82  static bool create(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker, ReaderInfo& pReaderInfo);
83 
84  private:
85  static bool selectApplication(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker, const FileRef& pFileRef);
86 
90  static CardType detectCard(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
91 
95  static QSharedPointer<EFCardAccess> readEfCardAccess(const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
96 
101  static bool checkEfCardAccess(const QSharedPointer<EFCardAccess>& pEfCardAccess);
102 };
103 
104 
105 QDebug operator<<(QDebug pDbg, const CardInfo& pCardInfo);
106 
107 
108 } // namespace governikus
governikus::CommandApdu
Definition: CommandApdu.h:16
governikus::UNKNOWN
UNKNOWN
Definition: SmartCardDefinitions.h:18
governikus::operator<<
QDebug operator<<(QDebug pDbg, const CardInfo &pCardInfo)
Definition: CardInfo.cpp:281
governikus::CardInfoFactory
Factory for creation of CardInfo instances.
Definition: CardInfo.h:76
CardConnectionWorker.h
governikus::FileRef::path
const QByteArray path
Definition: FileRef.h:19
governikus::ReaderInfo
Definition: ReaderInfo.h:17
governikus::CardInfo::isPassport
bool isPassport() const
Definition: CardInfo.cpp:76
governikus::CardInfo::getEfCardAccess
QSharedPointer< const EFCardAccess > getEfCardAccess() const
Definition: CardInfo.cpp:82
governikus::FileRef::efDir
static FileRef efDir()
Definition: FileRef.cpp:11
governikus::CardInfo::isPukInoperative
bool isPukInoperative() const
The PUK is inoperative.
Definition: CardInfo.cpp:112
governikus::SUCCESS
SUCCESS
Definition: ResponseApdu.h:79
governikus::CardInfo::getCardTypeString
QString getCardTypeString() const
Definition: CardInfo.cpp:38
governikus::CardInfo
Holds smart card informations.
Definition: CardInfo.h:29
governikus::SelectBuilder
Definition: SelectBuilder.h:15
governikus::ResponseApduResult::mResponseApdu
ResponseApdu mResponseApdu
Definition: ResponseApdu.h:109
governikus::CardInfo::isAvailable
bool isAvailable() const
Definition: CardInfo.cpp:64
governikus::CardInfo::isRetryCounterDetermined
bool isRetryCounterDetermined() const
Definition: CardInfo.cpp:100
governikus::CardInfo::operator<<
friend QDebug operator<<(QDebug, const CardInfo &)
Definition: CardInfo.cpp:281
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
SmartCardDefinitions.h
governikus::CardInfo::isEid
bool isEid() const
Definition: CardInfo.cpp:70
governikus::FileRef
Definition: FileRef.h:15
governikus::FileRef::appPassport
static FileRef appPassport()
Definition: FileRef.cpp:53
governikus::ReaderInfo::setCardInfo
void setCardInfo(const CardInfo &pCardInfo)
Definition: ReaderInfo.h:101
FileRef.h
CardInfo.h
governikus::CardInfo::setRetryCounter
void setRetryCounter(int pRetryCounter)
Definition: CardInfo.cpp:94
governikus::FileRef::appPersosim
static FileRef appPersosim()
Definition: FileRef.cpp:59
governikus::ResponseApdu::getData
QByteArray getData() const
Definition: ResponseApdu.cpp:35
governikus::SecurityInfos::decode
static QSharedPointer< SecurityInfos > decode(const QByteArray &pBytes)
Definition: SecurityInfos.cpp:42
governikus::FileRef::efCardAccess
static FileRef efCardAccess()
Definition: FileRef.cpp:23
governikus::ResponseApdu::getReturnCode
StatusCode getReturnCode() const
Definition: ResponseApdu.cpp:52
governikus::SelectBuilder::build
CommandApdu build() override
Definition: SelectBuilder.cpp:23
governikus::Reader
Definition: Reader.h:19
SecurityInfos.h
governikus::ResponseApduResult
Definition: ResponseApdu.h:107
governikus::CardInfo::getRetryCounter
int getRetryCounter() const
Definition: CardInfo.cpp:88
governikus::CardInfo::isPinDeactivated
bool isPinDeactivated() const
The online identification function has not been activated by the competent authority.
Definition: CardInfo.cpp:106
governikus::CardInfo::CardInfo
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
governikus::FileRef::masterFile
static FileRef masterFile()
Definition: FileRef.cpp:17
governikus::CardInfoFactory::create
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:118
SelectBuilder.h
PaceInfo.h