From c24f6ce22cd6720004addad2e3382b3caa6b1b7c Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 4 Jan 2010 13:45:14 +0100 Subject: =?UTF-8?q?add=20TrustedParts=20so=20in=20the=20future=20new=20key?= =?UTF-8?q?rings=20can=20just=20be=20dropped=20into=20/etc/apt/trusted.gpg?= =?UTF-8?q?.d/=20which=20eliminates=20the=20need=20to=20have=20gpg=20insta?= =?UTF-8?q?lled=20to=20add=20keys=20to=20APTs=20trusted=20keyring=20(with?= =?UTF-8?q?=20apt-key)=20(Closes=20#304846)=20-=20Thanks=20to=20Timo=20Wei?= =?UTF-8?q?ng=C3=A4rtner=20&=20Peter=20Palfrader=20for=20providing=20diffe?= =?UTF-8?q?rent=20patchs/ideas=20for=20this!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmdline/apt-key | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) (limited to 'cmdline/apt-key') diff --git a/cmdline/apt-key b/cmdline/apt-key index 24010edf3..1950723f3 100755 --- a/cmdline/apt-key +++ b/cmdline/apt-key @@ -5,10 +5,8 @@ unset GREP_OPTIONS # We don't use a secret keyring, of course, but gpg panics and # implodes if there isn't one available - GPG_CMD="gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg" -GPG="$GPG_CMD --keyring /etc/apt/trusted.gpg" - +GPG="$GPG_CMD" MASTER_KEYRING="" ARCHIVE_KEYRING_URI="" @@ -115,7 +113,7 @@ update() { usage() { - echo "Usage: apt-key [command] [arguments]" + echo "Usage: apt-key [--keyring file] [command] [arguments]" echo echo "Manage apt's list of trusted keys" echo @@ -129,8 +127,39 @@ usage() { echo " apt-key finger - list fingerprints" echo " apt-key adv - pass advanced options to gpg (download key)" echo + echo "If no specific keyring file is given the command applies to all keyring files." } +# Determine on which keyring we want to work +if [ "$1" = "--keyring" ]; then + echo "keyfile given" + shift + TRUSTEDFILE="$1" + if [ -r "$TRUSTEDFILE" ]; then + GPG="$GPG --keyring $TRUSTEDFILE --primary-keyring $TRUSTEDFILE" + else + echo >&2 "Error: The specified keyring »$TRUSTEDFILE« is missing or not readable" + exit 1 + fi + shift +else + echo "generate list" + TRUSTEDFILE="/etc/apt/trusted.gpg" + if [ -r "$TRUSTEDFILE" ]; then + GPG="$GPG --keyring $TRUSTEDFILE" + fi + GPG="$GPG --primary-keyring $TRUSTEDFILE" + TRUSTEDPARTS="/etc/apt/trusted.gpg.d" + if [ -d "$TRUSTEDPARTS" ]; then + echo "parts active" + for trusted in $(run-parts --list $TRUSTEDPARTS --regex '^.*\.gpg$'); do + echo "part -> $trusted" + GPG="$GPG --keyring $trusted" + done + fi +fi +echo "COMMAND: $GPG" + command="$1" if [ -z "$command" ]; then usage -- cgit v1.2.3