AusweisApp2
Lade ...
Suche ...
Keine Treffer
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
25Q_DECLARE_METATYPE(EidStatus)
26Q_DECLARE_METATYPE(EidUpdateInfo)
27Q_DECLARE_METATYPE(EidServiceResult)
28Q_DECLARE_METATYPE(GenericDataResult)
29Q_DECLARE_METATYPE(InitializeResult)
30Q_DECLARE_METATYPE(PersonalizationResult)
31
32
33namespace 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
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;
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
82QDebug operator<<(QDebug pDbg, const EidStatus& pStatus);
83QDebug operator<<(QDebug pDbg, const EidUpdateInfo& pInfo);
84QDebug 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
A simple template renderer.
Definition: ActivationContext.h:15
Definition: eid_applet_results.h:75
Definition: eid_applet_results.h:90
Definition: eid_applet_results.h:105
Definition: ResponseApdu.h:115