[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: PGP und Mutt



Hallo Matthias,

* Matthias Fechner <idefix@fechner.net> [30-12-01 00:15]:

> > Oder mit procmail und einem kleinen Skript, direkt bei der
> > Einlieferung. Kann ich Dir schicken wenn Du willst.
> 
> Das wäre super.

Ok:

-------------------------------------------------------------------
MAILFILTER_PGP=$HOME/bin/mailfilter-pgp

: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 fBw
* ^-----BEGIN PGP PUBLIC KEY BLOCK-----
* ^-----END PGP PUBLIC KEY BLOCK-----
| formail -i "Content-Type: application/pgp-keys; format=text;"

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

Gruss
Janto

-- 
Linux kommt daher wie eine feste Wurst, die man im Herbst neben einem
Blätterhaufen direkt vor der Haustür findet, aber wenn man einen Stock
darunterschiebt, um sie zu werfen versucht, merkt man, daß die strukturelle
Integrität durchaus nicht einheitlich zuverlässig ist.  - FvL in doc
#!/usr/bin/perl
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";

}

Attachment: pgpRvK1dAD3Wz.pgp
Description: PGP signature


Reply to: