AusweisApp
 
Lade ...
Suche ...
Keine Treffer
SmartManager.h
gehe zur Dokumentation dieser Datei
1
4
5#pragma once
6
7#include "Card.h"
8#include "InputAPDUInfo.h"
9#include "apdu/CommandApdu.h"
10#include "apdu/ResponseApdu.h"
12
13#include <QDebug>
14#include <QList>
15#include <QObject>
16#include <QSharedPointer>
17#include <QWeakPointer>
18
19#include <eid_applet_results.h>
20#include <functional>
21
22
23Q_DECLARE_METATYPE(EidStatus)
24Q_DECLARE_METATYPE(EidSupportStatus)
25Q_DECLARE_METATYPE(EidSupportStatusResult)
26Q_DECLARE_METATYPE(EidServiceResult)
27Q_DECLARE_METATYPE(SmartEidType)
28Q_DECLARE_METATYPE(ServiceInformationResult)
29Q_DECLARE_METATYPE(GenericDataResult)
30Q_DECLARE_METATYPE(InitializeResult)
31Q_DECLARE_METATYPE(PersonalizationResult)
32
33
34namespace governikus
35{
36
37class SmartManager
38 : public QObject
39{
40 Q_OBJECT
41
42 private:
43 static QWeakPointer<SmartManager> cWeakInstance;
44 static QSharedPointer<SmartManager> cStrongInstance;
45
46 public:
47 static QSharedPointer<SmartManager> get(bool pKeepConnection = false);
48 static void releaseConnection();
49
50 private:
51 bool mInitialized;
52
53 SmartManager();
54 [[nodiscard]] bool isValid() const;
55
56 public:
57 using ProgressHandler = std::function<void (int progress)>;
58
59 ~SmartManager() override;
60 [[nodiscard]] bool smartAvailable() const;
61 EidStatus status() const;
62 [[nodiscard]] EidSupportStatusResult updateSupportInfo() const;
64 [[nodiscard]] EidServiceResult deleteSmart(const ProgressHandler& pHandler = ProgressHandler()) const;
65 bool deletePersonalization() const;
66 [[nodiscard]] EidServiceResult installSmart(const ProgressHandler& pHandler = ProgressHandler()) const;
67 InitializeResult initializePersonalization(const QString& pChallenge, const QString& pPin) const;
68 QByteArrayList performPersonalization(const QList<InputAPDUInfo>& pInputApdus) const;
69 [[nodiscard]] PersonalizationResult finalizePersonalization(int pStatus) const;
70 EstablishPaceChannelOutput prepareIdentification(const QByteArray& pChat) const;
71 [[nodiscard]] ResponseApduResult challenge() const;
73 const CVCertificateChain& pTerminalCvcChain,
74 const QByteArray& pAuxiliaryData,
75 const QByteArray& pSignature,
76 const QByteArray& pPin,
77 const QByteArray& pEphemeralPublicKey) const;
78
79 ResponseApduResult transmit(const CommandApdu& pCmd) const;
80 void abortSDKWorkflow() const;
81};
82
83} // namespace governikus
84
85QDebug operator<<(QDebug pDbg, const EidStatus& pStatus);
86QDebug operator<<(QDebug pDbg, const EidSupportStatus& pInfo);
87QDebug operator<<(QDebug pDbg, const EidServiceResult& pResult);
88QDebug operator<<(QDebug pDbg, const SmartEidType& pType);
89QDebug operator<<(QDebug pDbg, const ServiceInformationResult& pResult);
QDebug operator<<(QDebug pDbg, const EidStatus &pStatus)
Definition SmartManager.cpp:427
Definition CVCertificateChain.h:24
Definition EstablishPaceChannelOutput.h:45
bool deletePersonalization() const
Definition SmartManager.cpp:232
static void releaseConnection()
Definition SmartManager.cpp:64
EidServiceResult installSmart(const ProgressHandler &pHandler=ProgressHandler()) const
Definition SmartManager.cpp:245
EidServiceResult deleteSmart(const ProgressHandler &pHandler=ProgressHandler()) const
Definition SmartManager.cpp:219
InitializeResult initializePersonalization(const QString &pChallenge, const QString &pPin) const
Definition SmartManager.cpp:258
EidStatus status() const
Definition SmartManager.cpp:154
~SmartManager() override
Definition SmartManager.cpp:115
ServiceInformationResult serviceInformation() const
Definition SmartManager.cpp:206
std::function< void(int progress)> ProgressHandler
Definition SmartManager.h:57
EstablishPaceChannelOutput prepareIdentification(const QByteArray &pChat) const
Definition SmartManager.cpp:312
PersonalizationResult finalizePersonalization(int pStatus) const
Definition SmartManager.cpp:301
EidSupportStatusResult updateSupportInfo() const
Definition SmartManager.cpp:167
QByteArrayList performPersonalization(const QList< InputAPDUInfo > &pInputApdus) const
Definition SmartManager.cpp:269
void abortSDKWorkflow() const
Definition SmartManager.cpp:405
ResponseApduResult transmit(const CommandApdu &pCmd) const
Definition SmartManager.cpp:378
static QSharedPointer< SmartManager > get(bool pKeepConnection=false)
Definition SmartManager.cpp:46
ResponseApduResult challenge() const
Definition SmartManager.cpp:331
TerminalAndChipAuthenticationResult performTAandCA(const CVCertificateChain &pTerminalCvcChain, const QByteArray &pAuxiliaryData, const QByteArray &pSignature, const QByteArray &pPin, const QByteArray &pEphemeralPublicKey) const
Definition SmartManager.cpp:348
bool smartAvailable() const
Definition SmartManager.cpp:127
EidServiceResult
Definition eid_applet_results.h:92
EidStatus
Definition eid_applet_results.h:16
SmartEidType
Definition eid_applet_results.h:107
EidSupportStatus
Definition eid_applet_results.h:58
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17
Definition eid_applet_results.h:131
Definition eid_applet_results.h:116
Definition eid_applet_results.h:146
Definition eid_applet_results.h:161
Definition eid_applet_results.h:176
Definition ResponseApdu.h:116