проблемы с запуском GPG (кодировка, pinentry) – [решено]


Доброго времени суток! Извините за банальщину. Пользовался PGP Desktop, решил приобщиться к GPG. Скачал и установил gpg4win 2.0.4 но тутже столкнулся со следующим:

1. После интеграции GpgOL в MS Outlook 2003 перестали отправляться сообщения. Открывается окно создания сообщения, вводим текст, все как всегда... нажимаем "отправить" – ничего не происходит. Окно создания сообщения не закрывается, сообщение не отправляется. Ситуацию исправляет выполнение команды "Сервис->remove GpgOL flags from this folder".

2. При попытке запустить gpg2 из консоли на экран валятся нечитаемые символы. Если бы это была программа на кирилице, я бы подумал что проблема с кодировкой. Запускаю из Command prompt в WinXP SP2

3. Не удается создать новую пару OpenPGP ключей. пытаюсь из фронтэндов Kleopatra и GPA, результат один: после начала генерации ключевой пары выдается сообщение об ошибке "General error". Всплывает окно "pinentry.exe обнаружена ошибка. приложение будет закрыто. давайте отправим отчет"... давайте не будем.

Еще раз извиняюсь за "детский сад", буду признателен за помощь.

Комментарии
Гость (31/07/2010 10:14)   
По сумме факторов, Вам лучше оставаться на PGP Desktop.
— _owl (31/07/2010 18:29)   
— Гость (31/07/2010 10:14) <#>
По сумме факторов, Вам лучше оставаться на PGP Desktop.

Это провоцирует на то чтобы разобраться наверняка. Спасибо.
Гость (31/07/2010 18:54)   
Запускаю из Command prompt в WinXP SP2
пуск -> run command -> cmd -> gpg --gen-key?

Всплывает окно "pinentry.exe обнаружена ошибка. приложение будет закрыто. давайте отправим отчет"
Вот именно поэтому настоятельно не рекомендовалось ставить gpg2 на винду, а также ставить софт, который жёстко завязан на gpg2 — гемороя не оберётесь. Собственно, что вас в gpg 1.4.10 не устраивает? Кажется, для gpg2 в нагрузку надо было ставить ещё какой-то софт, чтобы оно заработало (SATtva бы точнее сказал).
— _owl (31/07/2010 19:33)   
Запускаю из Command prompt – это так:
'Пуск'->'Выполнить'->cmd


Собственно, что вас в gpg 1.4.10 не устраивает?

да собственно я просто скачал последнюю доступную версию... и именно дистрибутив с проекта gpg4win, т.е. именно для винды. Какой смысл садиться на старую версию? или это две ветки которые будут параллельно поддерживаться и развиваться?
— sentaus (31/07/2010 19:45)   
то две ветки которые будут параллельно поддерживаться и развиваться?

Да.

2. При попытке запустить gpg2 из консоли на экран валятся нечитаемые символы

Выглядит как русская локализация в юникоде.
— _owl (31/07/2010 19:58)   
на сайте www.gpg4win.org никаких слов про взаимоотношения версий 2.х и 1.4.10 не нашел. Где можно что-то почитать?

Выглядит как русская локализация в юникоде.
Да, выглядит так. но она же не может быть на кирилице...
— sentaus (31/07/2010 20:02)   
но она же не может быть на кирилице...

В смысле? А каким ещё алфавитом может быть выполнена локализация на русском языке? Не транслитом же :)
— _owl (31/07/2010 20:10)   
да, sentaus, Вы правы. Вот результат обработки "битого" вывода gpg2 товарищем Штирлицем IV:

Не мог как-то предположить что gpg2 локализована на русский язык. "Кляча" – это не моя опечатка :) А нельзя отказаться от благ локализации и пользоваться английским? это где-то в конфиг-файлах прописывается, не подскажите?
— sentaus (31/07/2010 20:38)   
В доке есть такое:



Operation is further controlled by a few environment variables:

LANGUAGE
Apart from its use by GNU, it is used in the W32 version to override the language selection done through the Registry. If used and set to a valid and available language name (langid), the file with the translation is loaded from gpgdir/gnupg.nls/langid.mo. Here gpgdir is the directory out of which the gpg binary has been loaded. If it can't be loaded the Registry is tried and as last resort the native Windows locale system is used.


Т.е. надо либо установить переменную LANGUAGE в значение, соответствующее файлику для английского языка из директории gnupg.nls (например en@quot для использования en@quot.mo), либо сделать это же в реестре (а вот где именно – уже хороший вопрос)
— _owl (31/07/2010 21:46)   
как сменить LANGUAGE понять не удалось. Простое добавление системной переменной set LANGUAGE=en результата не дает. однако чтобы читать локализованный вывод gpg2 в WinXP, оказывается, нужно установить кодовую страницу 1251: chcp 1251.

Далее при попытке сгенерировать новую ключевую пару имеем аналогичную проблему с "вылетанием" pinentry.exe, как и при пользовании фронт-эндами:


не ясно, что такое IPC и какой там случается error...
— sentaus (31/07/2010 22:42)   
Прямо даже интересно стало, скачал посмотреть.
В общем диагноз следующий:
1) файл pinentry.exe скорее всего битый. Вместо него можно использовать, например, pinentry-qt4.exe. Можно добавить в файл $HOME/AppData/Roaming/gpg-agent.conf строчку pinentry-program=путь к pinentry-qt4.exe, тогда всё должно заработать. Ну или удалить pinentry.exe, а pinentry-qt4.exe переименовать в pinentry.exe

2) Не нужно пользоваться gpg2 из консоли – она требует кучу других процессов, которые придётся в этом случае запускать ручками(в фронтэндах это автоматизировано).

3) Что такое IPC в образовательных целях всегда можно найти в гугле :), но в данном случае это неважно.
— _owl (31/07/2010 22:47)   
круто, спасибо, сейчас попробую повторить. Наверное нужно отправить багрепорт на GnuPG, как думаете?
— sentaus (31/07/2010 22:56)   
Команде GPG4Win – безусловно, а сам GnuPG скорее всего ни при чём, это явно косяк сборки.
— _owl (01/08/2010 00:09)   
Знаете, файла $HOME/AppData/Roaming/gpg-agent.conf у меня почему-то нет. Поэтому я пошел по второму указанному Вами пути: переименовал pinentry-qt4.exe в pinentry.exe. После этого процесс согдания ключа удалось довести до конца. Аллилуйа!

Кстати, обратите внимание – при вводе пассфразы индикатор качества дает 100% стойкости такой комбинации: 123123123123.
— sentaus (01/08/2010 00:14)   
Это я ошибся, директорию gnupg не скопировал, должно быть: $HOME/AppData/Roaming/gnupg/gpg-agent.conf
В этой же директории также лежат все ключи. Если файлика нет, то его создать надо.
Гость (01/08/2010 00:30)   
не ясно, что такое IPC и какой там случается error...
InterProcess Communication (взаимодействие между процессами). Считается, что gpg не достаточно секурен при вводе пассфразы на ключ, и потому сей функционал решили вынести в отдельный модуль, типа того же pinetry (опять же, не ясно — не секурен с т.зр. гуйни, или и в консоли не секурен). Ессно, такой жосткий надруг порушил кучу компатибилити и привёл к массе эпик-фейл-багов.

индикатор качества дает 100% стойкости такой комбинации: 123123123123.
Не стоит надеяться на автоматические проверяльщики качества энтропии/случайности — у нас это уже много раз обсуждалось в куче веток, в т.ч. вызывая эпические криптосрачи[link1].

на сайте www.gpg4win.org никаких слов про взаимоотношения версий 2.х и 1.4.10 не нашел. Где можно что-то почитать?
На pgpru: см. /comment40335[link2] и /comment40352[link3].
Гость (01/08/2010 00:34)   
[offtop]
это где-то в конфиг-файлах прописывается, не подскажите?
Никогда не понимал людей, которые не боятся конфиг-файлов, но при этом продолжают пользоваться виндой.
[/offtop]
— _owl (01/08/2010 12:05)   
Суммируем. Проблема с кодировкой решилaась командой chcp 1251. проблема с "падением" pinentry.exe при попытке создать новую ключевую пару в gpg2 решилась установкой gpg 1.4.10 и написанием баг-репорта команде gpg4win. Альтернативно, сохраняя gpg2, можно заменить файл pinentry.exe на pinentry-qt4.exe (© Sentaus).

Это был нулевой уровень игры, переходим на 0,5-ый :) Большое всем спасибо за помощь, кажется тема исчерпана.
— String (19/10/2010 22:10)   
Доброго времени суток!
Недавно начал пользоваться gpg4win. Версия файла с оф.сайта gpg4win-2.0.4.exe. Все работает хорошо. Только вот недавно решил сменить пароль на имеющуюся у меня пару ключей (change the passphrase) в прилагающейся утилите Cleopatra. После ввода пароля выходит ошибка: An error occurred while trying to change the passphrase. The output from C:\Program Files\GNU\GnuPG\gpg2.exe was: gpg: AllowSetForegroundWindow(2896) failed: Отказано в доступе. gpg: проблема с агентом: IPC read error. Не подскажите люди знающие в чем дело? Почему выскакивает такая ошибка?
— string (19/10/2010 22:22)   
Сорри, решил заменой файлов.
Прошу прошения за флуд. :)
— Donny (01/12/2010 11:07)   
столкнулась с идентичной проблемой, переименование pinentry-qt4.exe помогло! спасибо :D
— Виктор (12/11/2012 00:54)   
Как вариант решения проблемы нечитаемой в консоли локализации – удалить/переименовать каталог GnuPG\share\locale\ru, тогда все сообщения будут на нормальном английском

Ссылки
[link1] https://www.pgpru.com/comment40354

[link2] https://www.pgpru.com/comment40335

[link3] https://www.pgpru.com/comment40352