Kleopatra: Styling of certificate categories is intermittently applied incorrectly
Testing, NormalPublic

Assigned To
Authored By
ikloecker
May 28 2026, 9:46 AM

Description

In VSD Kleopatra sometimes uses the color configured for "VS-NfD Compliant" and some other times it uses the color configured for "Trusted Root Certificates" for trusted root certificates. I haven't tried to find a way to reproduce this problem reliably because it feels random. I noticed this first after testing T8258: Kleopatra: Not possible to overwrite bold font configured for certificate category so it might depend on the certificate categories for which one changes the styling. The aforementioned certificate categories both have three conditions which means they have the same precedence so that the current issue isn't T8079: Kleopatra: Order of filters with custom id in settings dialog is wrong.

Comparing the order of the certificate categories in the Appearance config with the order of the corresponding key filters in the shipped/installed libkleopatrarc shows that certificate categories with the same precedence are not sorted by the number of their "Key Filter #NNN" group in the libkleopatrarc.

Event Timeline

ikloecker created this task.
ikloecker moved this task from Backlog to WIP on the gpd5x board.
ikloecker changed the task status from Open to Testing.May 28 2026, 5:07 PM

Fixed.

The certificate categories (aka Key Filter) should now be applied and listed (in the Appearance settings) ordered by decreasing specificity (see T8079#212920) and (in case of equal specificity) by the number of the Key Filter config group in libkleopatrarc.

ikloecker mentioned this in Unknown Object (Maniphest Task).Jun 1 2026, 9:43 AM

Backported for VSD 3.4

Looks good to me on gpg4win-5.1.0-beta658 @ win11:

src/libkleopatrarc.desktop
# specifity: custom

[Key Filter #14]
Name=Disabled
is-disabled=true
specificity=4294967294

[Key Filter #15]
Name=My Own
has-secret-key=true
specificity=4294967293

# specifity: 5

[Key Filter #16]
Name=Valid
is-disabled=false
is-expired=false
is-invalid=false
is-revoked=false
was-validated=true

# specifity: 4

[Key Filter #12]
Name=Not VS-NfD Compliant (Expired)
is-de-vs=false
is-expired=true
is-revoked=false
is-disabled=false

# specifity: 3

[Key Filter #1]
Name=Expired
is-expired=true
is-revoked=false
is-disabled=false

[Key Filter #3]
Name=Trusted Root Certificates
was-validated=true
is-root-certificate=true
is-validity=ultimate

[Key Filter #4]
Name=Not Trusted Root Certificates
was-validated=true
is-root-certificate=true
is-not-validity=ultimate

[Key Filter #10]
Name=VS-NfD Compliant
is-de-vs=true
was-validated=true
is-disabled=false

[Key Filter #11]
Name=Not VS-NfD Compliant
is-de-vs=false
was-validated=true
is-disabled=false

[Key Filter #13]
Name=Not VS-NfD Compliant (Revoked)
is-de-vs=false
is-revoked=true
is-disabled=false

# specifity: 2

[Key Filter #2]
Name=Revoked
is-revoked=true
is-disabled=false

[Key Filter #5]
Name=For Qualified Signatures
was-validated=true
is-qualified=true

[Key Filter #7]
Name=On Smart Card
is-cardkey=true
is-disabled=false

[Key Filter #8]
Name=OpenPGP
is-openpgp-key=true
is-disabled=false

# specifity: 1

[Key Filter #9]
Name=S/MIME
is-openpgp-key=false
timegrid edited projects, added gpd5x (gpd-5.1.0); removed gpd5x.