使用GNU Privacy Guard (GnuPG):对于某些给定的密钥,例如0xDEADBEEF
,用户如何轻松地仅列出其密钥环中具有已由该密钥签名的 UID 的公钥?
如果您可以指定您的答案是用于 GnuPG Modern (2.1.x)、GnuPG Stable (2.0.x) 还是 GnuPG Classic (1.4.x),将会很有帮助。
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
Run Code Online (Sandbox Code Playgroud)
这依赖于作为第一个参数传递的长密钥 ID,无论如何都不应该使用短密钥 ID。
归档时间: |
|
查看次数: |
1269 次 |
最近记录: |