2017-07-03 09:30:10 +02:00
|
|
|
/*!
|
|
|
|
* \brief Unit tests for \ref PcscReaderFeature
|
|
|
|
*
|
|
|
|
* \copyright Copyright (c) 2014 Governikus GmbH & Co. KG
|
|
|
|
*/
|
|
|
|
#include "PcscReaderFeature.h"
|
|
|
|
#include <QtCore/QtCore>
|
|
|
|
#include <QtTest/QtTest>
|
|
|
|
|
|
|
|
using namespace governikus;
|
|
|
|
|
|
|
|
class test_pcscReaderFeature
|
|
|
|
: public QObject
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
private Q_SLOTS:
|
|
|
|
void featuresEmpty()
|
|
|
|
{
|
|
|
|
PcscReaderFeature readerFeature(nullptr);
|
|
|
|
QCOMPARE(readerFeature.toString(), QString("[]"));
|
|
|
|
QCOMPARE(readerFeature.getFeatures().size(), 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void featuresCyberjackBasis()
|
|
|
|
{
|
|
|
|
QByteArray featuresTLV = QByteArray::fromHex("120442330012");
|
2017-07-03 09:33:28 +02:00
|
|
|
PcscReaderFeature readerFeature(featuresTLV.constData(), static_cast<PCSC_INT>(featuresTLV.length()));
|
2017-07-03 09:30:10 +02:00
|
|
|
QCOMPARE(readerFeature.toString(), QString("[TLV_PROPERTIES]"));
|
|
|
|
QCOMPARE(readerFeature.getFeatures().size(), 1);
|
|
|
|
|
|
|
|
QVERIFY(readerFeature.getFeatures().contains(FeatureID::TLV_PROPERTIES));
|
2017-07-03 09:33:28 +02:00
|
|
|
QCOMPARE(readerFeature.getFeatures().value(FeatureID::TLV_PROPERTIES), PCSC_INT(1110638610));
|
2017-07-03 09:30:10 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void featuresCyberjackStandard()
|
|
|
|
{
|
|
|
|
QByteArray featuresTLV = QByteArray::fromHex("060442000db2070442000db3080442000db4090442000db5200442000dcc");
|
2017-07-03 09:33:28 +02:00
|
|
|
PcscReaderFeature readerFeature(featuresTLV.constData(), static_cast<PCSC_INT>(featuresTLV.length()));
|
2017-07-03 09:30:10 +02:00
|
|
|
QCOMPARE(readerFeature.toString(), QString("[VERIFY_PIN_DIRECT MODIFY_PIN_DIRECT MCT_READERDIRECT MCT_UNIVERSAL EXECUTE_PACE]"));
|
|
|
|
QCOMPARE(readerFeature.getFeatures().size(), 5);
|
|
|
|
|
|
|
|
QVERIFY(readerFeature.getFeatures().contains(FeatureID::VERIFY_PIN_DIRECT));
|
|
|
|
QVERIFY(readerFeature.getFeatures().contains(FeatureID::MODIFY_PIN_DIRECT));
|
|
|
|
QVERIFY(readerFeature.getFeatures().contains(FeatureID::MCT_READERDIRECT));
|
|
|
|
QVERIFY(readerFeature.getFeatures().contains(FeatureID::MCT_UNIVERSAL));
|
|
|
|
QVERIFY(readerFeature.getFeatures().contains(FeatureID::EXECUTE_PACE));
|
|
|
|
|
2017-07-03 09:33:28 +02:00
|
|
|
QCOMPARE(readerFeature.getFeatures().value(FeatureID::VERIFY_PIN_DIRECT), PCSC_INT(1107299762));
|
|
|
|
QCOMPARE(readerFeature.getFeatures().value(FeatureID::MODIFY_PIN_DIRECT), PCSC_INT(1107299763));
|
|
|
|
QCOMPARE(readerFeature.getFeatures().value(FeatureID::MCT_READERDIRECT), PCSC_INT(1107299764));
|
|
|
|
QCOMPARE(readerFeature.getFeatures().value(FeatureID::MCT_UNIVERSAL), PCSC_INT(1107299765));
|
|
|
|
QCOMPARE(readerFeature.getFeatures().value(FeatureID::EXECUTE_PACE), PCSC_INT(1107299788));
|
2017-07-03 09:30:10 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void capabilitiesEmpty()
|
|
|
|
{
|
|
|
|
PcscReaderPaceCapability paceCapa(nullptr);
|
|
|
|
QCOMPARE(paceCapa.toString(), QString("[]"));
|
|
|
|
QVERIFY(paceCapa.getPaceCapabilities().isEmpty());
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void capabilitiesCyberjackStandard()
|
|
|
|
{
|
|
|
|
QByteArray capabilitiesTLV = QByteArray::fromHex("00000000010060");
|
2017-07-03 09:33:28 +02:00
|
|
|
PcscReaderPaceCapability paceCapa(capabilitiesTLV.constData(), static_cast<PCSC_INT>(capabilitiesTLV.length()));
|
2017-07-03 09:30:10 +02:00
|
|
|
QCOMPARE(paceCapa.toString(), QString("[EID GENERIC]"));
|
|
|
|
QCOMPARE(paceCapa.getPaceCapabilities().size(), 2);
|
|
|
|
QVERIFY(paceCapa.getPaceCapabilities().contains(PaceCapabilityId::EID));
|
|
|
|
QVERIFY(paceCapa.getPaceCapabilities().contains(PaceCapabilityId::GENERIC));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void capabilitiesCyberjackKomfort()
|
|
|
|
{
|
|
|
|
QByteArray capabilitiesTLV = QByteArray::fromHex("00000000010070");
|
2017-07-03 09:33:28 +02:00
|
|
|
PcscReaderPaceCapability paceCapa(capabilitiesTLV.constData(), static_cast<PCSC_INT>(capabilitiesTLV.length()));
|
2017-07-03 09:30:10 +02:00
|
|
|
QCOMPARE(paceCapa.toString(), QString("[ESIGN EID GENERIC]"));
|
|
|
|
QCOMPARE(paceCapa.getPaceCapabilities().size(), 3);
|
|
|
|
QVERIFY(paceCapa.getPaceCapabilities().contains(PaceCapabilityId::EID));
|
|
|
|
QVERIFY(paceCapa.getPaceCapabilities().contains(PaceCapabilityId::ESIGN));
|
|
|
|
QVERIFY(paceCapa.getPaceCapabilities().contains(PaceCapabilityId::GENERIC));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
QTEST_GUILESS_MAIN(test_pcscReaderFeature)
|
|
|
|
#include "test_pcscReaderFeature.moc"
|