Windows XP, pinentry-w32.exe, Empty window

Hello, guys.

I met the problem and did not find a solution.

The window of program pinentry-w32.exe is empty.
Could you help me find a solution?

Gpg4win: 3.1.2 (russian language)
OS: Windows XP SP3 (32 bit)

gpg-agent.conf
#-------------------------------------------------
pinentry-program C:\ProgsXP\Gpg4Win\bin\pinentry-w32.exe
log-file C:\ProgsXP\PINEntry.log
debug-level guru
debug-pinentry
#-------------------------------------------------

PINEntry.log
#-------------------------------------------------
2018-07-18 21:30:34 gpg-agent[6092] starting a new PIN Entry
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK Pleased to meet you
2018-07-18 21:30:34 gpg-agent[6092] DBG: connection to PIN entry established
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → OPTION no-grab
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → OPTION ttyname=/dev/tty
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → OPTION lc-ctype=Russian_Russia.1251
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → OPTION allow-external-password-cache
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → OPTION default-ok=_OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → OPTION default-cancel=Отмена (_C)
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → OPTION default-yes=Да (_Y)
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← ERR 83886254 Unknown option
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → OPTION default-no=Нет (_N)
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← ERR 83886254 Unknown option
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → OPTION default-prompt=PIN:
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → OPTION default-pwmngr=Сохранить в диспетчере паролей (_S)
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → OPTION default-cf-visi=Вы действительно хотите, чтобы фраза-пароль была видна на экране?
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → OPTION default-tt-visi=Показывать фразу-пароль
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → OPTION default-tt-hide=Скрывать фразу-пароль
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → OPTION touch-file=C:\Documents and Settings\Administrator\Application Data\gnupg\S.gpg-agent
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → GETINFO flavor
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← D w32
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → GETINFO version
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← D 1.1.1-beta5
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → GETINFO ttyinfo
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← D /dev/tty - -
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → GETINFO pid
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← D 4820
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x000000c4 → INQUIRE PINENTRY_LAUNCHED 4820 w32 1.1.1-beta5 /dev/tty - -
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x000000c4 ← END
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → SETKEYINFO --clear
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → SETDESC Повторите фразу-пароль:
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → SETPROMPT Фраза-пароль:
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 ← OK
2018-07-18 21:30:34 gpg-agent[6092] DBG: chan_0x00000104 → [[Confidential data not shown]]
2018-07-18 21:30:35 gpg-agent[6092] DBG: agent_cache_housekeeping
2018-07-18 21:30:39 gpg-agent[6092] DBG: agent_cache_housekeeping
2018-07-18 21:30:41 gpg-agent[6092] DBG: chan_0x00000104 ← [[Confidential data not shown]]
2018-07-18 21:30:41 gpg-agent[6092] DBG: chan_0x00000104 ← [[Confidential data not shown]]
2018-07-18 21:30:41 gpg-agent[6092] DBG: chan_0x00000104 → BYE
2018-07-18 21:30:41 gpg-agent[6092] DBG: chan_0x000000c4 → S PROGRESS primegen . 0 0
#-------------------------------------------------

Empty_PINEentry.JPEG

Addition.

If I change the language from Russian to English in the regional settings of the OS, then everything starts working well.

NotEmpty.JPEG

Looks like an encoding issue. From the log we can see that the strings are properly sent to pinentry.

My suggestion would be to use pinentry-gtk (pinentry-qt does not work on Windows XP afaik). pinentry-gtk should be installed when you install gtk.

You can just rename pinentry-gtk.exe to pinentry.exe to make it default.

pinentry-w32 is somewhat deprecated and only a “last line of defense” fallback. E.g. it does not dynamically layout strings which means that in most languages except english the layout is broken.