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 virtual CardReturnCode updateRetryCounter();
78
79 virtual CardReturnCode readFile(const FileRef& pFileRef, QByteArray& pFileContent, int pLe = CommandApdu::SHORT_MAX_LE);
80
81 virtual ResponseApduResult transmit(const CommandApdu& pCommandApdu);
82
88 virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId,
89 const QByteArray& pPasswordValue,
90 const QByteArray& pChat,
91 const QByteArray& pCertificateDescription);
92
96 virtual CardReturnCode destroyPaceChannel();
97
98 virtual void setKeepAlive(bool pEnabled);
99
104 virtual void setProgressMessage(const QString& pMessage, int pProgress = -1);
105
106 virtual ResponseApduResult setEidPin(const QByteArray& pNewPin, quint8 pTimeoutSeconds);
107
108 EstablishPaceChannelOutput prepareIdentification(const QByteArray& pChat) const;
109
111
113 const CVCertificateChain& pTerminalCvcChain,
114 const QByteArray& pAuxiliaryData,
115 const QByteArray& pSignature,
116 const QByteArray& pPin,
117 const QByteArray& pEphemeralPublicKey) const;
118
119 Q_SIGNALS:
120 void fireReaderInfoChanged(const ReaderInfo& pReaderInfo);
122};
123
124} // 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:315
~CardConnectionWorker() override
Destroys the CardConnection and disconnects from the card.
Definition CardConnectionWorker.cpp:37
EstablishPaceChannelOutput prepareIdentification(const QByteArray &pChat) const
Definition CardConnectionWorker.cpp:369
Q_INVOKABLE ReaderInfo getReaderInfo() const
Definition CardConnectionWorker.cpp:64
virtual CardReturnCode updateRetryCounter()
Definition CardConnectionWorker.cpp:76
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:247
static QSharedPointer< CardConnectionWorker > create(Reader *pReader)
Definition CardConnectionWorker.cpp:47
void setPukInoperative()
Definition CardConnectionWorker.cpp:70
virtual void setKeepAlive(bool pEnabled)
Definition CardConnectionWorker.cpp:225
virtual ResponseApduResult transmit(const CommandApdu &pCommandApdu)
Definition CardConnectionWorker.cpp:126
ResponseApduResult getChallenge() const
Definition CardConnectionWorker.cpp:384
virtual ResponseApduResult setEidPin(const QByteArray &pNewPin, quint8 pTimeoutSeconds)
Definition CardConnectionWorker.cpp:339
TerminalAndChipAuthenticationResult performTAandCA(const CVCertificateChain &pTerminalCvcChain, const QByteArray &pAuxiliaryData, const QByteArray &pSignature, const QByteArray &pPin, const QByteArray &pEphemeralPublicKey) const
Definition CardConnectionWorker.cpp:404
virtual CardReturnCode readFile(const FileRef &pFileRef, QByteArray &pFileContent, int pLe=CommandApdu::SHORT_MAX_LE)
Definition CardConnectionWorker.cpp:172
virtual void setProgressMessage(const QString &pMessage, int pProgress=-1)
Sets the current workflow progress message.
Definition CardConnectionWorker.cpp:237
void fireReaderInfoChanged(const ReaderInfo &pReaderInfo)
Definition EstablishPaceChannelOutput.h:48
Definition FileRef.h:19
Definition ReaderInfo.h:18
Definition Reader.h:20
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:16
quint8
Definition ResponseApdu.h:62
Definition ResponseApdu.h:115