Bug 514887 - Okular Qt6 loops PIN dialog when signing PDF with DNIe (PKCS#11 smart card)
Summary: Okular Qt6 loops PIN dialog when signing PDF with DNIe (PKCS#11 smart card)
Status: REPORTED
Alias: None
Product: okular
Classification: Applications
Component: general (other bugs)
Version First Reported In: 24.12.1
Platform: KDE Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Okular developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-01-21 01:30 UTC by gerard.kde
Modified: 2026-01-21 01:30 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description gerard.kde 2026-01-21 01:30:27 UTC
On KDE neon Unstable (Plasma 6 / Qt 6), Okular can detect DNIe certificates
via OpenSC, but when attempting to digitally sign a PDF using the
"CertFirmaDigital" certificate, the PIN dialog loops indefinitely.

STEPS TO REPRODUCE
1. Insert card reader and ID
2. Open Okular
3. Open PDF to sign.
4. Give the password for the stored certificates
5. Give the PW of the ID card (which has only 1(one) PW
6. Menu to select which ceertificate to use
7. Select DNIe and the "FIRMA" certificate
8. Put in the card PW AGAIN
9 The same window will pop up asking for the DNIe PW again, and again,...
The signature is never completed.

Expected result

After entering the DNIe PIN once, Okular performs the signature.

Actual result

Okular repeatedly re-opens the PIN dialog.

SOFTWARE/OS VERSIONS
Operating System: KDE neon Unstable Edition
KDE Plasma Version: 6.6.80
KDE Frameworks Version: 6.23.0
Qt Version: 6.10.1
Kernel Version: 6.14.0-37-generic (64-bit)
Graphics Platform: X11
Processors: 8 × AMD Ryzen 5 2400G with Radeon Vega Graphics
Memory: 16 GiB of RAM (15.6 GiB usable)
Graphics Processor: Quadro P1000
p

ADDITIONAL INFORMATION
- AutoFirma can sign with the same DNIe on this system
- Okular can sign PDFs using FNMT .p12 certificates
- pkcs11-tool shows CertAutenticacion and CertFirmaDigital correctly
- The issue only affects DNIe via PKCS#11kinfo

qt.accessibility.cache: insert - id: 2147483879  iface: QAccessibleInterface(0x62e688dea7d0 name="Introduzca la contraseña (si existe) para desbloquear el certificado: DNI electrónico (PIN1):CertFirmaDigital" role=StaticText obj=QLabel(0x62e688ef8510)"invisible")
qt.accessibility.cache: insert - id: 2147483884  iface: QAccessibleInterface(0x62e689266010 name="" role=Grouping childc=2 obj=QDialogButtonBox(0x62e689235040)rect=QRect(10,72 649x34))
qt.accessibility.cache: insert - id: 2147483885  iface: QAccessibleInterface(0x62e6892552e0 name="Introduzca la contraseña (si existe) para desbloquear el certificado: DNI electrónico (PIN1):CertFirmaDigital" role=StaticText obj=QLabel(0x7ed9e80138b0)"invisible")
qt.accessibility.cache: insert - id: 2147483890  iface: QAccessibleInterface(0x62e68927a3b0 name="" role=Grouping childc=2 obj=QDialogButtonBox(0x62e68925b970)rect=QRect(10,72 649x34))