работа с GnuPG через --batch


Подскажите пожалуста как работать с GnuPg через батч. Нашел только описание файла батча к команде gen-key. а например с командой --sing и decrypt. Нужно для того что бы не поднимать пользователю непонятное окно ввода. Я понимаю что это потенциальная дыра в защите. Но все же с какими еще командами опция --batch работает


Комментарии
— AndreyVS (20/12/2004 12:40)   
Подскажите что я делаю не так.
Хочу зашифровать и подписать файл message.txt
ввожу как сказано в инструкции команду:
gpg --output message.gpg -se -r SSSSS message.txt
ввожу свой закрытый ключь (юзер AAAAA) и получаю файло.

Но когда пытаюсь проверить подпись командой
gpg --verify message.gpg
то выдаеться сообщение
gpg: verify signatures failed: unexpected data.

когда делаю по разделениям, т.е. сначало шифрую message.txt в файл message.gpg, а затем командой --sign его подписываю получаю message1.gpg, то проверка подвиси проходит нормально.
— unknown (20/12/2004 22:21)   
cat test1.txt | gpg -v --armor --recipient 4BD12C40 --recipient XXXXXXXX --sign --encrypt > message.new1.enc

Вот я допустим зашифровал и подписал файл. Затем все расшифровывается и проверяется нормально

Но если я сделаю так

cat test1.txt | gpg -v --armor --batch --recipient 4BD12C40 --recipient XXXXXXXX --sign --encrypt > message.new1.enc

То получу вот так:

gpg: can't query password in batchmode
gpg: no default secret key: bad passphrase
gpg: [stdin]: sign+encrypt failed: bad passphrase


Потому что в batchmode нельзя ввести пароль. Вы это как-то обошли?

Нужно для того что бы не поднимать пользователю непонятное окно ввода.

Может лучше GPGrelay поставить между пользователем и внешней сетью?
— unknown (20/12/2004 23:04)   
Но когда пытаюсь проверить подпись командой
gpg verify message.gpg
то выдаеться сообщение
gpg: verify signatures failed: unexpected data.

когда делаю по разделениям, т.е. сначало шифрую message.txt в файл message.gpg, а затем командой --sign его подписываю получаю message1.gpg, то проверка подвиси проходит нормально.
<!
escaped></blockquote><!escaped-->
Если я правильно понял у Вас два разных вопроса и --batch здесь ни причем.

В первом примере получается нормальная (как положено) подпись ВНУТРИ зашифрованного файла.
Проверить подпись можно только при расшифровании. gpg -v --decrypt

При втором способе Вы подписываете уже зашифрованной файл (чего вообще-то делать не надо).
— AndreyVS (21/12/2004 20:57)   
просто нужно сделать что то обрезанное от WinPt
я думал можно использовать команды консоли <<f1.txt >>f2.txt где f1 и f2 будут файлами которые я сгенерю перед командой и считаю после. Покапался и понял что не все команды могут выполняться через файл.
шас пытаюсь общаться с GNUPG через пайпы. Для всех консольных программ все работает на ура... но для gpg не получаеться. смотрю что приходить в stdin и в stdError, но вопросов которые gpg задает по ходу например удаления ключа не могу поймать....
Слил исходник WinPt но там стока накалбашено, страшно....
— unknown (22/12/2004 08:55)   
Если бы Вы работали в *nix'e, то можно было бы вводить пароль через FIFO. Раз Вам такие небезопасные решения требуются. А про WinPt ничего сказать не могу.
— AndreyVS (23/12/2004 11:49)   
опция --batch мне интересна так с помощью ее я смогбы работать GnuPg через командную строку не поднимая само консольное приложение клиенту.
Например удаление ключа --delete-secret-and-public-key там надо три раза сказать yes нельзя ли это дело прописать как нибуть в файл.
и я не могу найти описалово какие команды кроме --gen-key поддерживают эту опцию.
— AndreyVS (30/12/2004 10:02)   
Большое спасибо за советы. Понял что GnuPG не для меня и заюзал CryptoApi от дяди билла. Конечно как всегда идеалогия через ж@, но реализуеться очень просто.
— SATtva (30/12/2004 12:09)   
Всё зависит от поставленных требований. Совместимости ведь с OpenPGP не будет. А так есть ещё, например, PGP SDK, раз уж речь дело дошло до библиотек. И куча свободных проектов.
Гость (11/01/2005 10:38)   
Есть еще libcrypt (1.2.1 now), gpgme (GnuPg Made Easy), etc.
А файл details из поставки gnupg изучали?