AusweisApp
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 <QList>
19#include <QObject>
20#include <QSharedPointer>
21#include <QWeakPointer>
22
23#include <eid_applet_results.h>
24#include <functional>
25
26
27Q_DECLARE_METATYPE(EidStatus)
28Q_DECLARE_METATYPE(EidSupportStatus)
29Q_DECLARE_METATYPE(EidSupportStatusResult)
30Q_DECLARE_METATYPE(EidServiceResult)
31Q_DECLARE_METATYPE(SmartEidType)
32Q_DECLARE_METATYPE(ServiceInformationResult)
33Q_DECLARE_METATYPE(GenericDataResult)
34Q_DECLARE_METATYPE(InitializeResult)
35Q_DECLARE_METATYPE(PersonalizationResult)
36
37
38namespace governikus
39{
40
42 : public QObject
43{
45
46 private:
47 static QWeakPointer<SmartManager> cWeakInstance;
48 static QSharedPointer<SmartManager> cStrongInstance;
49
50 public:
52 static void releaseConnection();
53
54 private:
55 bool mInitialized;
56
58 [[nodiscard]] bool isValid() const;
59
60 public:
61 using ProgressHandler = std::function<void (int progress)>;
62
63 ~SmartManager() override;
64 [[nodiscard]] bool smartAvailable() const;
65 EidStatus status() const;
69 bool deletePersonalization() const;
71 InitializeResult initializePersonalization(const QString& pChallenge, const QString& pPin) const;
72 QByteArrayList performPersonalization(const QList<InputAPDUInfo>& pInputApdus) const;
80 const QByteArray& pPin,
81 const QByteArray& pEphemeralPublicKey) const;
82
84 void abortSDKWorkflow() const;
85};
86
87} // namespace governikus
88
89QDebug operator<<(QDebug pDbg, const EidStatus& pStatus);
90QDebug operator<<(QDebug pDbg, const EidSupportStatus& pInfo);
91QDebug operator<<(QDebug pDbg, const EidServiceResult& pResult);
92QDebug operator<<(QDebug pDbg, const SmartEidType& pType);
93QDebug operator<<(QDebug pDbg, const ServiceInformationResult& pResult);
QDebug operator<<(QDebug pDbg, const EidStatus &pStatus)
Definition SmartManager.cpp:434
Definition CVCertificateChain.h:24
Definition EstablishPaceChannelOutput.h:49
Definition SmartManager.h:43
bool deletePersonalization() const
Definition SmartManager.cpp:239
static void releaseConnection()
Definition SmartManager.cpp:65
EidServiceResult installSmart(const ProgressHandler &pHandler=ProgressHandler()) const
Definition SmartManager.cpp:252
EidServiceResult deleteSmart(const ProgressHandler &pHandler=ProgressHandler()) const
Definition SmartManager.cpp:226
InitializeResult initializePersonalization(const QString &pChallenge, const QString &pPin) const
Definition SmartManager.cpp:265
EidStatus status() const
Definition SmartManager.cpp:161
~SmartManager() override
Definition SmartManager.cpp:122
ServiceInformationResult serviceInformation() const
Definition SmartManager.cpp:213
std::function< void(int progress)> ProgressHandler
Definition SmartManager.h:61
EstablishPaceChannelOutput prepareIdentification(const QByteArray &pChat) const
Definition SmartManager.cpp:319
PersonalizationResult finalizePersonalization(int pStatus) const
Definition SmartManager.cpp:308
EidSupportStatusResult updateSupportInfo() const
Definition SmartManager.cpp:174
QByteArrayList performPersonalization(const QList< InputAPDUInfo > &pInputApdus) const
Definition SmartManager.cpp:276
void abortSDKWorkflow() const
Definition SmartManager.cpp:412
ResponseApduResult transmit(const CommandApdu &pCmd) const
Definition SmartManager.cpp:385
static QSharedPointer< SmartManager > get(bool pKeepConnection=false)
Definition SmartManager.cpp:47
ResponseApduResult challenge() const
Definition SmartManager.cpp:338
TerminalAndChipAuthenticationResult performTAandCA(const CVCertificateChain &pTerminalCvcChain, const QByteArray &pAuxiliaryData, const QByteArray &pSignature, const QByteArray &pPin, const QByteArray &pEphemeralPublicKey) const
Definition SmartManager.cpp:355
bool smartAvailable() const
Definition SmartManager.cpp:134
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
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17
QSharedPointer< T > decodeObject(const QByteArray &pData, bool pLogging=true)
Template function for decoding an OpenSSL type from DER encoded QByteArray.
Definition ASN1TemplateUtil.h:114
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:115