AusweisApp
Lade ...
Suche ...
Keine Treffer
Card.h
gehe zur Dokumentation dieser Datei
1
5#pragma once
6
7#include "CardReturnCode.h"
9#include "apdu/CommandApdu.h"
10#include "apdu/ResponseApdu.h"
13
14#include <QObject>
15#include <QPointer>
16
17
18namespace governikus
19{
20
22{
23 CardReturnCode mReturnCode = CardReturnCode::UNDEFINED;
24 QByteArray mEfCardSecurity = QByteArray();
25 QByteArray mAuthenticationToken = QByteArray();
26 QByteArray mNonce = QByteArray();
27};
28
29#ifndef QT_NO_DEBUG
31{
32 return pLeft.mReturnCode == pRight.mReturnCode
33 && pLeft.mEfCardSecurity == pRight.mEfCardSecurity
35 && pLeft.mNonce == pRight.mNonce;
36}
37
38
39#endif
40
41class Card
42 : public QObject
43{
44 Q_OBJECT
45
46 public:
47 static constexpr int DEFAULT_PINPAD_TIMEOUT = 90;
48
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 virtual void setErrorMessage(const QString& pMessage);
73
79 virtual ResponseApduResult transmit(const CommandApdu& pCmd) = 0;
80
84 virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, int pPreferredPinLength, const QByteArray& pChat, const QByteArray& pCertificateDescription);
85
89 virtual CardReturnCode destroyPaceChannel();
90
94 virtual ResponseApduResult setEidPin(quint8 pTimeoutSeconds);
95
99 static QString generateProgressMessage(const QString& pMessage, int pProgress = -1);
100 static QString generateErrorMessage(const QString& pMessage);
101
102 virtual EstablishPaceChannelOutput prepareIdentification(const QByteArray& pChat);
103
105
107 const CVCertificateChain& pTerminalCvcChain,
108 const QByteArray& pAuxiliaryData,
109 const QByteArray& pSignature,
110 const QByteArray& pPin,
111 const QByteArray& pEphemeralPublicKey);
112};
113
114} // namespace governikus
Definition CVCertificateChain.h:24
Definition Card.h:43
virtual void setErrorMessage(const QString &pMessage)
Definition Card.cpp:28
virtual EstablishPaceChannelOutput prepareIdentification(const QByteArray &pChat)
Definition Card.cpp:90
virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, int pPreferredPinLength, const QByteArray &pChat, const QByteArray &pCertificateDescription)
Establishes a PACE channel, i.e.
Definition Card.cpp:34
static QString generateProgressMessage(const QString &pMessage, int pProgress=-1)
Combines the message and progressvalue depending on the environment.
Definition Card.cpp:61
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.
static QString generateErrorMessage(const QString &pMessage)
Definition Card.cpp:82
virtual ResponseApduResult setEidPin(quint8 pTimeoutSeconds)
Sets a new eID PIN, i.e.
Definition Card.cpp:52
static constexpr int DEFAULT_PINPAD_TIMEOUT
Definition Card.h: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:45
virtual TerminalAndChipAuthenticationResult performTAandCA(const CVCertificateChain &pTerminalCvcChain, const QByteArray &pAuxiliaryData, const QByteArray &pSignature, const QByteArray &pPin, const QByteArray &pEphemeralPublicKey)
Definition Card.cpp:107
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:99
Definition EstablishPaceChannelOutput.h:45
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17
quint8
Definition ResponseApdu.h:65
bool operator==(const CommandApdu &pLeft, const CommandApdu &pRight)
Definition CommandApdu.h:105
Definition ResponseApdu.h:116
QByteArray mAuthenticationToken
Definition Card.h:25
QByteArray mNonce
Definition Card.h:26
CardReturnCode mReturnCode
Definition Card.h:23
QByteArray mEfCardSecurity
Definition Card.h:24