我想编写一个运行gpg --verify
来检查签名的脚本。
该gpg
命令对无效签名返回 1,对有效签名返回 0。但是,对于我 trustdb 中的密钥和不在我的 trustdb 中的密钥,它给出了不同的输出:
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
我希望gpg
以这样的方式运行,将这个警告视为错误,而无需借助 grepping 输出。这可能吗?
顺便说一句:如果解决方案要求我使用 gpgme,那就没问题,但我还没有在 gpgme 的文档中找到与 trustdb 相关的任何内容。
答案1
这不是一个特别优雅的解决方案,但它可能是有用的。
check_sig(){
local LC_ALL=C output
output=$(gpg --verify -- "$1" 2>&1) || return 1
! grep -Fqx 'gpg: WARNING: This key is not certified with a trusted signature!' <<<"$output"
}