Subject: apt-key: the del command is fragile at best

From: Flavio Stanchina <[email-masked]>
Date: Tue, 12 Jan 2021 12:06:43 +0100

Package: apt
Version: 1.8.2.2
Severity: normal
File: /usr/bin/apt-key

I wished to remove an old key from my APT keyring:

# apt-key list
/etc/apt/trusted.gpg
--------------------
...
pub   dsa1024 2010-12-23 [SC]
      74F7 3584 25EE B617 6094  C884 E0F7 2778 C467 6186
uid           [ unknown] PlayOnLinux Packaging [...]
...

# apt-key del 74F7358425EEB6176094
OK

-> the key was still there

# apt-key del 74f7
OK

-> the key was still there

# apt-key del 6186
gpg: key "6186" not found: Not found
gpg: 6186: delete key failed: Not found

-> the key was still there, but at least I got an error of some kind!

At this point I added some messages to apt-key itself and got this:

# apt-key del 'C884 E0F7 2778 C467 6186'
*** running remove_key_from_keyring on /etc/apt/trusted.gpg
*** key C884E0F72778C4676186 is in keyring /etc/apt/trusted.gpg!
*** removing key C884E0F72778C4676186 in keyring /etc/apt/trusted.gpg...
gpg: key "C884E0F72778C4676186" not found: Not found
gpg: C884E0F72778C4676186: delete key failed: Not found

There is obviously a misunderstanding between apt-key and gpg about what
makes a proper key id; I'm no gpg expert, so I have no idea of what is.

There is also a lack of proper diagnostics: if I get an unqualified "OK"
as in my first two tries, I expect the action to have been carried out.
If apt-key doesn't find something that looks like the supplied key id in
any keyring, I expect a clear message saying so.

-- System Information:
Distributor ID:	Debian
Description:	Devuan GNU/Linux 3 (beowulf)
Release:	3
Codename:	beowulf
Architecture: x86_64

Kernel: Linux 4.19.0-13-amd64 (SMP w/2 CPU cores)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)
LSM: AppArmor: enabled

Versions of packages apt depends on:
ii  adduser                 3.118
ii  debian-archive-keyring  2019.1
ii  gpgv                    2.2.12-1+deb10u1
ii  libapt-pkg5.0           1.8.2.2
ii  libc6                   2.28-10
ii  libgcc1                 1:8.3.0-6
ii  libgnutls30             3.6.7-4+deb10u5
ii  libseccomp2             2.3.3-4
ii  libstdc++6              8.3.0-6

Versions of packages apt recommends:
ii  ca-certificates  20200601~deb10u1

Versions of packages apt suggests:
ii  apt-doc         1.8.2.2
ii  aptitude        0.8.11-7
ii  dpkg-dev        1.19.7
ii  gnupg           2.2.12-1+deb10u1
ii  powermgmt-base  1.34
ii  synaptic        0.84.6

-- no debconf information