AusweisApp
Lade ...
Suche ...
Keine Treffer
CardConnectionWorker.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "CardReturnCode.h"
12#include "FileRef.h"
13#include "Reader.h"
15#include "apdu/CommandApdu.h"
16#include "apdu/ResponseApdu.h"
18#include "asn1/SecurityInfos.h"
21
22#include <QByteArray>
23#include <QTimer>
24
25
26namespace governikus
27{
28
33 : public QObject
34 , public QEnableSharedFromThis<CardConnectionWorker>
35{
36 Q_OBJECT
37
38 private:
42 QPointer<Reader> mReader;
43
47 QScopedPointer<SecureMessaging> mSecureMessaging;
48
49 QTimer mKeepAliveTimer;
50
51 inline QSharedPointer<const EFCardAccess> getEfCardAccess() const;
52
53 void stopSecureMessaging();
54
55 private Q_SLOTS:
56 void onKeepAliveTimeout();
57
58 protected:
63 explicit CardConnectionWorker(Reader* pReader);
64
68 ~CardConnectionWorker() override;
69
70 public:
71 static QSharedPointer<CardConnectionWorker> create(Reader* pReader);
72
73 Q_INVOKABLE ReaderInfo getReaderInfo() const;
74
75 void setPukInoperative();
76
77 [[nodiscard]] bool selectApplicationRoot(const FileRef& pApplication);
78
79 virtual CardReturnCode updateRetryCounter();
80
81 virtual CardReturnCode readFile(const FileRef& pFileRef, QByteArray& pFileContent, int pLe = CommandApdu::SHORT_MAX_LE);
82
83 virtual ResponseApduResult transmit(const CommandApdu& pCommandApdu);
84
90 virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId,
91 const QByteArray& pPasswordValue,
92 const QByteArray& pChat,
93 const QByteArray& pCertificateDescription);
94
98 virtual CardReturnCode destroyPaceChannel();
99
100 virtual void setKeepAlive(bool pEnabled);
101
106 virtual void setProgressMessage(const QString& pMessage, int pProgress = -1);
107
108 virtual ResponseApduResult setEidPin(const QByteArray& pNewPin, quint8 pTimeoutSeconds);
109
110 EstablishPaceChannelOutput prepareIdentification(const QByteArray& pChat) const;
111
113
115 const CVCertificateChain& pTerminalCvcChain,
116 const QByteArray& pAuxiliaryData,
117 const QByteArray& pSignature,
118 const QByteArray& pPin,
119 const QByteArray& pEphemeralPublicKey) const;
120
121 Q_SIGNALS:
122 void fireReaderInfoChanged(const ReaderInfo& pReaderInfo);
124};
125
126} // namespace governikus
Definition CVCertificateChain.h:24
This class represents a connection to a smart card.
Definition CardConnectionWorker.h:35
virtual CardReturnCode destroyPaceChannel()
Destroys a previously established PACE channel.
Definition CardConnectionWorker.cpp:363
~CardConnectionWorker() override
Destroys the CardConnection and disconnects from the card.
Definition CardConnectionWorker.cpp:38
EstablishPaceChannelOutput prepareIdentification(const QByteArray &pChat) const
Definition CardConnectionWorker.cpp:417
Q_INVOKABLE ReaderInfo getReaderInfo() const
Definition CardConnectionWorker.cpp:65
virtual CardReturnCode updateRetryCounter()
Definition CardConnectionWorker.cpp:112
virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, const QByteArray &pPasswordValue, const QByteArray &pChat, const QByteArray &pCertificateDescription)
Performs PACE and establishes a PACE channel for later terminal authentication.
Definition CardConnectionWorker.cpp:283
static QSharedPointer< CardConnectionWorker > create(Reader *pReader)
Definition CardConnectionWorker.cpp:48
void setPukInoperative()
Definition CardConnectionWorker.cpp:71
virtual void setKeepAlive(bool pEnabled)
Definition CardConnectionWorker.cpp:261
virtual ResponseApduResult transmit(const CommandApdu &pCommandApdu)
Definition CardConnectionWorker.cpp:162
ResponseApduResult getChallenge() const
Definition CardConnectionWorker.cpp:432
virtual ResponseApduResult setEidPin(const QByteArray &pNewPin, quint8 pTimeoutSeconds)
Definition CardConnectionWorker.cpp:387
TerminalAndChipAuthenticationResult performTAandCA(const CVCertificateChain &pTerminalCvcChain, const QByteArray &pAuxiliaryData, const QByteArray &pSignature, const QByteArray &pPin, const QByteArray &pEphemeralPublicKey) const
Definition CardConnectionWorker.cpp:452
virtual CardReturnCode readFile(const FileRef &pFileRef, QByteArray &pFileContent, int pLe=CommandApdu::SHORT_MAX_LE)
Definition CardConnectionWorker.cpp:208
virtual void setProgressMessage(const QString &pMessage, int pProgress=-1)
Sets the current workflow progress message.
Definition CardConnectionWorker.cpp:273
bool selectApplicationRoot(const FileRef &pApplication)
Definition CardConnectionWorker.cpp:77
void fireReaderInfoChanged(const ReaderInfo &pReaderInfo)
Definition EstablishPaceChannelOutput.h:49
Definition FileRef.h:19
Definition ReaderInfo.h:18
Definition Reader.h:20
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17
quint8
Definition ResponseApdu.h:64
Definition ResponseApdu.h:115