AusweisApp2
SmartManager.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "Card.h"
10 #include "InputAPDUInfo.h"
11 #include "apdu/CommandApdu.h"
12 #include "apdu/ResponseApdu.h"
14 
15 #include <QDebug>
16 #include <QObject>
17 #include <QSharedPointer>
18 #include <QVector>
19 #include <QWeakPointer>
20 
21 #include <eid_applet_results.h>
22 #include <functional>
23 
24 
25 Q_DECLARE_METATYPE(EidStatus)
26 Q_DECLARE_METATYPE(EidUpdateInfo)
27 Q_DECLARE_METATYPE(EidServiceResult)
28 Q_DECLARE_METATYPE(GenericDataResult)
29 Q_DECLARE_METATYPE(InitializeResult)
30 Q_DECLARE_METATYPE(PersonalizationResult)
31 
32 
33 namespace governikus
34 {
35 
37  : public QObject
38 {
39  Q_OBJECT
40 
41  private:
42  static QWeakPointer<SmartManager> cWeakInstance;
43  static QSharedPointer<SmartManager> cStrongInstance;
44 
45  public:
46  static QSharedPointer<SmartManager> get(bool pKeepConnection = false);
47  static void releaseConnection();
48 
49  private:
50  bool mInitialized;
51 
52  SmartManager();
53  [[nodiscard]] bool isValid() const;
54 
55  public:
56  using ProgressHandler = std::function<void (int progress)>;
57 
58  ~SmartManager() override;
59  EidStatus status() const;
61  bool deleteSmart(const ProgressHandler& pHandler = ProgressHandler()) const;
62  bool deletePersonalization() const;
63  bool installSmart(const ProgressHandler& pHandler = ProgressHandler()) const;
64  InitializeResult initializePersonalization(const QString& pChallenge, const QString& pPin) const;
65  QByteArrayList performPersonalization(const QVector<InputAPDUInfo>& pInputApdus) const;
66  [[nodiscard]] PersonalizationResult finalizePersonalization() const;
67  EstablishPaceChannelOutput prepareIdentification(const QByteArray& pChat) const;
68  [[nodiscard]] ResponseApduResult challenge() const;
70  const CVCertificateChain& pTerminalCvcChain,
71  const QByteArray& pAuxiliaryData,
72  const QByteArray& pSignature,
73  const QByteArray& pPin,
74  const QByteArray& pEphemeralPublicKey) const;
75 
76  ResponseApduResult transmit(const CommandApdu& pCmd) const;
77  void abortSDKWorkflow() const;
78 };
79 
80 } // namespace governikus
81 
82 QDebug operator<<(QDebug pDbg, const EidStatus& pStatus);
83 QDebug operator<<(QDebug pDbg, const EidUpdateInfo& pInfo);
84 QDebug operator<<(QDebug pDbg, const EidServiceResult& pResult);
QDebug operator<<(QDebug pDbg, const EidStatus &pStatus)
Definition: SmartManager.cpp:405
Definition: CVCertificateChain.h:22
Definition: EstablishPaceChannelOutput.h:48
Definition: SmartManager.h:38
bool deletePersonalization() const
Definition: SmartManager.cpp:173
QByteArrayList performPersonalization(const QVector< InputAPDUInfo > &pInputApdus) const
Definition: SmartManager.cpp:210
static void releaseConnection()
Definition: SmartManager.cpp:63
InitializeResult initializePersonalization(const QString &pChallenge, const QString &pPin) const
Definition: SmartManager.cpp:199
EidStatus status() const
Definition: SmartManager.cpp:134
~SmartManager() override
Definition: SmartManager.cpp:120
bool installSmart(const ProgressHandler &pHandler=ProgressHandler()) const
Definition: SmartManager.cpp:186
std::function< void(int progress)> ProgressHandler
Definition: SmartManager.h:56
EstablishPaceChannelOutput prepareIdentification(const QByteArray &pChat) const
Definition: SmartManager.cpp:259
EidUpdateInfo updateInfo()
Definition: SmartManager.cpp:147
void abortSDKWorkflow() const
Definition: SmartManager.cpp:376
ResponseApduResult transmit(const CommandApdu &pCmd) const
Definition: SmartManager.cpp:349
static QSharedPointer< SmartManager > get(bool pKeepConnection=false)
Definition: SmartManager.cpp:45
ResponseApduResult challenge() const
Definition: SmartManager.cpp:285
PersonalizationResult finalizePersonalization() const
Definition: SmartManager.cpp:242
TerminalAndChipAuthenticationResult performTAandCA(const CVCertificateChain &pTerminalCvcChain, const QByteArray &pAuxiliaryData, const QByteArray &pSignature, const QByteArray &pPin, const QByteArray &pEphemeralPublicKey) const
Definition: SmartManager.cpp:308
bool deleteSmart(const ProgressHandler &pHandler=ProgressHandler()) const
Definition: SmartManager.cpp:160
EidServiceResult
Definition: eid_applet_results.h:63
EidUpdateInfo
Definition: eid_applet_results.h:44
EidStatus
Definition: eid_applet_results.h:19
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16
Definition: eid_applet_results.h:75
Definition: eid_applet_results.h:90
Definition: eid_applet_results.h:105
Definition: ResponseApdu.h:115