From e289907f5e7241034cb0d37055dc2cba4e3a19af Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 17 Aug 2016 08:10:29 +0200 Subject: allow spaces in fingerprints for 'apt-key del' Fingerprints tend to be displayed in space-separated octet pairs so be nice and allow delete to remove a key based on such a string rather than requiring that the user is deleting all the spaces manually. --- cmdline/apt-key.in | 4 ++-- test/integration/test-apt-key | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/cmdline/apt-key.in b/cmdline/apt-key.in index aff75c300..81314c7f5 100644 --- a/cmdline/apt-key.in +++ b/cmdline/apt-key.in @@ -200,8 +200,8 @@ remove_key_from_keyring() { local FINGERPRINTS="${GPGHOMEDIR}/keyringfile.keylst" get_fingerprints_of_keyring "$KEYRINGFILE" > "$FINGERPRINTS" - # strip leading 0x, if present: - KEY="${KEY#0x}" + # strip leading 0x, if present: + KEY="$(echo "${KEY#0x}" | tr -d ' ')" # check if the key is in this keyring if ! grep -iq "^[0-9A-F]*${KEY}$" "$FINGERPRINTS"; then diff --git a/test/integration/test-apt-key b/test/integration/test-apt-key index eb5f998cf..759ce1487 100755 --- a/test/integration/test-apt-key +++ b/test/integration/test-apt-key @@ -116,6 +116,14 @@ gpg: unchanged: 1' aptkey --fakeroot update testfailure test -e "${ROOTDIR}/etc/apt/trusted.gpg.d/joesixpack.gpg" testsuccess cmp "${KEYDIR}/joesixpack.pub" "${ROOTDIR}/etc/apt/trusted.gpg.d/joesixpack.gpg~" + msgtest 'Test key removal with' 'spaced fingerprint' + cleanplate + cp -a "${KEYDIR}/joesixpack.pub" "${ROOTDIR}/etc/apt/trusted.gpg.d/joesixpack.gpg" + testsuccess --nomsg aptkey --fakeroot del '34A8 E9D1 8DB3 20F3 67E8 EAA0 5A90 D141 DBAC 8DAE' + testempty aptkey list + testfailure test -e "${ROOTDIR}/etc/apt/trusted.gpg.d/joesixpack.gpg" + testsuccess cmp "${KEYDIR}/joesixpack.pub" "${ROOTDIR}/etc/apt/trusted.gpg.d/joesixpack.gpg~" + msgtest 'Test key removal with' 'single key in softlink' cleanplate ln -s "$(readlink -f "${KEYDIR}/joesixpack.pub")" "${ROOTDIR}/etc/apt/trusted.gpg.d/joesixpack.gpg" -- cgit v1.2.3