AusweisApp2
Lade ...
Suche ...
Keine Treffer
CardConnectionWorker.h
gehe zur Dokumentation dieser Datei
1
7#pragma once
8
9#include "CardReturnCode.h"
10#include "FileRef.h"
11#include "Reader.h"
13#include "apdu/CommandApdu.h"
14#include "apdu/ResponseApdu.h"
16#include "asn1/SecurityInfos.h"
19
20#include <QByteArray>
21#include <QTimer>
22
23
24namespace governikus
25{
26
31 : public QObject
32 , public QEnableSharedFromThis<CardConnectionWorker>
33{
34 Q_OBJECT
35
36 private:
40 QPointer<Reader> mReader;
41
45 QScopedPointer<SecureMessaging> mSecureMessaging;
46
47 QTimer mKeepAliveTimer;
48
49 inline QSharedPointer<const EFCardAccess> getEfCardAccess() const;
50
51 void stopSecureMessaging();
52
53 private Q_SLOTS:
54 void onKeepAliveTimeout();
55
56 protected:
61 explicit CardConnectionWorker(Reader* pReader);
62
66 ~CardConnectionWorker() override;
67
68 public:
69 static QSharedPointer<CardConnectionWorker> create(Reader* pReader);
70
71 Q_INVOKABLE ReaderInfo getReaderInfo() const;
72
73 void setPukInoperative();
74
75 virtual CardReturnCode updateRetryCounter();
76
77 virtual CardReturnCode readFile(const FileRef& pFileRef, QByteArray& pFileContent, int pLe = CommandApdu::SHORT_MAX_LE);
78
79 virtual ResponseApduResult transmit(const CommandApdu& pCommandApdu);
80
86 virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId,
87 const QByteArray& pPasswordValue,
88 const QByteArray& pChat,
89 const QByteArray& pCertificateDescription);
90
94 virtual CardReturnCode destroyPaceChannel();
95
96 virtual void setKeepAlive(bool pEnabled);
97
102 virtual void setProgressMessage(const QString& pMessage, int pProgress = -1);
103
104 virtual ResponseApduResult setEidPin(const QByteArray& pNewPin, quint8 pTimeoutSeconds);
105
106 EstablishPaceChannelOutput prepareIdentification(const QByteArray& pChat);
107
109
111 const CVCertificateChain& pTerminalCvcChain,
112 const QByteArray& pAuxiliaryData,
113 const QByteArray& pSignature,
114 const QByteArray& pPin,
115 const QByteArray& pEphemeralPublicKey);
116
117 Q_SIGNALS:
118 void fireReaderInfoChanged(const ReaderInfo& pReaderInfo);
120};
121
122} // namespace governikus
Definition: CVCertificateChain.h:22
This class represents a connection to a smart card.
Definition: CardConnectionWorker.h:33
virtual CardReturnCode destroyPaceChannel()
Destroys a previously established PACE channel.
Definition: CardConnectionWorker.cpp:298
~CardConnectionWorker() override
Destroys the CardConnection and disconnects from the card.
Definition: CardConnectionWorker.cpp:37
Q_INVOKABLE ReaderInfo getReaderInfo() const
Definition: CardConnectionWorker.cpp:53
virtual CardReturnCode updateRetryCounter()
Definition: CardConnectionWorker.cpp:65
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:230
static QSharedPointer< CardConnectionWorker > create(Reader *pReader)
Definition: CardConnectionWorker.cpp:47
void setPukInoperative()
Definition: CardConnectionWorker.cpp:59
ResponseApduResult getChallenge()
Definition: CardConnectionWorker.cpp:367
virtual void setKeepAlive(bool pEnabled)
Definition: CardConnectionWorker.cpp:208
virtual ResponseApduResult transmit(const CommandApdu &pCommandApdu)
Definition: CardConnectionWorker.cpp:109
virtual ResponseApduResult setEidPin(const QByteArray &pNewPin, quint8 pTimeoutSeconds)
Definition: CardConnectionWorker.cpp:322
virtual CardReturnCode readFile(const FileRef &pFileRef, QByteArray &pFileContent, int pLe=CommandApdu::SHORT_MAX_LE)
Definition: CardConnectionWorker.cpp:155
virtual void setProgressMessage(const QString &pMessage, int pProgress=-1)
Sets the current workflow progress message.
Definition: CardConnectionWorker.cpp:220
void fireReaderInfoChanged(const ReaderInfo &pReaderInfo)
EstablishPaceChannelOutput prepareIdentification(const QByteArray &pChat)
Definition: CardConnectionWorker.cpp:352
TerminalAndChipAuthenticationResult performTAandCA(const CVCertificateChain &pTerminalCvcChain, const QByteArray &pAuxiliaryData, const QByteArray &pSignature, const QByteArray &pPin, const QByteArray &pEphemeralPublicKey)
Definition: CardConnectionWorker.cpp:387
Definition: EstablishPaceChannelOutput.h:48
Definition: FileRef.h:17
Definition: ReaderInfo.h:18
Definition: Reader.h:19
A simple template renderer.
Definition: ActivationContext.h:15
quint8
Definition: ResponseApdu.h:62
Definition: ResponseApdu.h:115