id: Гость   вход   регистрация
текущее время 17:06 28/03/2024
Автор темы: Гость, тема открыта 07/01/2009 19:18 Печать
Категории: инфобезопасность, безопасная разработка
создать
просмотр
ссылки

PGP CL --verify problem


У меня такая проблема. Пытаюсь реализовать след команду в батче, но возникают проблемы
pgp --verify file.sig
if %errorlevel% GTR 0 goto bad
...
Проблема в том что ошибка выдаётся только если подпись не соотв. файлу, но если например подпись соотв. файлу но ключа которым подписан файл у меня нет то код ошибки выдаётся 0-вой т.е. успешный. Мне нужно обратное чтоб если файл подписан ключом которого у меня нет выполнялось бы действие соотв неуспешной проверки валидности.
Реализовать вышеописанное надо в батнике


Спасибо за ответ.


 
Комментарии
— SATtva (07/01/2009 19:25)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Так, а поиск ключей на связке задействует еррор-коды? (Т.е. успешное обнаружение ключа на связке и отсутствие ключа возвращают разный код?) Если да, то помимо сверки подписи проверьте наличие ключа отправителя на связке.
— pgp_user (07/01/2009 19:55)   <#>
коды та они разные возвращают, но эти коды информационного характера т.е. их нельзя использовать как код завершения задачи.
как же сверить наличие ключа на связке если я незнаю какой у него будет id.
— SATtva (07/01/2009 19:59, исправлен 07/01/2009 20:06)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
При сверке подписи PGP в стандартном выводе вернёт помимо прочей информации и ID ключа, даже если он отсутствует на связке. Этот листинг можно отпарсить.

коды та они разные возвращают, но эти коды информационного характера т.е. их нельзя использовать как код завершения задачи.

Это как? Код возврата — это код возврата, просто число. Если для успешно найденного ключа и отсутствующего ключа значения разные, то что ещё нужно? Или в виндовом батнике нельзя тестировать на конкретное значение кода возврата, а только на ноль и не-ноль?

Вообще я бы эту и любую иную задачу автоматизации решал с помощью GnuPG и его интерфейса статус-кодов. Хотя для дешёвого и сердитого батника этот интерфейс не очень подходит, всё равно потребуется дополнительный скрипт для парсинга.
— pgp_user (07/01/2009 20:20)   <#>
так вот код возврата при проверке файла с незнакомой подписью 0, мне нужно чтоб был больше нуля чтоб отсеять файлы с незнакомой подписью.
— SATtva (07/01/2009 20:40)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Это логика программы, её Вы не измените (не ковыряя исходники). Мой вопрос заключается в том, какие коды возврата выдаёт программа при поиске ключей на связке. Если для разных случаев поиска возвращаются разные коды (вроде такого: ключ, соответствующий критериям, найден на связке — код возврата "0", не найден — код "1"), то можно добавить ещё одну проверку на наличие ключа на связке, и рассматривать результат обеих в целом.

Но если уж идти на парсинг вывода PGP (а это придётся делать, чтобы узнать ID ключа), то есть более простой вариант: в том же выводе смотреть строку достоверности (Validity), и если там речь об unknown key, то считать подпись неверной.
— Гость (08/01/2009 12:27)   <#>
Как и чем парсить, дело в том что я не програмист и мне желательно увидеть всё на примере.
— SATtva (08/01/2009 19:03)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
В Линуксе было бы достаточно использовать grep. В Винде тоже наверняка есть аналоги.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3