AusweisApp
Lade ...
Suche ...
Keine Treffer
Card.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "CardReturnCode.h"
13#include "apdu/CommandApdu.h"
14#include "apdu/ResponseApdu.h"
17
18#include <QObject>
19#include <QPointer>
20
21
22namespace governikus
23{
24
26{
27 CardReturnCode mReturnCode = CardReturnCode::UNDEFINED;
28 QByteArray mEfCardSecurity = QByteArray();
29 QByteArray mAuthenticationToken = QByteArray();
30 QByteArray mNonce = QByteArray();
31};
32
33#ifndef QT_NO_DEBUG
35{
36 return pLeft.mReturnCode == pRight.mReturnCode
37 && pLeft.mEfCardSecurity == pRight.mEfCardSecurity
39 && pLeft.mNonce == pRight.mNonce;
40}
41
42
43#endif
44
45class Card
46 : public QObject
47{
48 Q_OBJECT
49
50 public:
51 static constexpr int DEFAULT_PINPAD_TIMEOUT = 90;
52
53 Card();
54 ~Card() override = default;
55
59 virtual CardReturnCode establishConnection() = 0;
60
64 virtual CardReturnCode releaseConnection() = 0;
65
69 virtual bool isConnected() const = 0;
70
75 virtual void setProgressMessage(const QString& pMessage, int pProgress = -1);
76 virtual void setErrorMessage(const QString& pMessage);
77
83 virtual ResponseApduResult transmit(const CommandApdu& pCmd) = 0;
84
88 virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, int pPreferredPinLength, const QByteArray& pChat, const QByteArray& pCertificateDescription);
89
93 virtual CardReturnCode destroyPaceChannel();
94
98 virtual ResponseApduResult setEidPin(quint8 pTimeoutSeconds);
99
103 static QString generateProgressMessage(const QString& pMessage, int pProgress = -1);
104 static QString generateErrorMessage(const QString& pMessage);
105
106 virtual 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
118} // namespace governikus
Definition CVCertificateChain.h:24
Definition Card.h:47
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:51
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:49
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17
quint8
Definition ResponseApdu.h:64
bool operator==(const CommandApdu &pLeft, const CommandApdu &pRight)
Definition CommandApdu.h:105
Definition ResponseApdu.h:115
QByteArray mAuthenticationToken
Definition Card.h:29
QByteArray mNonce
Definition Card.h:30
CardReturnCode mReturnCode
Definition Card.h:27
QByteArray mEfCardSecurity
Definition Card.h:28