Com gpg --verify, como distinguir assinaturas válidas e assinaturas válidas de chaves confiáveis programaticamente?

3

Eu quero escrever um script que execute gpg --verify para verificar uma assinatura.

O comando gpg retorna 1 para assinaturas inválidas e 0 para as válidas. Mas dá saída diferente para chaves que estão no meu trustdb e chaves que não são:

gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.

Eu quero executar gpg de tal forma que esse aviso seja tratado como um erro e sem recorrer ao grepping da saída. Isso é possível?

A propósito: tudo bem se a solução exigir que eu use o gpgme, mas não encontrei nada relacionado ao trustdb que parece remotamente relevante na documentação do gpgme ainda.

    
por Stefano Palazzo 31.05.2013 / 15:54

1 resposta

1

Esta não é uma solução particularmente elegante, mas pode ser útil.

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"
}
    
por Six 19.10.2014 / 08:32