(This is most easily reproduced via Kleopatra but it works the same on the cli with gpg alone)
How to reproduce:
- Configure an ADSK (via gpg.conf)
- Import the public key of the ADSK
C:\Users\g10code.WIN-TEST3>gpg -k CC5274CB8072E9778DADD15BCD573B2B0736643A
pub rsa3072 2023-03-08 [SC]
98111E67AE06F2BEFD2BDE10C5D6C919005F36A4
uid [ unbekannt ] Ted Tester <Ted.Tester@demo.gnupg.com>
sub rsa3072 2023-03-08 [E]
CC5274CB8072E9778DADD15BCD573B2B0736643A- Create a new keypair, which then has the ADSK as additional encryption subkey
C:\Users\g10code.WIN-TEST3>gpg -k CC5274CB8072E9778DADD15BCD573B2B0736643A gpg: error reading key: Unbrauchbarer öffentlicher Schlüssel
-> So it looks like keyboxd can not handle a subkey present in more than one keypair.
- Delete the newly generated key again
C:\Users\g10code.WIN-TEST3>gpg -k CC5274CB8072E9778DADD15BCD573B2B0736643A gpg: error reading key: Kein öffentlicher Schlüssel
-> And here it seems that deleting such a subkey completly deletes the subkey from pubring.db
Although the subkey is still listed when searching by UID or listing the whole keyring, so maybe "only" finding it via the fingerprint is broken?
C:\Users\g10code.WIN-TEST3>gpg -k
[keyboxd]
---------
pub rsa3072 2023-03-08 [SC]
98111E67AE06F2BEFD2BDE10C5D6C919005F36A4
uid [ unbekannt ] Ted Tester <Ted.Tester@demo.gnupg.com>
sub rsa3072 2023-03-08 [E]
CC5274CB8072E9778DADD15BCD573B2B0736643AReimporting the pubkey does not change anything, still error "no public key".
This is purely a keyboxd issue, I removed "use keyboxd" from common.conf and did the same steps again, which worked perfectly, the pubkey could always be found.