Re: multipart application/pgp

2001-02-12 Thread Daniel Kollar

Hi!

After further investigation of the problem I've written a script for
procmail or any other mail filter program. This script does one nice
thing, which I missed in "formail".
"formail" can only change lines in the header of emails. The
Content-Type being to be changed for pgp attachments is in the body of
the email.
Therefore my script scans through the body of an email. If it finds an
attachment with the sequence "^-BEGIN PGP MESSAGE-" it changes
the Content-Type of the attachment to
"Content-Type: application/pgp; format=text; x-action=encrypt".
The header of the email stays "multipart/".

To get procmail execute the script, the whole pgp section in my
.procmailrc is now:

 cut here 
##
## PGP
##

MAILFILTER_PGP_ATTACHMENT=${HOME}/bin/mailfilter_pgp_attachment

:0
* !^Content-Type: message/
* !^Content-Type: multipart/
* !^Content-Type: application/pgp
{
:0 fBw
* ^-BEGIN PGP MESSAGE-
* ^-END PGP MESSAGE-
| $FORMAIL -i "Content-Type: application/pgp; format=text; x-action=encrypt"

:0 fBw
* ^-BEGIN PGP SIGNED MESSAGE-
* ^-BEGIN PGP SIGNATURE-
* ^-END PGP SIGNATURE-
| $FORMAIL -i "Content-Type: application/pgp; format=text; x-action=sign"
}

:0
* ^Content-Type: multipart/
{
:0 fBw
* ^-BEGIN PGP MESSAGE-
* ^-END PGP MESSAGE-
| $MAILFILTER_PGP_ATTACHMENT -
}
 cut here 

The filter script "mailfilter_pgp_attachment" is attached to this msg.

What do you think about this solution? Ideas, comments are welcome.


Regards,
Daniel.

On Wed, Feb 07, 2001 at 10:28:00AM +0100, Daniel Kollar wrote:
 Date: Wed, 7 Feb 2001 10:28:00 +0100
 From: Daniel Kollar [EMAIL PROTECTED]
 To: Mutt User List [EMAIL PROTECTED]
 Subject: multipart application/pgp
 Mail-Followup-To: Mutt User List [EMAIL PROTECTED]
 
 Hi!
 
 I often get emails with several pgp encrypted attachments.
 
 The "Content-Type" in the header of the message is "multipart/", so
 mutt does not recongnize the pgp encryption.
 Procmail can change this "multipart/" content type to "application/pgp".
 Now mutt can decrypt the whole msg and show it in the pager. This works fine, as 
long as
 there are only ASCII attachments encrypted.
 But when there are e.g. tar, gz attachments or images, I run into
 problems.
 
 Nice would be, if mutt could recognize the multipart and the encryption.
 Then the normal attachment browser could be used to read or save the
 attachments separately.
 
 What do you think about this?
 
 
 Regards,
 Daniel.


eval '(exit $?0)'  eval 'exec perl -S $0 ${1+"$@"}'
 eval 'exec perl -S $0 $argv:q'
   if 0;

($script = $0) =~ s#.*/(.*)$#$1#;
$USAGE = "
# Usage: $script mail
#
# Task: This script converts the Content-Type of attachments to
#   application/pgp ...
#   if the attachment is pgp encrypted.
#   The output will be the stdout.
#
# Version : 1.0
# Author: Daniel.Kollar\@bigfoot.de
#
";
$user=`whoami`;
$date=`date`;

die "$USAGE" if @ARGV == 0;

$header = 1;

while () {
  $line = $_;

  if ( $header  $line =~ /^[\s\t]*$/ ) {
$header = 0;
print "$line";
next;
  }

  if ( $header == 1 ) {   # skip header
print "$line";
next;
  }

  if ( !$header  $line =~ /^--.*/ ) {
print "$line";
$aheader = 1;
@lines1 = ();
$content_type = "";
@lines = ();
while () {
  $line = $_;

  if ( $aheader  $line =~ /^Content-Type:.*/) {   # save Content-Type separately
@lines1 = @lines;
$content_type = $line;
@lines = ();
next;
  }

  if ( $aheader  $line =~ /^[\s\t]*$/ ) {   # look for header of attachment
$aheader = 0;
push(@lines, $line);
next;
  }

  if ( $aheader == 1 ) {
push(@lines, $line);
next;
  }

  if ( !$aheader  $line =~ /^-BEGIN PGP MESSAGE-.*/ ) {   # attachment 
pgp encrypted
$content_type = "Old-${content_type}Content-Type: application/pgp; 
format=text; x-action=encrypt\n";
push (@lines, $line);
next;
  }

  if ( !$aheader  $line =~ /^--.*/ ) {   # next attachment begins
print join '',@lines1;
print "$content_type";
print join '',@lines;
print "$line";
$aheader = 1;
@lines1 = ();
$content_type = "";
@lines = ();
next;
  }

  push(@lines, $line);
}
print join '',@lines1;
print "$content_type";
print join '',@lines;

last;
  }

  print "$line";

}




multipart application/pgp

2001-02-07 Thread Daniel Kollar

Hi!

I often get emails with several pgp encrypted attachments.

The "Content-Type" in the header of the message is "multipart/", so
mutt does not recongnize the pgp encryption.
Procmail can change this "multipart/" content type to "application/pgp".
Now mutt can decrypt the whole msg and show it in the pager. This works fine, as long 
as
there are only ASCII attachments encrypted.
But when there are e.g. tar, gz attachments or images, I run into
problems.

Nice would be, if mutt could recognize the multipart and the encryption.
Then the normal attachment browser could be used to read or save the
attachments separately.

What do you think about this?


Regards,
Daniel.