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.
This commit is contained in:
Christian Hohnstaedt 2024-03-11 22:09:35 +01:00
parent 935bcedbee
commit 7c2a805ede

View File

@ -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("");
}