]> Nutra Git (v1) - gamesguru/git-remote-gcrypt.git/commitdiff
suppress warning about keyid matching multiple fps
authorSean Whitton <spwhitton@spwhitton.name>
Mon, 4 Jul 2016 09:48:35 +0000 (18:48 +0900)
committerSean Whitton <spwhitton@spwhitton.name>
Mon, 4 Jul 2016 09:48:35 +0000 (18:48 +0900)
Based on commit a72eb5d9520a8d7fa23478aeb1c14a14e66c19a2 by Raphaël
Droz's fork -- thanks.

debian/changelog
git-remote-gcrypt

index 70e64d8efe7043750b355814d576b29a854473a7..dd4104515c24edf60d103e8a24145e9d44b9c991 100644 (file)
@@ -8,6 +8,9 @@ git-remote-gcrypt (1.0.0-1) UNRELEASED; urgency=medium
     Thanks Christian Amsüss.  (Closes: #827943)
   * Don't reset the remote ID when a gcrypt remote is not available.
     Thanks Sebastian Reuße.  (Closes: #827943)
+  * Suppress bogus warning about keyid matching multiple fingerprints.
+    Based on work by Raphaël Droz.
+    Closes https://github.com/joeyh/git-remote-gcrypt/pull/2
 
   Debian packaging:
   * Drop patch containing changes by Joey Hess: incorporated in release.
index 667ab44dee8af28f6bfc7cb9c85009db9e45f642..61fed76929312603e8f786d5bcb9b973fcafadbe 100755 (executable)
@@ -405,7 +405,7 @@ make_new_repo()
 # $1 return var for goodsig match, $2 return var for signers text
 read_config()
 {
-       local recp_= r_keyinfo= r_keyfpr= gpg_list= cap_= conf_part= good_sig= signers_=
+       local recp_= r_tail= r_keyinfo= r_keyfpr= gpg_list= cap_= conf_part= good_sig= signers_=
        Conf_signkey=$(git config --get "remote.$NAME.gcrypt-signingkey" '.+' ||
                git config --path user.signingkey || :)
        conf_part=$(git config --get "remote.$NAME.gcrypt-participants" '.+' ||
@@ -428,8 +428,13 @@ read_config()
        for recp_ in $conf_part
        do
                gpg_list=$(rungpg --with-colons --fingerprint -k "$recp_")
+               r_tail_=$(echo "$recp_" | sed -e 's/^0x//')
                filter_to @r_keyinfo "pub*" "$gpg_list"
-               filter_to @r_keyfpr "fpr*" "$gpg_list"
+               if echo "$recp_" | grep -E -q '^[xA-F0-9]+$'; then # is $recp_ a keyid?
+                       filter_to @r_keyfpr "fpr*$r_tail_*" "$gpg_list"
+               else
+                       filter_to @r_keyfpr "fpr*" "$gpg_list"
+               fi
                isnull "$r_keyinfo" || isnonnull "${r_keyinfo##*"$Newline"*}" ||
                echo_info "WARNING: '$recp_' matches multiple keys, using one"
                isnull "$r_keyfpr" || isnonnull "${r_keyfpr##*"$Newline"*}" ||