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 mReceivedBrowserSendFailed;
63 bool mSkipMobileRedirect;
64 bool mShowChangePinView;
68 QSharedPointer<const TcToken> mTcToken;
70 QString mReceivedMessageId;
71 QSharedPointer<StartPaos> mStartPaos;
72 QSharedPointer<InitializeFramework> mInitializeFramework;
73 QSharedPointer<InitializeFrameworkResponse> mInitializeFrameworkResponse;
74 QSharedPointer<DIDAuthenticateEAC1> mDIDAuthenticateEAC1;
75 QSharedPointer<DIDAuthenticateResponseEAC1> mDIDAuthenticateResponseEAC1;
76 QSharedPointer<DIDAuthenticateEAC2> mDIDAuthenticateEAC2;
77 QSharedPointer<DIDAuthenticateResponseEAC2> mDIDAuthenticateResponseEACAdditionalInputType;
78 QSharedPointer<DIDAuthenticateEACAdditional> mDIDAuthenticateEACAdditionalInputType;
79 QSharedPointer<DIDAuthenticateResponseEAC2> mDIDAuthenticateResponseEAC2;
80 QSharedPointer<Transmit> mTransmit;
81 QSharedPointer<TransmitResponse> mTransmitResponse;
82 QSharedPointer<StartPaosResponse> mStartPaosResponse;
83 QSharedPointer<AccessRightManager> mAccessRightManager;
84 QMultiMap<QUrl, QSslCertificate> mCertificates;
85 QSharedPointer<const CVCertificate> mDvCvc;
88 QByteArray mSslSession;
104 return mActivationUrl;
110 return mErrorReportedToServer;
116 return mReceivedBrowserSendFailed;
125 mErrorReportedToServer = pErrorReportedToServer;
131 return mShowChangePinView;
140 return mTcTokenNotFound;
146 mTcTokenNotFound = pTcTokenNotFound;
154 return {AcceptedEidType::CARD_CERTIFIED};
157 return mDIDAuthenticateEAC1->getAcceptedEidTypes();
163 return mSkipMobileRedirect;
169 mSkipMobileRedirect = pSkipRedirect;
175 return mCertificates.values();
181 QUrl originUrl = UrlUtil::getUrlOrigin(pUrl);
182 qDebug() <<
"Adding certificate CN=" << pCert.subjectInfo(QSslCertificate::CommonName) <<
"SN=" << pCert.serialNumber() <<
"for URL origin" << originUrl;
183 mCertificates.insert(originUrl, pCert);
189 return mBrowserHandler;
201 mTcTokenUrl = pTcTokenUrl;
205 [[nodiscard]]
const QSharedPointer<const TcToken>&
getTcToken()
const
211 void setTcToken(
const QSharedPointer<const TcToken>& pTcToken)
219 return mReceivedMessageId;
225 mReceivedMessageId = pReceivedMessageId;
237 mRefreshUrl = pRefreshUrl;
243 return mDIDAuthenticateEAC1;
249 mDIDAuthenticateEAC1 = pDIDAuthenticateEAC1;
251 Q_EMIT fireAcceptedEidTypesChanged();
252 Q_EMIT fireEidTypeMismatchChanged();
258 return mDIDAuthenticateEAC2;
264 mDIDAuthenticateEAC2 = pDidAuthenticateEac2;
270 return mDIDAuthenticateResponseEAC1;
276 mDIDAuthenticateResponseEAC1 = pDidAuthenticateResponseEac1;
282 return mDIDAuthenticateResponseEACAdditionalInputType;
288 mDIDAuthenticateResponseEACAdditionalInputType = pDidAuthenticateResponseEacAdditionalInputType;
294 return mDIDAuthenticateEACAdditionalInputType;
300 mDIDAuthenticateEACAdditionalInputType = pDidAuthenticateEacAdditionalInputType;
306 return mDIDAuthenticateResponseEAC2;
312 mDIDAuthenticateResponseEAC2 = pDidAuthenticateResponseEac2;
318 return mInitializeFramework;
324 mInitializeFramework = pInitializeFramework;
330 return mInitializeFrameworkResponse;
336 mInitializeFrameworkResponse = pInitializeFrameworkResponse;
342 return mStartPaosResponse;
348 mStartPaosResponse = pStartPaosResponse;
354 return mTransmitResponse;
360 Q_ASSERT(!pTransmitResponse.isNull());
361 mTransmitResponse = pTransmitResponse;
373 Q_ASSERT(!pTransmit.isNull());
374 mTransmit = pTransmit;
380 return mAccessRightManager;
395 mStartPaos = pStartPaos;
408 void initCvcChainBuilder(
const QList<QSharedPointer<const CVCertificate>>& pAdditionalCertificates = QList<QSharedPointer<const CVCertificate>>());
411 [[nodiscard]]
const QSharedPointer<const CVCertificate>&
getDvCvc()
const
417 void setDvCvc(
const QSharedPointer<const CVCertificate>& dvCvc)
Definition AuthContext.h:48
const QSharedPointer< const TcToken > & getTcToken() const
Definition AuthContext.h:205
const QString & getReceivedMessageId() const
Definition AuthContext.h:217
friend class TestAuthContext
Definition AuthContext.h:54
bool isTcTokenNotFound() const
Definition AuthContext.h:138
bool isReceivedBrowserSendFailed() const
Definition AuthContext.h:114
const QSharedPointer< InitializeFramework > & getInitializeFramework() const
Definition AuthContext.h:316
void setTcTokenNotFound(bool pTcTokenNotFound)
Definition AuthContext.h:144
void setTransmitResponse(const QSharedPointer< TransmitResponse > &pTransmitResponse)
Definition AuthContext.h:358
const QSharedPointer< TransmitResponse > & getTransmitResponse()
Definition AuthContext.h:352
void addCertificateData(const QUrl &pUrl, const QSslCertificate &pCert)
Definition AuthContext.h:179
void setReceivedMessageId(const QString &pReceivedMessageId)
Definition AuthContext.h:223
const QByteArray & getSslSession() const
Definition AuthContext.cpp:95
void setTcToken(const QSharedPointer< const TcToken > &pTcToken)
Definition AuthContext.h:211
bool isSkipMobileRedirect() const
Definition AuthContext.h:161
void fireAccessRightManagerCreated(QSharedPointer< AccessRightManager > pAccessRightManager)
void setDidAuthenticateEacAdditional(const QSharedPointer< DIDAuthenticateEACAdditional > &pDidAuthenticateEacAdditionalInputType)
Definition AuthContext.h:298
void setTcTokenUrl(const QUrl &pTcTokenUrl)
Definition AuthContext.h:199
const QSharedPointer< const CVCertificate > & getDvCvc() const
Definition AuthContext.h:411
void setDidAuthenticateEac1(const QSharedPointer< DIDAuthenticateEAC1 > &pDIDAuthenticateEAC1)
Definition AuthContext.h:247
void setErrorReportedToServer(bool pErrorReportedToServer)
Definition AuthContext.h:123
bool isCanAllowedMode() const override
Definition AuthContext.cpp:89
const QSharedPointer< DIDAuthenticateEAC2 > & getDidAuthenticateEac2() const
Definition AuthContext.h:256
void setReceivedBrowserSendFailed(bool pReceivedBrowserSendFailed)
Definition AuthContext.cpp:57
QList< AcceptedEidType > getAcceptedEidTypes() const override
Definition AuthContext.h:150
void setRefreshUrl(const QUrl &pRefreshUrl)
Definition AuthContext.h:235
const QSharedPointer< StartPaos > & getStartPaos() const
Definition AuthContext.h:387
const QSharedPointer< DIDAuthenticateResponseEAC2 > & getDidAuthenticateResponseEacAdditionalInputType() const
Definition AuthContext.h:280
QUrl getActivationUrl() const
Definition AuthContext.h:102
bool isErrorReportedToServer() const
Definition AuthContext.h:108
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:393
QSharedPointer< AccessRightManager > getAccessRightManager() const
Definition AuthContext.h:378
const QSharedPointer< StartPaosResponse > & getStartPaosResponse() const
Definition AuthContext.h:340
const QUrl & getRefreshUrl() const
Definition AuthContext.h:229
bool showChangePinView() const
Definition AuthContext.h:129
const QSharedPointer< Transmit > & getTransmit()
Definition AuthContext.h:365
void setDidAuthenticateEac2(const QSharedPointer< DIDAuthenticateEAC2 > &pDidAuthenticateEac2)
Definition AuthContext.h:262
void setDvCvc(const QSharedPointer< const CVCertificate > &dvCvc)
Definition AuthContext.h:417
bool hasChainForCertificationAuthority(const EstablishPaceChannelOutput &pPaceOutput) const
Definition AuthContext.cpp:138
const QSharedPointer< InitializeFrameworkResponse > & getInitializeFrameworkResponse() const
Definition AuthContext.h:328
const QSharedPointer< DIDAuthenticateResponseEAC2 > & getDidAuthenticateResponseEac2() const
Definition AuthContext.h:304
QList< QSslCertificate > getCertificateList() const
Definition AuthContext.h:173
const QSharedPointer< DIDAuthenticateResponseEAC1 > & getDidAuthenticateResponseEac1() const
Definition AuthContext.h:268
const QSharedPointer< DIDAuthenticateEACAdditional > & getDidAuthenticateEacAdditional() const
Definition AuthContext.h:292
void setMobileSkipRedirect(bool pSkipRedirect=true)
Definition AuthContext.h:167
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:322
CVCertificateChain getChainForCertificationAuthority(const EstablishPaceChannelOutput &pPaceOutput) const
Definition AuthContext.cpp:144
void setDidAuthenticateResponseEac1(const QSharedPointer< DIDAuthenticateResponseEAC1 > &pDidAuthenticateResponseEac1)
Definition AuthContext.h:274
void fireDidAuthenticateEac1Changed()
void requestChangePinView()
Definition AuthContext.cpp:67
const QUrl & getTcTokenUrl() const
Definition AuthContext.h:193
BrowserHandler getBrowserHandler() const
Definition AuthContext.h:187
void setInitializeFrameworkResponse(const QSharedPointer< InitializeFrameworkResponse > &pInitializeFrameworkResponse)
Definition AuthContext.h:334
CVCertificateChain getChainStartingWith(const QSharedPointer< const CVCertificate > &pChainRoot) const
Definition AuthContext.cpp:118
void setDidAuthenticateResponseEac2(const QSharedPointer< DIDAuthenticateResponseEAC2 > &pDidAuthenticateResponseEac2)
Definition AuthContext.h:310
void initAccessRightManager(const QSharedPointer< const CVCertificate > &pTerminalCvc)
Definition AuthContext.cpp:80
const QSharedPointer< DIDAuthenticateEAC1 > & getDidAuthenticateEac1() const
Definition AuthContext.h:241
void setTransmit(const QSharedPointer< Transmit > &pTransmit)
Definition AuthContext.h:371
void setDidAuthenticateResponseEacAdditionalInputType(const QSharedPointer< DIDAuthenticateResponseEAC2 > &pDidAuthenticateResponseEacAdditionalInputType)
Definition AuthContext.h:286
void setStartPaosResponse(const QSharedPointer< StartPaosResponse > &pStartPaosResponse)
Definition AuthContext.h:346
std::function< QString(const QSharedPointer< AuthContext > &)> BrowserHandler
Definition AuthContext.h:57
void fireShowChangePinViewChanged()
Definition CVCertificateChainBuilder.h:22
Definition CVCertificateChain.h:24
Definition EstablishPaceChannelOutput.h:49
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17