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 > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php