From 7c2a805edeba16001dee2dd274b3781c85f8fdca Mon Sep 17 00:00:00 2001 From: Christian Hohnstaedt Date: Mon, 11 Mar 2024 22:09:35 +0100 Subject: [PATCH] Fix login via PinPad on e.g ReinerSCT Setting in opensc.conf: reader_driver pcsc { enable_pinpad = true; } Only call login once and return an empty pin instead of a NULL pin, which indicated a failure while an empty (non-NULL) return-value indicates success. --- lib/pkcs11.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/pkcs11.cpp b/lib/pkcs11.cpp index dd85ecc9..c4d4c9bb 100644 --- a/lib/pkcs11.cpp +++ b/lib/pkcs11.cpp @@ -243,7 +243,7 @@ QString pkcs11::tokenLogin(const QString &name, bool so, bool force) if (!need_login) logout(); if (tokenInfo().protAuthPath()) { - pin.clear(); + pin = ""; // Indicate success QDialog *pinpadbox = newPinPadBox(); pinpadbox->show(); pinPadLoginThread ppt(this, so); @@ -258,8 +258,8 @@ QString pkcs11::tokenLogin(const QString &name, bool so, bool force) } else { if (PwDialogCore::execute(&p, &pin, false) != 1) return QString(); + login(pin.constUchar(), pin.size(), so); } - login(pin.constUchar(), pin.size(), so); } else { return QString(""); }