AusweisApp2/test/helper/TestAuthContext.cpp
2017-07-03 09:33:28 +02:00

67 lines
1.9 KiB
C++

/*!
* \copyright Copyright (c) 2016 Governikus GmbH & Co. KG
*/
#include "TestAuthContext.h"
#include "TestFileHelper.h"
#include "paos/retrieve/DidAuthenticateEac1Parser.h"
using namespace governikus;
TestAuthContext::TestAuthContext(ActivationContext* pActivationContext, const QString& pFileName)
: AuthContext(pActivationContext)
, mDidAuthenticateEac1()
{
mDidAuthenticateEac1.reset(static_cast<DIDAuthenticateEAC1*>(DidAuthenticateEac1Parser().parse(TestFileHelper::readFile(pFileName))));
setDidAuthenticateEac1(mDidAuthenticateEac1);
setTerminalCvc(mDidAuthenticateEac1->getCvCertificates().at(0));
setDvCvc(mDidAuthenticateEac1->getCvCertificates().at(1));
}
TestAuthContext::~TestAuthContext()
{
}
void TestAuthContext::setRequiredAccessRights(const QSet<AccessRight>& pAccessRights)
{
if (pAccessRights.isEmpty())
{
mDidAuthenticateEac1->mEac1InputType.mRequiredChat.reset();
}
else
{
if (!mDidAuthenticateEac1->getRequiredChat())
{
mDidAuthenticateEac1->mEac1InputType.mRequiredChat.reset(new CHAT(getTerminalCvc()->getBody().getCHAT()));
}
mDidAuthenticateEac1->getRequiredChat()->removeAllAccessRights();
mDidAuthenticateEac1->getRequiredChat()->setAccessRights(pAccessRights);
}
setDidAuthenticateEac1(mDidAuthenticateEac1);
setTerminalCvc(mDidAuthenticateEac1->getCvCertificates().at(0));
}
void TestAuthContext::setOptionalAccessRights(const QSet<AccessRight>& pAccessRights)
{
if (pAccessRights.isEmpty())
{
mDidAuthenticateEac1->mEac1InputType.mOptionalChat.reset();
}
else
{
if (!mDidAuthenticateEac1->getOptionalChat())
{
mDidAuthenticateEac1->mEac1InputType.mOptionalChat.reset(new CHAT(getTerminalCvc()->getBody().getCHAT()));
}
mDidAuthenticateEac1->getOptionalChat()->removeAllAccessRights();
mDidAuthenticateEac1->getOptionalChat()->setAccessRights(pAccessRights);
}
setDidAuthenticateEac1(mDidAuthenticateEac1);
setTerminalCvc(mDidAuthenticateEac1->getCvCertificates().at(0));
}