Page MenuHome GnuPG
Feed Advanced Search

Nov 24 2022

gniibe committed rG1372b1773187: tests: Keep .log files in objdir. (authored by gniibe).
tests: Keep .log files in objdir.
Nov 24 2022, 8:03 AM
gniibe committed rG7ab2e4386ffe: tests: Use 233 for invalid value of FD. (authored by gniibe).
tests: Use 233 for invalid value of FD.
Nov 24 2022, 8:03 AM
gniibe committed rG0fd7a902070a: tests: Fix to support --enable-all-tests and variants. (authored by gniibe).
tests: Fix to support --enable-all-tests and variants.
Nov 24 2022, 7:38 AM
gniibe added a comment to T6285: AM_PATH_GPGME_PTHREAD not ready for gpgrt-config transition.

Thank you for the bug report and your suggestion.

Nov 24 2022, 6:26 AM · gpgme, Bug Report
gniibe triaged T6288: Document gpgrt-config in detail or improve it to support simple invocation as High priority.
Nov 24 2022, 3:08 AM · gpgrt, Bug Report
gniibe renamed T5931: OpenSSH 8.9, 9.0, and 9.1 can't authenticate with gpg-agent and usb token (Gnuk >= 1.2.16 is required) from OpenSSH 8.9 and 9.0 can't authenticate with gpg-agent and usb token (Gnuk >= 1.2.16 is required) to OpenSSH 8.9, 9.0, and 9.1 can't authenticate with gpg-agent and usb token (Gnuk >= 1.2.16 is required).
Nov 24 2022, 2:38 AM · gnupg24, workaround, Documentation, gnupg (gpg23), ssh, gpgagent
gniibe claimed T6285: AM_PATH_GPGME_PTHREAD not ready for gpgrt-config transition.
Nov 24 2022, 2:37 AM · gpgme, Bug Report
gniibe added a comment to T5931: OpenSSH 8.9, 9.0, and 9.1 can't authenticate with gpg-agent and usb token (Gnuk >= 1.2.16 is required).

In my cases (tested with 9.1), here are the length of data to be signed by ssh-agent (emulation by gpg-agent).

  • 164 bytes: Both features disabled by: ssh -o KexAlgorithms=-sntrup761x25519-sha512@openssh.com -o PubkeyAuthentication=unbound
  • 192 bytes: Unbound only by: ssh -o PubkeyAuthentication=unbound
  • 298 bytes: No Post Quantum only by: ssh -o KexAlgorithms=-sntrup761x25519-sha512@openssh.com
  • 330 bytes: Both features enabled (no options)
Nov 24 2022, 2:22 AM · gnupg24, workaround, Documentation, gnupg (gpg23), ssh, gpgagent

Nov 22 2022

gniibe added a comment to T5931: OpenSSH 8.9, 9.0, and 9.1 can't authenticate with gpg-agent and usb token (Gnuk >= 1.2.16 is required).

I tested with openssh 9.1. When I add -o PubkeyAuthentication=unbound, I can make the length of data smaller.

Nov 22 2022, 8:12 AM · gnupg24, workaround, Documentation, gnupg (gpg23), ssh, gpgagent
gniibe committed rG9a75460652d6: tests:gpgscm:w32: Fix for GetTempPath. (authored by gniibe).
tests:gpgscm:w32: Fix for GetTempPath.
Nov 22 2022, 7:25 AM
gniibe committed rG754175a46d3b: tests:w32: Fix for non-dot file name for Windows. (authored by gniibe).
tests:w32: Fix for non-dot file name for Windows.
Nov 22 2022, 7:25 AM
gniibe committed rG1c88104a3f00: tests: Keep .log files in objdir. (authored by gniibe).
tests: Keep .log files in objdir.
Nov 22 2022, 7:25 AM
gniibe committed rG43722438a826: tests: Use 233 for invalid value of FD. (authored by gniibe).
tests: Use 233 for invalid value of FD.
Nov 22 2022, 7:25 AM
gniibe committed rG561dafa85bdf: w32: Exclude tests with HOME. (authored by gniibe).
w32: Exclude tests with HOME.
Nov 22 2022, 2:54 AM
gniibe committed rGa27e6505daab: w32: Fix for make check. (authored by gniibe).
w32: Fix for make check.
Nov 22 2022, 2:54 AM
gniibe changed the status of T6274: documentation needs update for replacing gpgme-config from Open to Testing.

Please use gpgme.pc to configure your build. Your options are:
(1) With Autoconf:
(1-1) Use pkg.m4 and PKG_CHECK_MODULES (which uses pkg-config to access gpgme.pc)
(1-2) Use gpgme.m4 and AM_PATH_GPGME (which uses gpgrt-config to access gpgme.pc)
(2) Or... use pkg-config to access gpgme.pc.

Nov 22 2022, 2:50 AM · Documentation, gpgme, Bug Report

Nov 21 2022

gniibe committed rC35abf4d2eb58: random:w32: Don't emit message for diskperf when it's not useful. (authored by gniibe).
random:w32: Don't emit message for diskperf when it's not useful.
Nov 21 2022, 2:43 AM

Nov 18 2022

gniibe committed rGce5bed2800e5: w32: Fix gnupg_tmpfile for possible failure. (authored by gniibe).
w32: Fix gnupg_tmpfile for possible failure.
Nov 18 2022, 11:27 AM
gniibe added a comment to T6275: gnupg26: Improve gnupg_spawn_process function.

On Windows, closing/inheriting handles is different to POSIX.
https://devblogs.microsoft.com/oldnewthing/20111216-00/?p=8873
https://devblogs.microsoft.com/oldnewthing/20130426-00/?p=4543
https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessw
https://learn.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-startupinfoexw
https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-initializeprocthreadattributelist
https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-updateprocthreadattribute
https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-deleteprocthreadattributelist

Nov 18 2022, 6:33 AM · gnupg, libassuan, gpgrt
gniibe moved T6127: FIPS 140-3 final review comments from Next to Ready for release on the FIPS board.
Nov 18 2022, 2:07 AM · FIPS, libgcrypt, Bug Report
gniibe committed rCc34c9e70055e: fips: Mark AES key wrapping as approved. (authored by Jakuje).
fips: Mark AES key wrapping as approved.
Nov 18 2022, 2:07 AM
gniibe committed rCf4a861f3e5ae: pkdf2: Add checks for FIPS. (authored by Jakuje).
pkdf2: Add checks for FIPS.
Nov 18 2022, 2:07 AM
gniibe reopened T5512: Implement service indicators as "Testing".

I put rCc34c9e70055e: fips: Mark AES key wrapping as approved. under this task, so that it can be referred in the release note.

Nov 18 2022, 2:06 AM · Feature Request, FIPS, libgcrypt
gniibe added a comment to T6039: FIPS: Allow salt=NULL (or shorter salt) for HKDF.

Let me describe the changes recorded in this task.

Nov 18 2022, 2:02 AM · backport, libgcrypt, FIPS

Nov 16 2022

gniibe added a comment to T6275: gnupg26: Improve gnupg_spawn_process function.

I'm going to use gnupg_process_* prefix for the functions.

Nov 16 2022, 8:20 AM · gnupg, libassuan, gpgrt
gniibe triaged T6275: gnupg26: Improve gnupg_spawn_process function as Normal priority.
Nov 16 2022, 8:18 AM · gnupg, libassuan, gpgrt
gniibe committed rG18a3ce1c9bd7: common: Remove Windows CE support in common. (authored by gniibe).
common: Remove Windows CE support in common.
Nov 16 2022, 2:34 AM
gniibe committed rGPA7bc02c5974c1: build: Update *.m4 and configure.ac. (authored by gniibe).
build: Update *.m4 and configure.ac.
Nov 16 2022, 12:58 AM
gniibe committed rGPAcb4e90a0baad: build: Support out-of-source build. (authored by gniibe).
build: Support out-of-source build.
Nov 16 2022, 12:58 AM

Nov 15 2022

gniibe committed rKff8c0e857c2f: doc: Update description about pkg-config. (authored by gniibe).
doc: Update description about pkg-config.
Nov 15 2022, 7:49 AM
gniibe committed rA523e3cbfe29f: w32: Fix confusion between process ID and process HANDLE. (authored by gniibe).
w32: Fix confusion between process ID and process HANDLE.
Nov 15 2022, 7:41 AM
gniibe committed rA05eb70c54969: doc: Update the description about pkg-config. (authored by gniibe).
doc: Update the description about pkg-config.
Nov 15 2022, 7:26 AM
gniibe committed rC1ce5fce7e4de: doc: Update document for pkg-config and libgcrypt.m4. (authored by gniibe).
doc: Update document for pkg-config and libgcrypt.m4.
Nov 15 2022, 7:23 AM
gniibe added a comment to T6273: AM_PATH_GPGME requires preceding invocation of AM_PATH_GPG_ERROR.

I updated gpgme.m4 to include configuration of GPGRT_CONFIG.
Using this new gpgme.m4, it should work.
Using this new gpgme.m4 plus old gpg-error.m4, checking GPGRT_CONFIG is duplicated.
Using this new gpgme.m4 plus new gpg-error.me, no problem.

Nov 15 2022, 6:29 AM · gpgme, Bug Report
gniibe committed rMae2057e60174: doc: Update documentation for gpgme.pc and pkg-config. (authored by gniibe).
doc: Update documentation for gpgme.pc and pkg-config.
Nov 15 2022, 6:26 AM
gniibe committed rMabd51848bdc8: gpgme.m4: Include _AM_PATH_GPGRT_CONFIG implementation. (authored by gniibe).
gpgme.m4: Include _AM_PATH_GPGRT_CONFIG implementation.
Nov 15 2022, 5:59 AM
gniibe committed rM2b7fcbf2f280: m4: Update gpg-error.m4. (authored by gniibe).
m4: Update gpg-error.m4.
Nov 15 2022, 5:59 AM
gniibe committed rE788f63347eda: gpg-error.m4: Factor out _AM_PATH_GPGRT_CONFIG. (authored by gniibe).
gpg-error.m4: Factor out _AM_PATH_GPGRT_CONFIG.
Nov 15 2022, 5:38 AM
gniibe added a comment to T6273: AM_PATH_GPGME requires preceding invocation of AM_PATH_GPG_ERROR.

I overlooked the use case of gpgme programming not using libgpg-error. This use case should be supported.

Nov 15 2022, 5:35 AM · gpgme, Bug Report
gniibe committed rEc580094dbe97: Revert "spawn: Expose spawn functions." (authored by gniibe).
Revert "spawn: Expose spawn functions."
Nov 15 2022, 1:46 AM
gniibe added a reverting change for rE43c1e85fe29a: spawn: Expose spawn functions.: rEc580094dbe97: Revert "spawn: Expose spawn functions.".
Nov 15 2022, 1:46 AM
gniibe added a comment to T6249: gpgrt: spawn functions.

Last two points are for future changes of assuan internal; For the case of controlling fds in detail, it is possible to use spawn callback controlling fds by the routine and let no-touching (inherit) by the spawn function.

Nov 15 2022, 1:45 AM · gnupg, libassuan, gpgrt

Nov 14 2022

gniibe claimed T6273: AM_PATH_GPGME requires preceding invocation of AM_PATH_GPG_ERROR.
Nov 14 2022, 10:17 AM · gpgme, Bug Report
gniibe claimed T6274: documentation needs update for replacing gpgme-config.
Nov 14 2022, 10:17 AM · Documentation, gpgme, Bug Report
gniibe added a comment to T6249: gpgrt: spawn functions.

Evaluating again, I'd like to change spawn functions like this one in libgpg-error:

Nov 14 2022, 6:52 AM · gnupg, libassuan, gpgrt

Nov 10 2022

gniibe added a comment to T6249: gpgrt: spawn functions.

Examining again, I realized that the current spawn API (not published yet, only available in libgpg-error master) is not that useful in general (or difficult to use), while it works somehow.

Nov 10 2022, 5:59 AM · gnupg, libassuan, gpgrt

Nov 9 2022

gniibe added a comment to T4656: Windows 64-bit: functions which use pid_t.

Now, we implemented fd passing on Windows in libassuan.
Note that the process identifier (represented by DWORD) and handle for a process (represented by HANDLE) are different things.

Nov 9 2022, 9:39 AM · Memo
gniibe committed rAba84b780df97: w32: Have PROCESS_HANDLE in struct assuan_context_s. (authored by gniibe).
w32: Have PROCESS_HANDLE in struct assuan_context_s.
Nov 9 2022, 3:56 AM
gniibe committed rG8afa9735a696: gpg: Move w32_system function. (authored by gniibe).
gpg: Move w32_system function.
Nov 9 2022, 2:51 AM
gniibe committed rA7e6f3f007d64: tests: Use common code for Windows. (authored by gniibe).
tests: Use common code for Windows.
Nov 9 2022, 1:52 AM

Nov 8 2022

gniibe added a comment to T6249: gpgrt: spawn functions.

Here is the change of GnuPG to use new spawn functions from libgpg-error:

Nov 8 2022, 7:36 AM · gnupg, libassuan, gpgrt
gniibe committed rA8962c1e774e7: tests: Add fdpassing-socket.sh script. (authored by gniibe).
tests: Add fdpassing-socket.sh script.
Nov 8 2022, 6:43 AM

Nov 7 2022

gniibe changed the status of T6217: sha3: wrong results for large inputs from Open to Testing.
Nov 7 2022, 7:14 AM · libgcrypt, FIPS, Bug Report
gniibe changed the status of T6236: libassuan: Support sendfd/recvfd (possibly by new API) on Windows, a subtask of T4655: Windows 64-bit: gnupg_fd_t, assuan_fd_t and int for fd in the API, and casts, from Open to Testing.
Nov 7 2022, 6:11 AM · Memo
gniibe changed the status of T6236: libassuan: Support sendfd/recvfd (possibly by new API) on Windows from Open to Testing.
Nov 7 2022, 6:11 AM · Windows, libassuan, Feature Request
gniibe changed the status of T6236: libassuan: Support sendfd/recvfd (possibly by new API) on Windows, a subtask of T4656: Windows 64-bit: functions which use pid_t, from Open to Testing.
Nov 7 2022, 6:11 AM · Memo
gniibe changed the status of T6249: gpgrt: spawn functions from Open to Testing.
Nov 7 2022, 6:11 AM · gnupg, libassuan, gpgrt
gniibe committed rAca6de4b9672a: Merge branch 'master' into gniibe/t6236 (authored by gniibe).
Merge branch 'master' into gniibe/t6236
Nov 7 2022, 5:19 AM
gniibe committed rA8a49959a1eed: Use higher-layer assuan_transact for fdpassing. (authored by gniibe).
Use higher-layer assuan_transact for fdpassing.
Nov 7 2022, 5:19 AM
gniibe committed rA3297e453aa0e: w32: Support fd passing through socket. (authored by gniibe).
w32: Support fd passing through socket.
Nov 7 2022, 5:17 AM
gniibe committed rA4b3f2e4ac674: Merge branch 'master' into gniibe/t6236 (authored by gniibe).
Merge branch 'master' into gniibe/t6236
Nov 7 2022, 3:59 AM
gniibe committed rAa1f480468a3b: w32: Support fd passing through pipe. (authored by gniibe).
w32: Support fd passing through pipe.
Nov 7 2022, 3:52 AM
gniibe committed rA07adf41f0f49: Show the pid of listening process in the hello line. (authored by gniibe).
Show the pid of listening process in the hello line.
Nov 7 2022, 2:06 AM
gniibe committed rA1c6812093082: Merge branch 'master' into gniibe/t6236 (authored by gniibe).
Merge branch 'master' into gniibe/t6236
Nov 7 2022, 1:51 AM

Nov 4 2022

gniibe added a comment to T6236: libassuan: Support sendfd/recvfd (possibly by new API) on Windows.

Merged PIPE connection part into master.

Nov 4 2022, 11:10 AM · Windows, libassuan, Feature Request
gniibe committed rA870fdcf92e59: w32: Support sendfd/recvfd through pipe connection. (authored by gniibe).
w32: Support sendfd/recvfd through pipe connection.
Nov 4 2022, 11:09 AM
gniibe committed rAce794a0a88a8: w32: Add SENDFD internal command. (authored by gniibe).
w32: Add SENDFD internal command.
Nov 4 2022, 9:58 AM
gniibe committed rA6c6d42143dd5: Merge branch 'master' into gniibe/t6236 (authored by gniibe).
Merge branch 'master' into gniibe/t6236
Nov 4 2022, 9:05 AM
gniibe committed rA27acee6a04db: client: Only call _assuan_waitpid when it's not socket. (authored by gniibe).
client: Only call _assuan_waitpid when it's not socket.
Nov 4 2022, 9:05 AM
gniibe committed rE5d30adb5ad37: spawn: Introduce gpgrt_process_t and use it for spawn API. (authored by gniibe).
spawn: Introduce gpgrt_process_t and use it for spawn API.
Nov 4 2022, 6:51 AM
gniibe added a comment to T6249: gpgrt: spawn functions.

For the spawn_cb, I reconsider. Having three calls complicates use, and it is actually not needed. In the case of pthread_atfork, it is needed, because fork may be used deeply in some functions. In our use cases of spawn function, prepare part of the callback can be called before calling spawn, and parent part of the callback can be called after calling spawn.

Nov 4 2022, 6:49 AM · gnupg, libassuan, gpgrt
gniibe added a comment to T6249: gpgrt: spawn functions.

I decide use of pid_t, as there are different semantics between POSIX and Windows, *and* there is a problem of MinGW-w64. I introduce gpgrt_process_t, instead.

Nov 4 2022, 6:45 AM · gnupg, libassuan, gpgrt
gniibe added a comment to T6245: GpgOL: build: Update for new gpgrt-config and *.pc.

I updated *.m4 scripts in gogol:

Nov 4 2022, 1:28 AM · Windows, gpgol, Feature Request

Nov 2 2022

gniibe moved T5964: gnupg should use the KDFs implemented in libgcrypt from Next to Ready for release on the FIPS board.
Nov 2 2022, 9:36 AM · gnupg26, FIPS, Feature Request
gniibe moved T6217: sha3: wrong results for large inputs from Next to Ready for release on the FIPS board.
Nov 2 2022, 9:36 AM · libgcrypt, FIPS, Bug Report
gniibe moved T6217: sha3: wrong results for large inputs from Backlog to Next on the FIPS board.
Nov 2 2022, 9:36 AM · libgcrypt, FIPS, Bug Report
gniibe added a comment to T6264: gpgrt-config: Support multilib MinGW-w64.

I installed zlib, looking at: https://aur.archlinux.org/packages/mingw-w64-zlib

Nov 2 2022, 9:25 AM · toolchain, gpgrt
gniibe added a comment to T6264: gpgrt-config: Support multilib MinGW-w64.

I'm going test with 64-bit default lib32 with -m32 version, looking at: https://github.com/Jesseatgao/mingw-w64-multilib

Nov 2 2022, 8:53 AM · toolchain, gpgrt
gniibe added a comment to T6245: GpgOL: build: Update for new gpgrt-config and *.pc.

For *.m4 scripts, I pushed changes to prefer gpgrt-config with *.pc files than *-config scripts (T5034).
Before the change, it was not coherent; gpgrt-config gpg-error is preferred to gpg-error-config (if available), but libassuan-config was used if available.
After the change, gpgrt-config is used to configure gpg-error and libassuan, etc.

Nov 2 2022, 3:59 AM · Windows, gpgol, Feature Request
gniibe triaged T6264: gpgrt-config: Support multilib MinGW-w64 as High priority.
Nov 2 2022, 3:57 AM · toolchain, gpgrt
gniibe committed rPd8ca98aec634: build: Update libassuan.m4. (authored by gniibe).
build: Update libassuan.m4.
Nov 2 2022, 3:05 AM
gniibe committed rXc8458936de6e: build: Update libassuan.m4. (authored by gniibe).
build: Update libassuan.m4.
Nov 2 2022, 2:56 AM
gniibe committed rM9f55dceca0cf: build: Prefer gpgrt-config when available. (authored by gniibe).
build: Prefer gpgrt-config when available.
Nov 2 2022, 2:55 AM
gniibe committed rM9f5e11729260: build: Update libassuan.m4. (authored by gniibe).
build: Update libassuan.m4.
Nov 2 2022, 2:55 AM
gniibe committed rSc73a4c2885a4: build: Update libassuan.m4. (authored by gniibe).
build: Update libassuan.m4.
Nov 2 2022, 2:44 AM
gniibe committed rG2c1aaed62191: build: Update m4 files. (authored by gniibe).
build: Update m4 files.
Nov 2 2022, 2:25 AM
gniibe committed rT6c26d9e245d7: build: Update ksba.m4 and libgcrypt.m4. (authored by gniibe).
build: Update ksba.m4 and libgcrypt.m4.
Nov 2 2022, 2:20 AM
gniibe committed rK4076b60f7cef: build: Update m4/libgcrypt.m4. (authored by gniibe).
build: Update m4/libgcrypt.m4.
Nov 2 2022, 2:17 AM

Nov 1 2022

gniibe committed rPTH3939b86b20d1: build: Prefer gpgrt-config when available. (authored by gniibe).
build: Prefer gpgrt-config when available.
Nov 1 2022, 6:40 AM
gniibe committed rK13307b22882a: build: Prefer gpgrt-config when available. (authored by gniibe).
build: Prefer gpgrt-config when available.
Nov 1 2022, 6:32 AM
gniibe committed rT01a563cd1b8d: build: Prefer gpgrt-config when available. (authored by gniibe).
build: Prefer gpgrt-config when available.
Nov 1 2022, 6:30 AM
gniibe committed rE6c20e8393eba: spawn: Fix spawn_cb of gpgrt_spawn_process_fd. (authored by gniibe).
spawn: Fix spawn_cb of gpgrt_spawn_process_fd.
Nov 1 2022, 6:28 AM
gniibe committed rC0dcb7e05c9e1: build: Prefer gpgrt-config when available. (authored by gniibe).
build: Prefer gpgrt-config when available.
Nov 1 2022, 6:02 AM
gniibe committed rAd769ec2db2e0: build: Prefer gpgrt-config when available. (authored by gniibe).
build: Prefer gpgrt-config when available.
Nov 1 2022, 6:01 AM
gniibe added a comment to T5034: dev: Deprecate libassuan-config, libgcrypt-config, ksba-config, ntbtls-config, npth-config, and gpg-error-config.

For the migration, preferring gpgrt-config than *-config is better.
So, I decided to change *.m4 to do that.

Nov 1 2022, 5:59 AM
gniibe edited projects for T6250: GPG-Agent doesn't work properly with smart cards and ed25519 keys and SSH Agent, added: Documentation; removed Bug Report.

The problem here is how large the data to be signed is. It is an issue of protocol design. The protocols are explained in openssh/PROTOCOL.certkeys and openssh/PROTOCOL. Unfortunately, it seems that it was designed with not much consideration for smartcard use case, so, data to be signed may be longer (than the capability of smartcard).

Nov 1 2022, 12:59 AM · gnupg, Documentation, ssh

Oct 31 2022

gniibe added a comment to T6250: GPG-Agent doesn't work properly with smart cards and ed25519 keys and SSH Agent.

I managed to find a way to minimize the data (less than the one on Oct 25).
And it somehow works for me.

Oct 31 2022, 7:52 AM · gnupg, Documentation, ssh
gniibe added a comment to T6249: gpgrt: spawn functions.

Another thing when we define a type which represents process.
For pid_t, MinGW-w64 has a bug: https://bugzilla.redhat.com/show_bug.cgi?id=1397787 (or https://sourceforge.net/p/mingw-w64/mailman/mingw-w64-public/thread/1456671365-21759-1-git-send-email-sw%40weilnetz.de/).
(1) GetCurrentProcessId always returns 32-bit (DWORD), so, it can be represented in 32-bit (although DWORD is unsigned).
(2) POSIX requires pid_t should be signed integer https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html
(3) Original MinGW defines pid_t as int (in include/sys/type.h by _pid_t). (checked in mingwrt-5.4.2)

Oct 31 2022, 5:56 AM · gnupg, libassuan, gpgrt

Oct 28 2022

gniibe committed rGed6eb9019248: agent: Automatically convert to extended key format by KEYATTR. (authored by gniibe).
agent: Automatically convert to extended key format by KEYATTR.
Oct 28 2022, 7:53 AM
gniibe committed rAf85726db8568: fdpassing using pipe works on Windows. (authored by gniibe).
fdpassing using pipe works on Windows.
Oct 28 2022, 5:21 AM