特定の鍵で署名されたすべての鍵のリスト

特定の鍵で署名されたすべての鍵のリスト

使用GNUプライバシーガード(GnuPG):たとえば、特定のキーに対して0xDEADBEEFユーザーがそのキーで署名されたUIDを持つ公開鍵のみをキーリングに簡単に一覧表示できる方法は何ですか?

あなたの答えがGnuPG Modern(2.1.x)、GnuPG Stable(2.0.x)、またはGnuPG Classic(1.4.x)に適用されるかどうかを指定できれば便利です。

ベストアンサー1

GnuPGにはそのようなオプションはありませんが、単純なスクリプトを使用して一致するすべてのキーを一覧表示できます。 @grochmalのスクリプトと比較して、GnuPGの出力形式を読む方が速く、より強力で、--with-colonsプログラム的に解析できます。また、単一のGnuPG呼び出しを制限します。

#!/bin/sh
keyid=${1:-'0000000000000000'}
gpg --with-colons --fingerprint --list-sigs |
while read line; do
  packettype="$(echo "${line}" | cut -d':' -f1)"
  case $packettype in
    fpr)
      fingerprint="$(echo "${line}" | cut -d':' -f10)"
      ;;
    sig)
      issuedby="$(echo "${line}" | cut -d':' -f5)"
      if [ "x${issuedby}" = "x${keyid}" ]; then
        echo "${fingerprint}"
      fi
      ;;
  esac
done |
uniq

これは、最初の引数として渡される長いキーIDに依存します。とにかくショートカットキーIDを使用しないでください。

おすすめ記事