kontrola bash script, pokud GPG podpis je platný a patří ke klávese

hlasů
2

Snažím se napsat bash skript, který kontroluje, zda daný podpis platný, nebo ne. Mám dva možné výstupy z:

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

ŠPATNĚ

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

ŽE JO

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

Jak mohu zjistit, zda kontrola byla správná, aniž by museli analyzovat výsledek.

Tato otázka je podobná ověřit podpis GPG soubor s Perlem ale II chtěli dělat, že v bash (nebo v případě potřeby velmi Python).

Položena 05/04/2011 v 11:00
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
6

Nevím, na gpgpovel, ale to vrátí jinou výstupní hodnotu pro „špatné“ a „správné“ výsledky? Nejjednodušší způsob, jak zkontrolovat po spuštění příkazu bude vypadat následovně:

echo $?

Očekával bych, že se vrátí 0, pokud je vše v pořádku a něco jiného, ​​ne-li. Takže váš bash skript by vypadat následovně:

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
Odpovězeno 05/04/2011 v 11:12
zdroj uživatelem

hlasů
1

Z manuálové stránky GnuPG:

Program se vrací 0, pokud je vše v pořádku, 1 pokud alespoň podpis byla špatná, a další chybové kódy pro závažné chyby.

Takže můžete použít http://docs.python.org/library/subprocess.html získat návratový kód gpg.

Odpovězeno 05/04/2011 v 11:08
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more