AusweisApp
Lade ...
Suche ...
Keine Treffer
CardConnectionWorker.h
gehe zur Dokumentation dieser Datei
1
5#pragma once
6
7#include "CardReturnCode.h"
8#include "FileRef.h"
9#include "Reader.h"
11#include "apdu/CommandApdu.h"
12#include "apdu/ResponseApdu.h"
14#include "asn1/SecurityInfos.h"
17
18#include <QByteArray>
19#include <QTimer>
20
21
22namespace governikus
23{
25 : public QObject
26 , public QEnableSharedFromThis<CardConnectionWorker>
27{
28 Q_OBJECT
29
30 private:
34 QPointer<Reader> mReader;
35
39 QScopedPointer<SecureMessaging> mSecureMessaging;
40
41 QTimer mKeepAliveTimer;
42
43 inline QSharedPointer<const EFCardAccess> getEfCardAccess() const;
44
45 void stopSecureMessaging();
46
47 private Q_SLOTS:
48 void onKeepAliveTimeout();
49
50 protected:
55 explicit CardConnectionWorker(Reader* pReader);
56
60 ~CardConnectionWorker() override;
61
62 public:
63 static QSharedPointer<CardConnectionWorker> create(Reader* pReader);
64
65 Q_INVOKABLE ReaderInfo getReaderInfo() const;
66
67 void setPukInoperative();
68
69 [[nodiscard]] bool selectApplicationRoot(const FileRef& pApplication);
70
71 virtual CardReturnCode updateRetryCounter();
72
73 virtual CardReturnCode readFile(const FileRef& pFileRef, QByteArray& pFileContent, int pLe = CommandApdu::SHORT_MAX_LE);
74
75 virtual ResponseApduResult transmit(const CommandApdu& pCommandApdu);
76
82 virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId,
83 const QByteArray& pPasswordValue,
84 const QByteArray& pChat,
85 const QByteArray& pCertificateDescription);
86
90 virtual CardReturnCode destroyPaceChannel();
91
92 virtual void setKeepAlive(bool pEnabled);
93
98 virtual void setProgressMessage(const QString& pMessage, int pProgress = -1);
99 virtual void setErrorMessage(const QString& pMessage);
100
101 virtual ResponseApduResult setEidPin(const QByteArray& pNewPin, quint8 pTimeoutSeconds);
102
103 EstablishPaceChannelOutput prepareIdentification(const QByteArray& pChat) const;
104
106
108 const CVCertificateChain& pTerminalCvcChain,
109 const QByteArray& pAuxiliaryData,
110 const QByteArray& pSignature,
111 const QByteArray& pPin,
112 const QByteArray& pEphemeralPublicKey) const;
113
114 Q_SIGNALS:
115 void fireReaderInfoChanged(const ReaderInfo& pReaderInfo);
117};
118
119} // namespace governikus
Definition CVCertificateChain.h:24
Definition CardConnectionWorker.h:27
virtual CardReturnCode destroyPaceChannel()
Destroys a previously established PACE channel.
Definition CardConnectionWorker.cpp:396
~CardConnectionWorker() override
Destroys the CardConnection and disconnects from the card.
Definition CardConnectionWorker.cpp:38
CardConnectionWorker(Reader *pReader)
The Card hold by the Reader is expected to be connected.
Definition CardConnectionWorker.cpp:22
EstablishPaceChannelOutput prepareIdentification(const QByteArray &pChat) const
Definition CardConnectionWorker.cpp:450
Q_INVOKABLE ReaderInfo getReaderInfo() const
Definition CardConnectionWorker.cpp:65
virtual CardReturnCode updateRetryCounter()
Definition CardConnectionWorker.cpp:112
virtual void setErrorMessage(const QString &pMessage)
Definition CardConnectionWorker.cpp:283
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:293
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:465
virtual ResponseApduResult setEidPin(const QByteArray &pNewPin, quint8 pTimeoutSeconds)
Definition CardConnectionWorker.cpp:420
TerminalAndChipAuthenticationResult performTAandCA(const CVCertificateChain &pTerminalCvcChain, const QByteArray &pAuxiliaryData, const QByteArray &pSignature, const QByteArray &pPin, const QByteArray &pEphemeralPublicKey) const
Definition CardConnectionWorker.cpp:485
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:45
Definition FileRef.h:15
Definition ReaderInfo.h:18
Definition Reader.h:20
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17
quint8
Definition ResponseApdu.h:65
Definition ResponseApdu.h:116