Re: Decrypting data with GnuPG
| From: | Evan Nemerson | Date: | Thu, 29 May 2003 09:01:57 +0000 |
| Subject: | Re: Decrypting data with GnuPG | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-149359@lists.php.net to get a copy of this message | ||
GnuPG doesn't use stdin to read the password, which is where you're
sending it. It uses a more low-level interface (check out the below link
if you're interested) where they interact directly with the virtual
console.
Try piping to your command- that won't work either
echo $PASSPHRASE | \
/usr/bin/gpg \
--homedir=/path/to/.gnupg \
--no-secmem-warning \
--always-trust \
--yes \
--output /path/to/output.txt \
--decrypt /path/to/testtext.asc
GnuPG source code for TTY I/O:
http://cvs.gnupg.org/cgi-bin/viewcvs.cgi/*checkout*/gnupg/util/ttyio.c?rev=1.28&content-type=text/plain
On Wed, 2003-05-28 at 16:14, Pierre-Luc Soucy wrote:
> Hi,
>
> I would like to decrypt data encoded with GnuPG without including the
> private key passphrase in the command to prevent people from viewing it
> with "ps".
>
> Here is the code I wrote:
>
> ====
> $command = "/usr/bin/gpg --homedir=/path/to/.gnupg --no-secmem-warning
> --always-trust --yes --output /path/to/output.txt --decrypt
> /path/to/testtext.asc";
> $passphrase = '***********';
>
> $fp = popen($command, 'w+');
> fputs($fp, $passphrase);
> pclose($fp);
>
> print "Done";
> exit;
> ======
>
> I assumed that the fputs() function would write the passphrase at the
> prompt, but that doesn't seem to be the case - the command does not
> create the output.txt file when ran by the PHP program (which is running
> as a CGI under my user BTW) while it works when ran from the shell.
>
> Any idea why?
>
> Thanks!
>
> Pierre-Luc Soucy
>