проверка bash-скрипта, если подпись GPG действительна и принадлежит ключу - PullRequest
2 голосов
/ 05 апреля 2011

Я пытаюсь написать сценарий bash, который проверяет, является ли данная подпись действительной или нет. У меня есть два возможных выхода:

$ gpg --no-default-keyring --keyring /etc/pubring.gpg  --verify file.tgz.sig file.tgz

НЕПРАВИЛЬНО

gpg: Signature made Tue 05 Apr 2011 11:01:19 CEST using RSA key ID E32804F0
gpg: Can't check signature: public key not found

ПРАВО

gpg: Signature made Tue 05 Apr 2011 11:01:19 CEST using RSA key ID E32804F0
gpg: Good signature from "Test key <test@localhost>"

Как я могу определить, была ли проверка правильной, не анализируя результат.

Этот вопрос похож на Проверьте подпись файла GPG с помощью Perl , но II хотел бы сделать это в bash (или, если очень нужен Python.)

Ответы [ 2 ]

6 голосов
/ 05 апреля 2011

Я не знаю команду gpg, но возвращает ли она другое значение выхода для "неправильных" и "правильных" результатов? Самый простой способ проверить это после выполнения команды:

echo $?

Я ожидаю, что он вернет 0, если все в порядке, и что-то еще, если нет Итак, ваш bash-скрипт будет выглядеть так:

gpg --no-default-keyring --keyring /etc/pubring.gpg --verify file.tgz.sig file.tgz

if [ $? -eq 0 ]
then
    echo All is well.
else
    echo Problem with signature.
fi
1 голос
/ 05 апреля 2011

Со страницы руководства GnuPG:

Программа возвращает 0, если все было в порядке, 1, если хотя бы подпись была плохой, и другие коды ошибок для фатальных ошибок.

Таким образом, вы можете использовать http://docs.python.org/library/subprocess.html, чтобы получить код возврата gpg.

...