AusweisApp2
Lade ...
Suche ...
Keine Treffer
SmartManager.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "Card.h"
12#include "InputAPDUInfo.h"
13#include "apdu/CommandApdu.h"
14#include "apdu/ResponseApdu.h"
16
17#include <QDebug>
18#include <QObject>
19#include <QSharedPointer>
20#include <QVector>
21#include <QWeakPointer>
22
23#include <eid_applet_results.h>
24#include <functional>
25
26
27Q_DECLARE_METATYPE(EidStatus)
28Q_DECLARE_METATYPE(EidUpdateInfo)
29Q_DECLARE_METATYPE(EidServiceResult)
30Q_DECLARE_METATYPE(GenericDataResult)
31Q_DECLARE_METATYPE(InitializeResult)
32Q_DECLARE_METATYPE(PersonalizationResult)
33
34
35namespace governikus
36{
37
39 : public QObject
40{
41 Q_OBJECT
42
43 private:
44 static QWeakPointer<SmartManager> cWeakInstance;
45 static QSharedPointer<SmartManager> cStrongInstance;
46
47 public:
48 static QSharedPointer<SmartManager> get(bool pKeepConnection = false);
49 static void releaseConnection();
50
51 private:
52 bool mInitialized;
53
55 [[nodiscard]] bool isValid() const;
56
57 public:
58 using ProgressHandler = std::function<void (int progress)>;
59
60 ~SmartManager() override;
61 EidStatus status() const;
63 bool deleteSmart(const ProgressHandler& pHandler = ProgressHandler()) const;
64 bool deletePersonalization() const;
65 bool installSmart(const ProgressHandler& pHandler = ProgressHandler()) const;
66 InitializeResult initializePersonalization(const QString& pChallenge, const QString& pPin) const;
67 QByteArrayList performPersonalization(const QVector<InputAPDUInfo>& pInputApdus) const;
69 EstablishPaceChannelOutput prepareIdentification(const QByteArray& pChat) const;
70 [[nodiscard]] ResponseApduResult challenge() const;
72 const CVCertificateChain& pTerminalCvcChain,
73 const QByteArray& pAuxiliaryData,
74 const QByteArray& pSignature,
75 const QByteArray& pPin,
76 const QByteArray& pEphemeralPublicKey) const;
77
78 ResponseApduResult transmit(const CommandApdu& pCmd) const;
79 void abortSDKWorkflow() const;
80};
81
82} // namespace governikus
83
84QDebug operator<<(QDebug pDbg, const EidStatus& pStatus);
85QDebug operator<<(QDebug pDbg, const EidUpdateInfo& pInfo);
86QDebug operator<<(QDebug pDbg, const EidServiceResult& pResult);
QDebug operator<<(QDebug pDbg, const EidStatus &pStatus)
Definition: SmartManager.cpp:398
Definition: CVCertificateChain.h:24
Definition: EstablishPaceChannelOutput.h:50
Definition: SmartManager.h:40
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:58
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