在使用RPM软件包的过程中,我经常需要根据可用的GPG密钥来验证签名。
使用
rpm -qip --nosignature <package.rpm> | grep Signature
给我一个密钥ID,即:
Signature : RSA/SHA1, Mon 28. Aug 2019 06:00:00 AM CET, Key ID 1234567890abcdef
从而
gpg --with-fingerprint <RPM-GPG-KEY-package>
给我一个关键指纹:
Key fingerprint = 0987 6543 21FE DCBA 0987 6543 21FE 1234 5678 90AB CDEF
由于比较两个输出并不容易,如何获得提到的密钥ID而不是整个指纹?
在研究过程中,我发现密钥ID通常是密钥指纹的最后8或16个字节。所以我只想从输出中提取它们。如何实现呢?
我发现以下方法似乎有效:
keyID.sh
#! /bin/bash
KEY_PATH=$1
KEY_FINGERPRINT=$(gpg --with-fingerprint ${KEY_PATH} | grep "Key fingerprint" | cut -d "=" -f 2 | tr -d ' ' | tr '[:upper:]' '[:lower:]')
echo ${KEY_FINGERPRINT} | grep -o '.\{8\}$'
echo ${KEY_FINGERPRINT} | grep -o '.\{16\}$'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句