AusweisApp2
Lade ...
Suche ...
Keine Treffer
Card.h
gehe zur Dokumentation dieser Datei
1
7#pragma once
8
9#include "CardReturnCode.h"
11#include "apdu/CommandApdu.h"
12#include "apdu/ResponseApdu.h"
15
16#include <QObject>
17#include <QPointer>
18
19
20namespace governikus
21{
22
24{
25 CardReturnCode mReturnCode = CardReturnCode::UNDEFINED;
26 QByteArray mEfCardSecurity = QByteArray();
27 QByteArray mAuthenticationToken = QByteArray();
28 QByteArray mNonce = QByteArray();
29};
30
31#ifndef QT_NO_DEBUG
33{
34 return pLeft.mReturnCode == pRight.mReturnCode
35 && pLeft.mEfCardSecurity == pRight.mEfCardSecurity
37 && pLeft.mNonce == pRight.mNonce;
38}
39
40
41#endif
42
43class Card
44 : public QObject
45{
46 Q_OBJECT
47
48 public:
49 Card();
50 ~Card() override = default;
51
55 virtual CardReturnCode establishConnection() = 0;
56
60 virtual CardReturnCode releaseConnection() = 0;
61
65 virtual bool isConnected() const = 0;
66
71 virtual void setProgressMessage(const QString& pMessage, int pProgress = -1);
72
78 virtual ResponseApduResult transmit(const CommandApdu& pCmd) = 0;
79
83 virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, int pPreferredPinLength, const QByteArray& pChat, const QByteArray& pCertificateDescription, quint8 pTimeoutSeconds = 60);
84
88 virtual CardReturnCode destroyPaceChannel();
89
93 virtual ResponseApduResult setEidPin(quint8 pTimeoutSeconds);
94
98 static QString generateProgressMessage(const QString& pMessage, int pProgress = -1);
99
100 virtual EstablishPaceChannelOutput prepareIdentification(const QByteArray& pChat);
101
103
105 const CVCertificateChain& pTerminalCvcChain,
106 const QByteArray& pAuxiliaryData,
107 const QByteArray& pSignature,
108 const QByteArray& pPin,
109 const QByteArray& pEphemeralPublicKey);
110};
111
112} // namespace governikus
Definition: CVCertificateChain.h:22
Definition: Card.h:45
virtual EstablishPaceChannelOutput prepareIdentification(const QByteArray &pChat)
Definition: Card.cpp:77
static QString generateProgressMessage(const QString &pMessage, int pProgress=-1)
Combines the message and progressvalue depending on the environment.
Definition: Card.cpp:56
virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, int pPreferredPinLength, const QByteArray &pChat, const QByteArray &pCertificateDescription, quint8 pTimeoutSeconds=60)
Establishes a PACE channel, i.e.
Definition: Card.cpp:28
virtual void setProgressMessage(const QString &pMessage, int pProgress=-1)
Sets the current workflow progress message.
Definition: Card.cpp:21
~Card() override=default
virtual ResponseApduResult transmit(const CommandApdu &pCmd)=0
Performs a transmit to the smart card.
virtual ResponseApduResult setEidPin(quint8 pTimeoutSeconds)
Sets a new eID PIN, i.e.
Definition: Card.cpp:47
Card()
Definition: Card.cpp:15
virtual CardReturnCode releaseConnection()=0
Destroys the previously established connection to the smart card.
virtual CardReturnCode destroyPaceChannel()
Destroys an existing PACE channel, i.e.
Definition: Card.cpp:40
virtual TerminalAndChipAuthenticationResult performTAandCA(const CVCertificateChain &pTerminalCvcChain, const QByteArray &pAuxiliaryData, const QByteArray &pSignature, const QByteArray &pPin, const QByteArray &pEphemeralPublicKey)
Definition: Card.cpp:94
virtual bool isConnected() const =0
Is the smart card connected, i.e.
virtual CardReturnCode establishConnection()=0
Establish a connection to the smart card.
virtual ResponseApduResult getChallenge()
Definition: Card.cpp:86
Definition: EstablishPaceChannelOutput.h:48
A simple template renderer.
Definition: ActivationContext.h:15
quint8
Definition: ResponseApdu.h:62
bool operator==(const CommandApdu &pLeft, const CommandApdu &pRight)
Definition: CommandApdu.h:100
Definition: ResponseApdu.h:115
QByteArray mAuthenticationToken
Definition: Card.h:27
QByteArray mNonce
Definition: Card.h:28
CardReturnCode mReturnCode
Definition: Card.h:25
QByteArray mEfCardSecurity
Definition: Card.h:26