Skip to content

Commit 7de7ebd

Browse files
committed
Remove CardInfo
Signed-off-by: Raul Metsma <[email protected]>
1 parent 9fd7a8b commit 7de7ebd

21 files changed

+57
-50
lines changed

src/app/main.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626

2727
#include <QTimer>
2828

29+
#include <iostream>
30+
2931
int main(int argc, char* argv[])
3032
{
3133
Q_INIT_RESOURCE(web_eid_resources);

src/controller/application.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,8 @@ CommandWithArgumentsPtr Application::parseArgs()
185185
void Application::registerMetatypes()
186186
{
187187
qRegisterMetaType<electronic_id::AutoSelectFailed::Reason>();
188-
qRegisterMetaType<electronic_id::CardInfo::ptr>();
189-
qRegisterMetaType<std::vector<electronic_id::CardInfo::ptr>>();
188+
qRegisterMetaType<electronic_id::ElectronicID::ptr>();
189+
qRegisterMetaType<std::vector<electronic_id::ElectronicID::ptr>>();
190190
qRegisterMetaType<electronic_id::VerifyPinFailed::Status>();
191191

192192
qRegisterMetaType<CardCertificateAndPinInfo>();

src/controller/certandpininfo.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ struct PinInfo
5050

5151
struct CardCertificateAndPinInfo
5252
{
53-
electronic_id::CardInfo::ptr cardInfo;
53+
electronic_id::ElectronicID::ptr cardInfo;
5454
QByteArray certificateBytesInDer;
5555
QSslCertificate certificate {};
5656
CertificateInfo certInfo;

src/controller/command-handlers/authenticate.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,15 @@ QVariantMap Authenticate::onConfirm(WebEidUI* window,
122122
{
123123
try {
124124
const auto signatureAlgorithm =
125-
QString::fromStdString(cardCertAndPin.cardInfo->eid().authSignatureAlgorithm());
125+
QString::fromStdString(cardCertAndPin.cardInfo->authSignatureAlgorithm());
126126
pcsc_cpp::byte_vector pin;
127127
// Reserve space for APDU overhead (5 bytes) + PIN padding (16 bytes) to prevent PIN memory
128128
// reallocation. The 16-byte limit comes from the max PIN length of 12 bytes across all card
129129
// implementations in lib/libelectronic-id/src/electronic-ids/pcsc/.
130130
pin.reserve(5 + 16);
131-
getPin(pin, cardCertAndPin.cardInfo->eid(), window);
132-
const auto signature = createSignature(origin.url(), challengeNonce,
133-
cardCertAndPin.cardInfo->eid(), std::move(pin));
131+
getPin(pin, *cardCertAndPin.cardInfo, window);
132+
const auto signature =
133+
createSignature(origin.url(), challengeNonce, *cardCertAndPin.cardInfo, std::move(pin));
134134
return createAuthenticationToken(signatureAlgorithm, cardCertAndPin.certificateBytesInDer,
135135
signature);
136136

src/controller/command-handlers/certificatereader.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,17 @@ using namespace electronic_id;
3131
namespace
3232
{
3333

34-
CardCertificateAndPinInfo getCertificateWithStatusAndInfo(const CardInfo::ptr& card,
34+
CardCertificateAndPinInfo getCertificateWithStatusAndInfo(const ElectronicID::ptr& card,
3535
const CertificateType certificateType)
3636
{
37-
const auto certificateBytes = card->eid().getCertificate(certificateType);
37+
const auto certificateBytes = card->getCertificate(certificateType);
3838

3939
QByteArray certificateDer(reinterpret_cast<const char*>(certificateBytes.data()),
4040
int(certificateBytes.size()));
4141
QSslCertificate certificate(certificateDer, QSsl::Der);
4242
if (certificate.isNull()) {
4343
THROW(SmartCardChangeRequiredError,
44-
"Invalid certificate returned by electronic ID " + card->eid().name());
44+
"Invalid certificate returned by electronic ID " + card->name());
4545
}
4646

4747
auto subject = certificate.subjectInfo(QSslCertificate::CommonName).join(' ');
@@ -61,11 +61,11 @@ CardCertificateAndPinInfo getCertificateWithStatusAndInfo(const CardInfo::ptr& c
6161
CertificateInfo certInfo {
6262
certificateType, certificate.expiryDate() < QDateTime::currentDateTimeUtc(),
6363
certificate.effectiveDate() > QDateTime::currentDateTimeUtc(), std::move(subject)};
64-
PinInfo pinInfo {certificateType.isAuthentication() ? card->eid().authPinMinMaxLength()
65-
: card->eid().signingPinMinMaxLength(),
66-
certificateType.isAuthentication() ? card->eid().authPinRetriesLeft()
67-
: card->eid().signingPinRetriesLeft(),
68-
card->eid().smartcard().readerHasPinPad()};
64+
PinInfo pinInfo {certificateType.isAuthentication() ? card->authPinMinMaxLength()
65+
: card->signingPinMinMaxLength(),
66+
certificateType.isAuthentication() ? card->authPinRetriesLeft()
67+
: card->signingPinRetriesLeft(),
68+
card->smartcard().readerHasPinPad()};
6969
if (pinInfo.pinRetriesCount.first == 0) {
7070
pinInfo.pinIsBlocked = true;
7171
}
@@ -83,7 +83,7 @@ CertificateReader::CertificateReader(const CommandWithArguments& cmd) : CommandH
8383
}
8484
}
8585

86-
void CertificateReader::run(const std::vector<CardInfo::ptr>& cards)
86+
void CertificateReader::run(const std::vector<ElectronicID::ptr>& cards)
8787
{
8888
REQUIRE_NOT_EMPTY_CONTAINS_NON_NULL_PTRS(cards)
8989

src/controller/command-handlers/certificatereader.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class CertificateReader : public CommandHandler
3333
public:
3434
explicit CertificateReader(const CommandWithArguments& cmd);
3535

36-
void run(const std::vector<electronic_id::CardInfo::ptr>& cards) override;
36+
void run(const std::vector<electronic_id::ElectronicID::ptr>& cards) override;
3737
void connectSignals(const WebEidUI* window) override;
3838

3939
protected:

src/controller/command-handlers/getcertificate.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,6 @@ QVariantMap GetCertificate::onConfirm(WebEidUI* /* window */,
5353
// Each string in the array is a Base64-encoded (Section 4 of [RFC4648] -- not
5454
// Base64url-encoded) DER [ITU.X690.2008] PKIX certificate value.
5555
auto certPem = cardCertAndPin.certificateBytesInDer.toBase64();
56-
auto algos = supportedSigningAlgos(cardCertAndPin.cardInfo->eid());
56+
auto algos = supportedSigningAlgos(*cardCertAndPin.cardInfo);
5757
return {{"certificate", QString(certPem)}, {"supportedSignatureAlgorithms", algos}};
5858
}

src/controller/command-handlers/sign.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,9 @@ void Sign::emitCertificatesReady(const std::vector<CardCertificateAndPinInfo>& c
8686
return;
8787
}
8888

89-
if (!cardWithCertificateFromArgs->cardInfo->eid().isSupportedSigningHashAlgorithm(hashAlgo)) {
89+
if (!cardWithCertificateFromArgs->cardInfo->isSupportedSigningHashAlgorithm(hashAlgo)) {
9090
THROW(ArgumentFatalError,
91-
"Electronic ID " + cardWithCertificateFromArgs->cardInfo->eid().name()
91+
"Electronic ID " + cardWithCertificateFromArgs->cardInfo->name()
9292
+ " does not support hash algorithm " + std::string(hashAlgo));
9393
}
9494

@@ -103,11 +103,10 @@ QVariantMap Sign::onConfirm(WebEidUI* window, const CardCertificateAndPinInfo& c
103103
// reallocation. The 16-byte limit comes from the max PIN length of 12 bytes across all card
104104
// implementations in lib/libelectronic-id/src/electronic-ids/pcsc/.
105105
pin.reserve(5 + 16);
106-
getPin(pin, cardCertAndPin.cardInfo->eid(), window);
107-
const auto signature =
108-
signHash(cardCertAndPin.cardInfo->eid(), std::move(pin), docHash, hashAlgo);
109-
return {{QStringLiteral("signature"), signature.first},
110-
{QStringLiteral("signatureAlgorithm"), signature.second}};
106+
getPin(pin, *cardCertAndPin.cardInfo, window);
107+
auto signature = signHash(*cardCertAndPin.cardInfo, std::move(pin), docHash, hashAlgo);
108+
return {{QStringLiteral("signature"), std::move(signature.first)},
109+
{QStringLiteral("signatureAlgorithm"), std::move(signature.second)}};
111110

112111
} catch (const VerifyPinFailed& failure) {
113112
switch (failure.status()) {

src/controller/commandhandler.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class CommandHandler : public QObject
3333
public:
3434
using ptr = std::unique_ptr<CommandHandler>;
3535

36-
virtual void run(const std::vector<electronic_id::CardInfo::ptr>& cards) = 0;
36+
virtual void run(const std::vector<electronic_id::ElectronicID::ptr>& cards) = 0;
3737
virtual void connectSignals(const WebEidUI* window) = 0;
3838
virtual QVariantMap onConfirm(WebEidUI* window,
3939
const CardCertificateAndPinInfo& cardCertAndPin) = 0;

0 commit comments

Comments
 (0)