Durante o trabalho com pacotes RPM, frequentemente preciso validar assinaturas em relação às chaves GPG disponíveis.
Usando
rpm -qip --nosignature <package.rpm> | grep Signature
me dá um ID de chave, ou seja:
Signature : RSA/SHA1, Mon 28. Aug 2019 06:00:00 AM CET, Key ID 1234567890abcdef
através do qual
gpg --with-fingerprint <RPM-GPG-KEY-package>
me dá uma impressão digital chave:
Key fingerprint = 0987 6543 21FE DCBA 0987 6543 21FE 1234 5678 90AB CDEF
Como não é fácil comparar as duas saídas, como obter o ID da chave mencionado em vez da impressão digital inteira?
Você pode importar a chave GPG usando
rpm --import GPGFILE
e depois executarrpmkeys --checksig foo.rpm
Durante a pesquisa, descobri que o ID da chave geralmente são os últimos 8 ou 16 bytes da impressão digital da chave. Então eu queria extrair apenas eles da saída. Como conseguir isso?
Eu encontrei a seguinte abordagem que parece estar funcionando:
keyID.sh