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 virtual void setErrorMessage(const QString& pMessage);
108
109 virtual ResponseApduResult setEidPin(const QByteArray& pNewPin, quint8 pTimeoutSeconds);
110
111 EstablishPaceChannelOutput prepareIdentification(const QByteArray& pChat) const;
112
114
116 const CVCertificateChain& pTerminalCvcChain,
117 const QByteArray& pAuxiliaryData,
118 const QByteArray& pSignature,
119 const QByteArray& pPin,
120 const QByteArray& pEphemeralPublicKey) const;
121
122 Q_SIGNALS:
123 void fireReaderInfoChanged(const ReaderInfo& pReaderInfo);
125};
126
127} // 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:373
~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:427
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:442
virtual ResponseApduResult setEidPin(const QByteArray &pNewPin, quint8 pTimeoutSeconds)
Definition CardConnectionWorker.cpp:397
TerminalAndChipAuthenticationResult performTAandCA(const CVCertificateChain &pTerminalCvcChain, const QByteArray &pAuxiliaryData, const QByteArray &pSignature, const QByteArray &pPin, const QByteArray &pEphemeralPublicKey) const
Definition CardConnectionWorker.cpp:462
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