This project has moved and is read-only. For the latest updates, please go here.

Implement pipe communication in command line mode


Process monitoring software displays command line parameters, so if an encryption key or a keyfile is passed as a command line parameter, it becomes visible. To avoid this visibility, the pipeline method of passing data can be used instead of the parameter method. However, VeraCrypt does not currently support pipe communication. Please add to VeraCrypt the ability to use pipe communication in command line mode for the purpose of invisibly passing encryption keys and / or keyfiles into VeraCrypt.


notetienne wrote Mar 25, 2017 at 12:53 AM

In my view, it seems to be something really important. I'm currently trying to use GPG to store the password of a volume.

From a quick look in the code, I saw that there's a Pipe class for UNIX systems. However, it's a really basic class that was designed for executing child processes. We could add some methods to get the content of a pipe and add a Pipe variable in the main function of UNIX systems. Implementing those methods wouldn't be really hard and I'm doing some experiments to add that feature now.

Also, a good question would be: How could we pipe multiple keys and what about a password also?

ps: I assume a greater need for pipes in UNIX-like systems. While it's feasible for Windows, I've never seen projects using pipes in that OS.