pinentry-curses (and the fallback from the graphical pinentry-gtk-2 when DISPLAY is not set) doesn't display correctly on OpenIndiana (which is one of the Illumos-based distros that came out of the OpenSolaris project, so it shares a lot of history with Solaris 10 and early Solaris 11).
Symptoms are that none of the text from SETTITLE/SETPROMPT/SETDESC or the border is displayed. The screen is basically blank, though the cursor is roughly in the middle of the screen and it is possible to blindly type in your passphrase, so pinentry-curses is listening, it's just not displaying correctly.
I've tested both with pinentry-curses from 1.1.0 and 1.2.0 and the problem exists in both them.
The problem seems to relate to some terminal types. I normally use "xterm" as my terminal type and it has worked well for me for both command-line work and for other curses-based applications (pine/alpine, top, etc.), however with "OPTION ttytype=xterm" pinentry-curses has the display issues. I'm aware of other TERM types that have the same issue.
If I try setting my "TERM=vt100", then pinentry-curses displays mostly-correctly (the box characters are alternate characters, but that's not a problem).
Not sure why TERM=xterm works for everything else but not pinentry-curses, but that seems to be the case.
$ gpgconf --show-versions Warning: using insecure memory! * GnuPG 2.3.2 (3bf8d7e1b) SunOS * Libgcrypt 1.9.4 (05422ca2) version:1.9.4:10904:1.42-unknown:12a00: cc:70500:gcc:7.5.0: ciphers:arcfour:blowfish:cast5:des:aes:twofish:serpent:rfc2268:seed:camellia:idea:salsa20:gost28147:chacha20:sm4: pubkeys:dsa:elgamal:rsa:ecc: digests:crc:gostr3411-94::md4:md5:rmd160:sha1:sha256:sha512:sha3:tiger:whirlpool:stribog:blake2:sm3: rnd-mod:linux: cpu-arch:: mpi-asm:generic/mpih-add1.c:generic/mpih-sub1.c:generic/mpih-mul1.c:generic/mpih-mul2.c:generic/mpih-mul3.c:generic/mpih-lshift.c:generic/mpih-rshift.c: hwflist: fips-mode:n:n: rng-type:standard:1:2010000:2: compliance::: * GpgRT 1.42-unknown (0000000) * Libassuan 2.5.5 (f8cfb56) * KSBA 1.3.5 (?) * GNUTLS 3.6.16 $ gpgconf --list-dirs sysconfdir:/etc/gnupg bindir:/usr/bin libexecdir:/usr/bin libdir:/usr/lib/amd64/gnupg datadir:/usr/share/gnupg localedir:/usr/share/locale socketdir:/faculty/ndsu/mooney/.gnupg dirmngr-socket:/faculty/ndsu/mooney/.gnupg/S.dirmngr keyboxd-socket:/faculty/ndsu/mooney/.gnupg/S.keyboxd agent-ssh-socket:/faculty/ndsu/mooney/.gnupg/S.gpg-agent.ssh agent-extra-socket:/faculty/ndsu/mooney/.gnupg/S.gpg-agent.extra agent-browser-socket:/faculty/ndsu/mooney/.gnupg/S.gpg-agent.browser agent-socket:/faculty/ndsu/mooney/.gnupg/S.gpg-agent homedir:/faculty/ndsu/mooney/.gnupg
pinentry-curses on OpenIndiana is linked against the Solaris-based SVR4 curses (not ncurses), which is considered to be a very strong curses implementation:
$ ldd /usr/lib/pinentry-curses libsocket.so.1 => /lib/64/libsocket.so.1 libsecret-1.so.0 => /usr/lib/64/libsecret-1.so.0 libglib-2.0.so.0 => /usr/lib/64/libglib-2.0.so.0 libassuan.so.0 => /usr/lib/64/libassuan.so.0 libgpg-error.so.0 => /usr/lib/64/libgpg-error.so.0 libcurses.so.1 => /lib/64/libcurses.so.1 libc.so.1 => /lib/64/libc.so.1 libnsl.so.1 => /lib/64/libnsl.so.1 libgcrypt.so.20 => /usr/lib/64/libgcrypt.so.20 libgio-2.0.so.0 => /usr/lib/64/libgio-2.0.so.0 libgobject-2.0.so.0 => /usr/lib/64/libgobject-2.0.so.0 libpcre.so.0 => /usr/lib/64/libpcre.so.0 libmp.so.2 => /lib/64/libmp.so.2 libmd.so.1 => /lib/64/libmd.so.1 libgmodule-2.0.so.0 => /usr/lib/64/libgmodule-2.0.so.0 libz.so.1 => /usr/lib/64/libz.so.1 libresolv.so.2 => /lib/64/libresolv.so.2 libffi.so.6 => /usr/lib/64/libffi.so.6 libm.so.2 => /lib/64/libm.so.2
gniibe and I have discussed some of this in https://dev.gnupg.org/T5623 , when I mistakenly thought that issue (with gpg-agent) and this issue were related, but I will try summarize all that issue here.
I'll happily provide any additional information I can to try debug what the problem is.