32#include <QSharedPointer>
33#include <QSslCertificate>
38class test_StateRedirectBrowser;
39class test_StatePreVerification;
40class test_StateCertificateDescriptionCheck;
47 :
public WorkflowContext
50 friend class ::test_StateRedirectBrowser;
51 friend class ::test_StatePreVerification;
52 friend class ::test_StateProcessCertificatesFromEac2;
53 friend class ::test_StateCertificateDescriptionCheck;
57 using BrowserHandler = std::function<QString (
const QSharedPointer<AuthContext>&)>;
60 bool mTcTokenNotFound;
61 bool mErrorReportedToServer;
62 bool mSkipMobileRedirect;
63 bool mShowChangePinView;
67 QSharedPointer<const TcToken> mTcToken;
69 QString mReceivedMessageId;
70 QSharedPointer<StartPaos> mStartPaos;
71 QSharedPointer<InitializeFramework> mInitializeFramework;
72 QSharedPointer<InitializeFrameworkResponse> mInitializeFrameworkResponse;
73 QSharedPointer<DIDAuthenticateEAC1> mDIDAuthenticateEAC1;
74 QSharedPointer<DIDAuthenticateResponseEAC1> mDIDAuthenticateResponseEAC1;
75 QSharedPointer<DIDAuthenticateEAC2> mDIDAuthenticateEAC2;
76 QSharedPointer<DIDAuthenticateResponseEAC2> mDIDAuthenticateResponseEACAdditionalInputType;
77 QSharedPointer<DIDAuthenticateEACAdditional> mDIDAuthenticateEACAdditionalInputType;
78 QSharedPointer<DIDAuthenticateResponseEAC2> mDIDAuthenticateResponseEAC2;
79 QSharedPointer<Transmit> mTransmit;
80 QSharedPointer<TransmitResponse> mTransmitResponse;
81 QSharedPointer<StartPaosResponse> mStartPaosResponse;
82 QSharedPointer<AccessRightManager> mAccessRightManager;
83 QMultiMap<QUrl, QSslCertificate> mCertificates;
84 QSharedPointer<const CVCertificate> mDvCvc;
87 QByteArray mSslSession;
103 return mActivationUrl;
109 return mErrorReportedToServer;
115 mErrorReportedToServer = pErrorReportedToServer;
121 return mShowChangePinView;
130 return mTcTokenNotFound;
136 mTcTokenNotFound = pTcTokenNotFound;
145 return {AcceptedEidType::CARD_CERTIFIED};
148 return mDIDAuthenticateEAC1->getAcceptedEidTypes();
154 return mSkipMobileRedirect;
160 mSkipMobileRedirect = pSkipRedirect;
166 return mCertificates.values();
172 QUrl originUrl = UrlUtil::getUrlOrigin(pUrl);
173 qDebug() <<
"Adding certificate CN=" << pCert.subjectInfo(QSslCertificate::CommonName) <<
"SN=" << pCert.serialNumber() <<
"for URL origin" << originUrl;
174 mCertificates.insert(originUrl, pCert);
180 return mBrowserHandler;
192 mTcTokenUrl = pTcTokenUrl;
196 [[nodiscard]]
const QSharedPointer<const TcToken>&
getTcToken()
const
202 void setTcToken(
const QSharedPointer<const TcToken>& pTcToken)
210 return mReceivedMessageId;
216 mReceivedMessageId = pReceivedMessageId;
228 mRefreshUrl = pRefreshUrl;
234 return mDIDAuthenticateEAC1;
240 mDIDAuthenticateEAC1 = pDIDAuthenticateEAC1;
242 Q_EMIT fireAcceptedEidTypesChanged();
243 Q_EMIT fireEidTypeMismatchChanged();
249 return mDIDAuthenticateEAC2;
255 mDIDAuthenticateEAC2 = pDidAuthenticateEac2;
261 return mDIDAuthenticateResponseEAC1;
267 mDIDAuthenticateResponseEAC1 = pDidAuthenticateResponseEac1;
273 return mDIDAuthenticateResponseEACAdditionalInputType;
279 mDIDAuthenticateResponseEACAdditionalInputType = pDidAuthenticateResponseEacAdditionalInputType;
285 return mDIDAuthenticateEACAdditionalInputType;
291 mDIDAuthenticateEACAdditionalInputType = pDidAuthenticateEacAdditionalInputType;
297 return mDIDAuthenticateResponseEAC2;
303 mDIDAuthenticateResponseEAC2 = pDidAuthenticateResponseEac2;
309 return mInitializeFramework;
315 mInitializeFramework = pInitializeFramework;
321 return mInitializeFrameworkResponse;
327 mInitializeFrameworkResponse = pInitializeFrameworkResponse;
333 return mStartPaosResponse;
339 mStartPaosResponse = pStartPaosResponse;
345 return mTransmitResponse;
351 Q_ASSERT(!pTransmitResponse.isNull());
352 mTransmitResponse = pTransmitResponse;
364 Q_ASSERT(!pTransmit.isNull());
365 mTransmit = pTransmit;
371 return mAccessRightManager;
386 mStartPaos = pStartPaos;
399 void initCvcChainBuilder(
const QVector<QSharedPointer<const CVCertificate>>& pAdditionalCertificates = QVector<QSharedPointer<const CVCertificate>>());
402 [[nodiscard]]
const QSharedPointer<const CVCertificate>&
getDvCvc()
const
408 void setDvCvc(
const QSharedPointer<const CVCertificate>& dvCvc)
Definition: AuthContext.h:48
const QSharedPointer< const TcToken > & getTcToken() const
Definition: AuthContext.h:196
const QString & getReceivedMessageId() const
Definition: AuthContext.h:208
friend class TestAuthContext
Definition: AuthContext.h:54
bool isTcTokenNotFound() const
Definition: AuthContext.h:128
const QSharedPointer< InitializeFramework > & getInitializeFramework() const
Definition: AuthContext.h:307
void setTcTokenNotFound(bool pTcTokenNotFound)
Definition: AuthContext.h:134
void setTransmitResponse(const QSharedPointer< TransmitResponse > &pTransmitResponse)
Definition: AuthContext.h:349
const QSharedPointer< TransmitResponse > & getTransmitResponse()
Definition: AuthContext.h:343
void addCertificateData(const QUrl &pUrl, const QSslCertificate &pCert)
Definition: AuthContext.h:170
void setReceivedMessageId(const QString &pReceivedMessageId)
Definition: AuthContext.h:214
const QByteArray & getSslSession() const
Definition: AuthContext.cpp:84
void setTcToken(const QSharedPointer< const TcToken > &pTcToken)
Definition: AuthContext.h:202
bool isSkipMobileRedirect() const
Definition: AuthContext.h:152
void fireAccessRightManagerCreated(QSharedPointer< AccessRightManager > pAccessRightManager)
void setDidAuthenticateEacAdditional(const QSharedPointer< DIDAuthenticateEACAdditional > &pDidAuthenticateEacAdditionalInputType)
Definition: AuthContext.h:289
void setTcTokenUrl(const QUrl &pTcTokenUrl)
Definition: AuthContext.h:190
const QSharedPointer< const CVCertificate > & getDvCvc() const
Definition: AuthContext.h:402
void setDidAuthenticateEac1(const QSharedPointer< DIDAuthenticateEAC1 > &pDIDAuthenticateEAC1)
Definition: AuthContext.h:238
void setErrorReportedToServer(bool pErrorReportedToServer)
Definition: AuthContext.h:113
bool isCanAllowedMode() const override
Definition: AuthContext.cpp:78
const QSharedPointer< DIDAuthenticateEAC2 > & getDidAuthenticateEac2() const
Definition: AuthContext.h:247
void setRefreshUrl(const QUrl &pRefreshUrl)
Definition: AuthContext.h:226
const QSharedPointer< StartPaos > & getStartPaos() const
Definition: AuthContext.h:378
const QSharedPointer< DIDAuthenticateResponseEAC2 > & getDidAuthenticateResponseEacAdditionalInputType() const
Definition: AuthContext.h:271
QUrl getActivationUrl() const
Definition: AuthContext.h:101
bool isErrorReportedToServer() const
Definition: AuthContext.h:107
QByteArray encodeEffectiveChat()
Definition: AuthContext.cpp:96
QVector< AcceptedEidType > getAcceptedEidTypes() const override
Definition: AuthContext.h:140
void setSslSession(const QByteArray &pSession)
Definition: AuthContext.cpp:90
void setStartPaos(const QSharedPointer< StartPaos > &pStartPaos)
Definition: AuthContext.h:384
QSharedPointer< AccessRightManager > getAccessRightManager() const
Definition: AuthContext.h:369
const QSharedPointer< StartPaosResponse > & getStartPaosResponse() const
Definition: AuthContext.h:331
const QUrl & getRefreshUrl() const
Definition: AuthContext.h:220
bool showChangePinView() const
Definition: AuthContext.h:119
const QSharedPointer< Transmit > & getTransmit()
Definition: AuthContext.h:356
void setDidAuthenticateEac2(const QSharedPointer< DIDAuthenticateEAC2 > &pDidAuthenticateEac2)
Definition: AuthContext.h:253
void setDvCvc(const QSharedPointer< const CVCertificate > &dvCvc)
Definition: AuthContext.h:408
bool hasChainForCertificationAuthority(const EstablishPaceChannelOutput &pPaceOutput) const
Definition: AuthContext.cpp:127
const QSharedPointer< InitializeFrameworkResponse > & getInitializeFrameworkResponse() const
Definition: AuthContext.h:319
const QSharedPointer< DIDAuthenticateResponseEAC2 > & getDidAuthenticateResponseEac2() const
Definition: AuthContext.h:295
QList< QSslCertificate > getCertificateList() const
Definition: AuthContext.h:164
const QSharedPointer< DIDAuthenticateResponseEAC1 > & getDidAuthenticateResponseEac1() const
Definition: AuthContext.h:259
const QSharedPointer< DIDAuthenticateEACAdditional > & getDidAuthenticateEacAdditional() const
Definition: AuthContext.h:283
void setMobileSkipRedirect(bool pSkipRedirect=true)
Definition: AuthContext.h:158
void setInitializeFramework(const QSharedPointer< InitializeFramework > &pInitializeFramework)
Definition: AuthContext.h:313
CVCertificateChain getChainForCertificationAuthority(const EstablishPaceChannelOutput &pPaceOutput) const
Definition: AuthContext.cpp:133
void setDidAuthenticateResponseEac1(const QSharedPointer< DIDAuthenticateResponseEAC1 > &pDidAuthenticateResponseEac1)
Definition: AuthContext.h:265
void fireDidAuthenticateEac1Changed()
void requestChangePinView()
Definition: AuthContext.cpp:56
const QUrl & getTcTokenUrl() const
Definition: AuthContext.h:184
BrowserHandler getBrowserHandler() const
Definition: AuthContext.h:178
void setInitializeFrameworkResponse(const QSharedPointer< InitializeFrameworkResponse > &pInitializeFrameworkResponse)
Definition: AuthContext.h:325
void initCvcChainBuilder(const QVector< QSharedPointer< const CVCertificate > > &pAdditionalCertificates=QVector< QSharedPointer< const CVCertificate > >())
Definition: AuthContext.cpp:145
CVCertificateChain getChainStartingWith(const QSharedPointer< const CVCertificate > &pChainRoot) const
Definition: AuthContext.cpp:107
void setDidAuthenticateResponseEac2(const QSharedPointer< DIDAuthenticateResponseEAC2 > &pDidAuthenticateResponseEac2)
Definition: AuthContext.h:301
void initAccessRightManager(const QSharedPointer< const CVCertificate > &pTerminalCvc)
Definition: AuthContext.cpp:69
const QSharedPointer< DIDAuthenticateEAC1 > & getDidAuthenticateEac1() const
Definition: AuthContext.h:232
void setTransmit(const QSharedPointer< Transmit > &pTransmit)
Definition: AuthContext.h:362
void setDidAuthenticateResponseEacAdditionalInputType(const QSharedPointer< DIDAuthenticateResponseEAC2 > &pDidAuthenticateResponseEacAdditionalInputType)
Definition: AuthContext.h:277
void setStartPaosResponse(const QSharedPointer< StartPaosResponse > &pStartPaosResponse)
Definition: AuthContext.h:337
std::function< QString(const QSharedPointer< AuthContext > &)> BrowserHandler
Definition: AuthContext.h:57
void fireShowChangePinViewChanged()
Definition: CVCertificateChainBuilder.h:22
Definition: CVCertificateChain.h:24
Definition: EstablishPaceChannelOutput.h:48
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16