5

Я хочу программно определить, кто подписал файл четкой подписи GPG. Запуск gpg --verify скажет мне об этом, но это делается в удобочитаемом формате. Можно ли получить этот результат в машиночитаемом формате?

Я не ищу методы для анализа читаемого человеком формата, поскольку он может измениться в будущих версиях GPG. Мне нужно надежное решение.

1 ответ1

11

Для этого GnuPG имеет машиночитаемый формат --status-fd :

^ gpg --status-fd=1 --verify test.asc
gpg: Signature made Sat 01 Feb 2014 19:37:53 EET using RSA key ID C1B52632
[GNUPG:] SIG_ID LI0kgmtHFCacIrSKM9uxpc3B2jI 2014-02-01 1391276273
[GNUPG:] GOODSIG D24F6CB2C1B52632 Mantas Mikulėnas <grawity@nullroute.eu.org>
gpg: Good signature from "Mantas Mikulėnas <grawity@nullroute.eu.org>"
gpg:                 aka "Mantas Mikulėnas <grawity@gmail.com>"
[GNUPG:] NOTATION_NAME issuer-fpr@notations.openpgp.fifthhorseman.net
[GNUPG:] NOTATION_DATA 2357E10CEF4F7ED27E233AD5D24F6CB2C1B52632
[GNUPG:] VALIDSIG 2357E10CEF4F7ED27E233AD5D24F6CB2C1B52632 2014-02-01 1391276273                        0 4 0 1 2 00 2357E10CEF4F7ED27E233AD5D24F6CB2C1B52632
[GNUPG:] TRUST_ULTIMATE

Формат вывода задокументирован в doc/DETAILS. (Сообщения смешаны с читаемыми человеком, потому что я указал gpg на fd # 1, он же stdout. Для этой цели программа может легко использовать два отдельных файла, например, с помощью pipe() .)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .