cannot open /dev/tty: No such device or address
    Steve Butler 
    sbutler at fchn.com
       
    Wed Oct 29 13:45:03 CET 2003
    
    
  
There is a similar error message when driving gpg from cron.  Try the
--no-tty option.
-----Original Message-----
From: Asier Urrutia [mailto:asier at alphyra.ie]
Sent: Wednesday, October 29, 2003 1:00 PM
To: gnupg-users at gnupg.org
Subject: gpg:cannot open /dev/tty: No such device or address
Hi all,
	I've built a perl script in order to parse a mailbox, save
attachments from emails and decrypt them. If I run the perl script from a
shell...
bash$ cat mailbox | mbox-parser.pl
Reading passphrase from file descriptor 11
You need a passphrase to unlock the secret key for
user: "GPG user (GPG user's key) <gpg-user at domain.com>"
1024-bit ELG-E key, ID D49D1DBC, created 2003-10-28 (main key ID 7724AA8E)
bash$
	
	...it works fine. However, I am unable to get rid of the gpg
passphrase output. I tried to redirect STDOUT to a log file, but doesn't
make any difference.
	The main problem is when I pipe mail to this perl script from
procmail:
bash$ cat .procmailrc
LOGFILE=/home/user/maillog
:0 HB : user.procmail.lock
* ^To:.*user at localhost.localdomain
| /home/user/bin/mbox-parser.pl
bash$
	then, the script doesn't work due to the following error msg:
gpg: Warning: using insecure memory!
gpg: cannot open /dev/tty: No such device or address
	which looks to me that the gpg passphrase output is being sent to 
a terminal, but can't be found any and it fails. I'll enclose here the 
subroutine I'm using on the decryption, just in case somebody wants to 
know what I'm doing...
begin-------------------------------------------
sub decrypting
{
  my $attachment  = $_[0];
  my $gnupg = GnuPG::Interface->new();
  $gnupg->options->hash_init( armor    => 1,
                              recipients => [ 'tj-cl-testing at alphyra.ie' ]
                            );
  my ( $input, $output, $error, $passphrase_fh, $status_fh )
    = ( IO::Handle->new(),
        IO::Handle->new(),
        IO::Handle->new(),
        IO::Handle->new(),
        IO::Handle->new(),
      );
  my $handles = GnuPG::Handles->new( stdin      => $input,
                                     stdout     => $output,
                                     stderr     => $error,
                                     passphrase => $passphrase_fh,
                                     status     => $status_fh,
                                   );
  my $cipher_file = IO::File->new( "$attachment" );
  my $pid = $gnupg->decrypt( handles => $handles );
  print $passphrase_fh $passphrase;
  close $passphrase_fh;
  print $input $_ while <$cipher_file>;
  close $input;
  close $cipher_file;
  my @plaintext    = <$output>;   # reading the output
  my @error_output = <$error>;    # reading the error
  my @status_info  = <$status_fh>; # read the status info
  open(LOGFILE,">>$DECRLOG");
  my $date = `date`;
  chomp($date);
  print LOGFILE "\n$date -- $attachment decryption 
logging...\n=============================\n";
  print LOGFILE @error_output;
  print LOGFILE @status_info;
  close(LOGFILE);
open (SAVE,">$ATTACHLOC/$ATTACHMENT.decrypted");
print SAVE @plaintext;
close(SAVE);
  # clean up...
  close $output;
  close $error;
  close $status_fh;
  waitpid $pid, 0;  # clean up the finished GnuPG process
}
end------------------------------------------------------
	Anybody came across something like this?
Thanks a million,
Asier
	
_______________________________________________
Gnupg-users mailing list
Gnupg-users at gnupg.org
http://lists.gnupg.org/mailman/listinfo/gnupg-users
CONFIDENTIALITY NOTICE:  This e-mail message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and privileged information.  Any unauthorized review, use, disclosure or distribution is prohibited.  If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message.
    
    
More information about the Gnupg-users
mailing list