diff options
author | David Kalnischkies <david@kalnischkies.de> | 2016-08-17 08:10:29 +0200 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2016-08-17 14:12:24 +0200 |
commit | e289907f5e7241034cb0d37055dc2cba4e3a19af (patch) | |
tree | 8fef91c97dda2b848d73e5e3a15fe3e9449c48fd | |
parent | 19fdf93d7363261227811a62157063081b9f1a5d (diff) |
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.
-rw-r--r-- | cmdline/apt-key.in | 4 | ||||
-rwxr-xr-x | 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" |