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 Card();
52 ~Card() override = default;
53
57 virtual CardReturnCode establishConnection() = 0;
58
62 virtual CardReturnCode releaseConnection() = 0;
63
67 virtual bool isConnected() const = 0;
68
73 virtual void setProgressMessage(const QString& pMessage, int pProgress = -1);
74
80 virtual ResponseApduResult transmit(const CommandApdu& pCmd) = 0;
81
85 virtual EstablishPaceChannelOutput establishPaceChannel(PacePasswordId pPasswordId, int pPreferredPinLength, const QByteArray& pChat, const QByteArray& pCertificateDescription, quint8 pTimeoutSeconds = 60);
86
90 virtual CardReturnCode destroyPaceChannel();
91
95 virtual ResponseApduResult setEidPin(quint8 pTimeoutSeconds);
96
100 static QString generateProgressMessage(const QString& pMessage, int pProgress = -1);
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:47
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
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:16
quint8
Definition ResponseApdu.h:62
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