Automated Decryption. Not JAVA PHP =)
   
    Gold
     
    gold@magick.com.au
       
    Thu Nov 22 01:21:01 2001
    
    
  
bernardino lopez wrote:
>I'm working in get it done with PHP !!!.
>
Done it...  :)
>
>This is what I have so far 3 files required :
>
>secret.txt.asc	= File with Encryption
>demo.txt	= Output File in TXT
>password	= File with the GPG Key.
>
>[blopez@mylinux7 gpg]$
>
>With only 1 command line:
>
>gpg --decrypt --passphrase-fd 0 -o demo.txt
>secret.txt.asc < password
>
Are you using backticks to execute the command?
This is what I have;
  $gpg_command = "$gpg --batch --no-tty --passphrase-fd 0";
  $gpg_command .= " --no-secmem-warning --decrypt /tmp/$files.enc.gold";
  $gpg_command .= " > /tmp/$files.txt 2> /tmp/$files.result";
  $pp = popen($gpg_command, "w");
  fputs($pp, $password);
  pclose($pp);
  umask(0111);
  $message_decrypted = `cat /tmp/$files.txt`;
  $decoderesult = `cat /tmp/$files.result'
$gpg is the call we use to a wrapper program.  This takes a username and 
anything after that is passed to gpg.  This allows us to call gpg as any 
user.
$gpg_command has been split up for better readability for those with 
small screens.
$file was created earlier with the users uid and a datastamp.
$message_decrypted is kinda obvious.
$decoderesult is the gpg response.  This can be checked for a good/bad 
signature on encrypted and signed messages.
/tmp/$files.enc.gold is the encrypted message.
Pros:
Pass phrase is never written to disk.
It works...
Cons:
Some of the files written to /tmp by gpg are owned by the user calling 
them.  This means apache can not unlink() them from php.  With them 
being uniquly named and living in the /tmp dir they are regularly 
cleaned up so it's not a biggie...
Regards,
Gold.