28#include <QSharedPointer>
29#include <QSslCertificate>
34class test_StateRedirectBrowser;
35class test_StatePreVerification;
36class test_StateCertificateDescriptionCheck;
43 :
public WorkflowContext
46 friend class ::test_StateRedirectBrowser;
47 friend class ::test_StatePreVerification;
48 friend class ::test_StateProcessCertificatesFromEac2;
49 friend class ::test_StateCertificateDescriptionCheck;
53 using BrowserHandler = std::function<QString (
const QSharedPointer<AuthContext>&)>;
56 bool mTcTokenNotFound;
57 bool mErrorReportedToServer;
58 bool mReceivedBrowserSendFailed;
59 bool mSkipMobileRedirect;
60 bool mChangeTransportPin;
64 QSharedPointer<const TcToken> mTcToken;
66 QString mReceivedMessageId;
67 QSharedPointer<StartPaos> mStartPaos;
68 QSharedPointer<InitializeFramework> mInitializeFramework;
69 QSharedPointer<InitializeFrameworkResponse> mInitializeFrameworkResponse;
70 QSharedPointer<DIDAuthenticateEAC1> mDIDAuthenticateEAC1;
71 QSharedPointer<DIDAuthenticateResponseEAC1> mDIDAuthenticateResponseEAC1;
72 QSharedPointer<DIDAuthenticateEAC2> mDIDAuthenticateEAC2;
73 QSharedPointer<DIDAuthenticateResponseEAC2> mDIDAuthenticateResponseEACAdditionalInputType;
74 QSharedPointer<DIDAuthenticateEACAdditional> mDIDAuthenticateEACAdditionalInputType;
75 QSharedPointer<DIDAuthenticateResponseEAC2> mDIDAuthenticateResponseEAC2;
76 QSharedPointer<Transmit> mTransmit;
77 QSharedPointer<TransmitResponse> mTransmitResponse;
78 QSharedPointer<StartPaosResponse> mStartPaosResponse;
79 QSharedPointer<AccessRightManager> mAccessRightManager;
80 QMultiMap<QUrl, QSslCertificate> mCertificates;
81 QSharedPointer<const CVCertificate> mDvCvc;
84 QByteArray mSslSession;
100 return mActivationUrl;
106 return mErrorReportedToServer;
112 return mReceivedBrowserSendFailed;
121 mErrorReportedToServer = pErrorReportedToServer;
127 return mChangeTransportPin;
136 return mTcTokenNotFound;
142 mTcTokenNotFound = pTcTokenNotFound;
150 return {AcceptedEidType::CARD_CERTIFIED};
153 return mDIDAuthenticateEAC1->getAcceptedEidTypes();
159 return mSkipMobileRedirect;
165 mSkipMobileRedirect = pSkipRedirect;
171 return mCertificates.values();
177 QUrl originUrl = UrlUtil::getUrlOrigin(pUrl);
178 qDebug() <<
"Adding certificate CN=" << pCert.subjectInfo(QSslCertificate::CommonName) <<
"SN=" << pCert.serialNumber() <<
"for URL origin" << originUrl;
179 mCertificates.insert(originUrl, pCert);
185 return mBrowserHandler;
197 mTcTokenUrl = pTcTokenUrl;
201 [[nodiscard]]
const QSharedPointer<const TcToken>&
getTcToken()
const
207 void setTcToken(
const QSharedPointer<const TcToken>& pTcToken)
215 return mReceivedMessageId;
221 mReceivedMessageId = pReceivedMessageId;
233 mRefreshUrl = pRefreshUrl;
239 return mDIDAuthenticateEAC1;
245 mDIDAuthenticateEAC1 = pDIDAuthenticateEAC1;
247 Q_EMIT fireAcceptedEidTypesChanged();
248 Q_EMIT fireEidTypeMismatchChanged();
254 return mDIDAuthenticateEAC2;
260 mDIDAuthenticateEAC2 = pDidAuthenticateEac2;
266 return mDIDAuthenticateResponseEAC1;
272 mDIDAuthenticateResponseEAC1 = pDidAuthenticateResponseEac1;
278 return mDIDAuthenticateResponseEACAdditionalInputType;
284 mDIDAuthenticateResponseEACAdditionalInputType = pDidAuthenticateResponseEacAdditionalInputType;
290 return mDIDAuthenticateEACAdditionalInputType;
296 mDIDAuthenticateEACAdditionalInputType = pDidAuthenticateEacAdditionalInputType;
302 return mDIDAuthenticateResponseEAC2;
308 mDIDAuthenticateResponseEAC2 = pDidAuthenticateResponseEac2;
314 return mInitializeFramework;
320 mInitializeFramework = pInitializeFramework;
326 return mInitializeFrameworkResponse;
332 mInitializeFrameworkResponse = pInitializeFrameworkResponse;
338 return mStartPaosResponse;
344 mStartPaosResponse = pStartPaosResponse;
350 return mTransmitResponse;
356 Q_ASSERT(!pTransmitResponse.isNull());
357 mTransmitResponse = pTransmitResponse;
369 Q_ASSERT(!pTransmit.isNull());
370 mTransmit = pTransmit;
376 return mAccessRightManager;
391 mStartPaos = pStartPaos;
404 void initCvcChainBuilder(
const QList<QSharedPointer<const CVCertificate>>& pAdditionalCertificates = QList<QSharedPointer<const CVCertificate>>());
407 [[nodiscard]]
const QSharedPointer<const CVCertificate>&
getDvCvc()
const
413 void setDvCvc(
const QSharedPointer<const CVCertificate>& dvCvc)
const QSharedPointer< const TcToken > & getTcToken() const
Definition AuthContext.h:201
const QString & getReceivedMessageId() const
Definition AuthContext.h:213
friend class TestAuthContext
Definition AuthContext.h:50
bool isTcTokenNotFound() const
Definition AuthContext.h:134
bool isReceivedBrowserSendFailed() const
Definition AuthContext.h:110
const QSharedPointer< InitializeFramework > & getInitializeFramework() const
Definition AuthContext.h:312
void setTcTokenNotFound(bool pTcTokenNotFound)
Definition AuthContext.h:140
void setTransmitResponse(const QSharedPointer< TransmitResponse > &pTransmitResponse)
Definition AuthContext.h:354
const QSharedPointer< TransmitResponse > & getTransmitResponse()
Definition AuthContext.h:348
void addCertificateData(const QUrl &pUrl, const QSslCertificate &pCert)
Definition AuthContext.h:175
void setReceivedMessageId(const QString &pReceivedMessageId)
Definition AuthContext.h:219
const QByteArray & getSslSession() const
Definition AuthContext.cpp:95
void setTcToken(const QSharedPointer< const TcToken > &pTcToken)
Definition AuthContext.h:207
bool isSkipMobileRedirect() const
Definition AuthContext.h:157
void fireAccessRightManagerCreated(QSharedPointer< AccessRightManager > pAccessRightManager)
void setDidAuthenticateEacAdditional(const QSharedPointer< DIDAuthenticateEACAdditional > &pDidAuthenticateEacAdditionalInputType)
Definition AuthContext.h:294
void setTcTokenUrl(const QUrl &pTcTokenUrl)
Definition AuthContext.h:195
const QSharedPointer< const CVCertificate > & getDvCvc() const
Definition AuthContext.h:407
void setDidAuthenticateEac1(const QSharedPointer< DIDAuthenticateEAC1 > &pDIDAuthenticateEAC1)
Definition AuthContext.h:243
void setErrorReportedToServer(bool pErrorReportedToServer)
Definition AuthContext.h:119
bool isCanAllowedMode() const override
Definition AuthContext.cpp:89
const QSharedPointer< DIDAuthenticateEAC2 > & getDidAuthenticateEac2() const
Definition AuthContext.h:252
void setReceivedBrowserSendFailed(bool pReceivedBrowserSendFailed)
Definition AuthContext.cpp:57
QList< AcceptedEidType > getAcceptedEidTypes() const override
Definition AuthContext.h:146
void setRefreshUrl(const QUrl &pRefreshUrl)
Definition AuthContext.h:231
const QSharedPointer< StartPaos > & getStartPaos() const
Definition AuthContext.h:383
const QSharedPointer< DIDAuthenticateResponseEAC2 > & getDidAuthenticateResponseEacAdditionalInputType() const
Definition AuthContext.h:276
QUrl getActivationUrl() const
Definition AuthContext.h:98
bool isErrorReportedToServer() const
Definition AuthContext.h:104
void initCvcChainBuilder(const QList< QSharedPointer< const CVCertificate > > &pAdditionalCertificates=QList< QSharedPointer< const CVCertificate > >())
Definition AuthContext.cpp:156
QByteArray encodeEffectiveChat()
Definition AuthContext.cpp:107
void setSslSession(const QByteArray &pSession)
Definition AuthContext.cpp:101
void setStartPaos(const QSharedPointer< StartPaos > &pStartPaos)
Definition AuthContext.h:389
QSharedPointer< AccessRightManager > getAccessRightManager() const
Definition AuthContext.h:374
const QSharedPointer< StartPaosResponse > & getStartPaosResponse() const
Definition AuthContext.h:336
const QUrl & getRefreshUrl() const
Definition AuthContext.h:225
const QSharedPointer< Transmit > & getTransmit()
Definition AuthContext.h:361
void setDidAuthenticateEac2(const QSharedPointer< DIDAuthenticateEAC2 > &pDidAuthenticateEac2)
Definition AuthContext.h:258
void setDvCvc(const QSharedPointer< const CVCertificate > &dvCvc)
Definition AuthContext.h:413
bool hasChainForCertificationAuthority(const EstablishPaceChannelOutput &pPaceOutput) const
Definition AuthContext.cpp:138
const QSharedPointer< InitializeFrameworkResponse > & getInitializeFrameworkResponse() const
Definition AuthContext.h:324
const QSharedPointer< DIDAuthenticateResponseEAC2 > & getDidAuthenticateResponseEac2() const
Definition AuthContext.h:300
void requestChangeTransportPin()
Definition AuthContext.cpp:67
QList< QSslCertificate > getCertificateList() const
Definition AuthContext.h:169
const QSharedPointer< DIDAuthenticateResponseEAC1 > & getDidAuthenticateResponseEac1() const
Definition AuthContext.h:264
const QSharedPointer< DIDAuthenticateEACAdditional > & getDidAuthenticateEacAdditional() const
Definition AuthContext.h:288
void setMobileSkipRedirect(bool pSkipRedirect=true)
Definition AuthContext.h:163
AuthContext(const Action pAction, bool pActivateUi=true, const QUrl &pActivationUrl=QUrl(), const BrowserHandler &pHandler=BrowserHandler())
Definition AuthContext.cpp:16
void setInitializeFramework(const QSharedPointer< InitializeFramework > &pInitializeFramework)
Definition AuthContext.h:318
CVCertificateChain getChainForCertificationAuthority(const EstablishPaceChannelOutput &pPaceOutput) const
Definition AuthContext.cpp:144
void setDidAuthenticateResponseEac1(const QSharedPointer< DIDAuthenticateResponseEAC1 > &pDidAuthenticateResponseEac1)
Definition AuthContext.h:270
void fireDidAuthenticateEac1Changed()
const QUrl & getTcTokenUrl() const
Definition AuthContext.h:189
BrowserHandler getBrowserHandler() const
Definition AuthContext.h:183
void setInitializeFrameworkResponse(const QSharedPointer< InitializeFrameworkResponse > &pInitializeFrameworkResponse)
Definition AuthContext.h:330
CVCertificateChain getChainStartingWith(const QSharedPointer< const CVCertificate > &pChainRoot) const
Definition AuthContext.cpp:118
void setDidAuthenticateResponseEac2(const QSharedPointer< DIDAuthenticateResponseEAC2 > &pDidAuthenticateResponseEac2)
Definition AuthContext.h:306
void initAccessRightManager(const QSharedPointer< const CVCertificate > &pTerminalCvc)
Definition AuthContext.cpp:80
const QSharedPointer< DIDAuthenticateEAC1 > & getDidAuthenticateEac1() const
Definition AuthContext.h:237
bool changeTransportPin() const
Definition AuthContext.h:125
void setTransmit(const QSharedPointer< Transmit > &pTransmit)
Definition AuthContext.h:367
void setDidAuthenticateResponseEacAdditionalInputType(const QSharedPointer< DIDAuthenticateResponseEAC2 > &pDidAuthenticateResponseEacAdditionalInputType)
Definition AuthContext.h:282
void setStartPaosResponse(const QSharedPointer< StartPaosResponse > &pStartPaosResponse)
Definition AuthContext.h:342
std::function< QString(const QSharedPointer< AuthContext > &)> BrowserHandler
Definition AuthContext.h:53
void fireShowChangePinViewChanged()
Definition CVCertificateChainBuilder.h:18
Definition CVCertificateChain.h:24
Definition EstablishPaceChannelOutput.h:45
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17