id: Гость   вход   регистрация
текущее время 00:44 22/10/2020
Автор темы: SATtva, тема открыта 22/08/2010 18:49 Печать
Категории: криптография, софт, gnupg, эцп
http://www.pgpru.com/Форум/РаботаСGnuPG/DetachedSignatureДанныхИзStdinИОпция--set-filename-решено
создать
просмотр
ссылки

Detached signature данных из stdin и опция --set-filename – [решено]


Коллеги,


Имеется скрипт, генерирующий detached-подпись данных, которые идут из стандартного ввода: gpg -abu keyID. (Сами эти данные позднее сохраняются в файл, но на этапе генерации подписи файл ещё не существует, и лучше бы так оно и оставалось.) Проблема в том, что при сверке такой подписи gpg предлагает ввести имя файла, который был подписан, или, опять же, ввести исходный файл через stdin. Этот запрос имени файла всё портит.


Было бы крайне желательно задать имя файл наперёд ещё на этапе генерации подписи. В мане нашлась похожая опция --set-filename, но она, похоже, не действует для подписанных данных, только для зашифрованных.


Есть идеи, как это можно обойти? Подписывать файл, а не stdin — тривиальное решение, но в данном случае оно не слишком подходит, заранее убедительно прошу его не предлагать.


P.S. GnuPG 2.0.11, если это имеет значение. Проверьте, может set-filename у вас ведёт себя иначе?


 
Комментарии
— sentaus (22/08/2010 19:14, исправлен 22/08/2010 19:14)   профиль/связь   <#>
комментариев: 1060   документов: 16   редакций: 32

Да, в контейнере, содержащем только подпись, имя файла не сохраняется.
Сохраняется, только если в контейнер сохранять и подписываемые данные, пусть и незашифрованные.

— SATtva (22/08/2010 19:20, исправлен 22/08/2010 19:20)   профиль/связь   <#>
комментариев: 11552   документов: 1036   редакций: 4094

Это ещё более худшее решение, чем раскидывать временные файлы по диску. :) Видимо, придётся отказаться от stdin.

— sentaus (22/08/2010 19:32, исправлен 22/08/2010 19:36)   профиль/связь   <#>
комментариев: 1060   документов: 16   редакций: 32

Кстати, я что-то не понимаю, как это поможет.


echo Test | gpg -abu keyID > Test1.asc


gpg -abu keyID Test


В файле Test содержится просто строка Test.


После выполнения этих двух команд файлы-результаты Test1.asc и Test.asc идентичны, и исходного имени там всё равно нет. Или имя исходного файла будет "храниться" в имени файла-подписи?

— SATtva (22/08/2010 19:50)   профиль/связь   <#>
комментариев: 11552   документов: 1036   редакций: 4094
Да, в файле подписи. В этом случае при сверке подписи gpg автоматически пытается найти файл с данным именем в текущем каталоге и только если не обнаруживает его, то просит пользователя ввести имя вручную.
— sentaus (22/08/2010 20:02, исправлен 22/08/2010 20:04)   профиль/связь   <#>
комментариев: 1060   документов: 16   редакций: 32

Стоп. А если вы заранее знаете, какое имя файла будет использоваться при сохранении потока с данными (которое в --set-filename планировали указать), то что мешает просто сохранять подпись в файл с таким же именем + ".asc"? Нужно собственно вывод gpg перенаправить в файл. Или я чего-то не понял?

— SATtva (22/08/2010 20:34)   профиль/связь   <#>
комментариев: 11552   документов: 1036   редакций: 4094
О, оно самое! Я был в полной уверенности, что имеет значение только "вшитое" имя, а не такая эвристика. Спасибо.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3