On 13 April 2010 21:05, Dino Ciuffetti <d...@tuxweb.it> wrote:
>
> Hi.
> I'm writing a courier global mailfilter in C to verify DKIM signatures on
> incoming mails (in second step it will sign outgoing mails too).
>
> Its goal would be to play very fast and to consume very little resources,
> so I thought to develop a process with unblocking multiplexed i/o
> techniques for parallel ux socket accept()/read()/write(), and a thread
> pool with a request queue for parallel message filtering operations.
>
> All the DKIM stuff is handled by libopendkim
> (http://www.opendkim.org/libopendkim/index.html)
>
> The very first alpha implementation is working great, but it seems that
> courier feeds my filter with mangled headers, so that any signatures is
> bad.
>
> I tried to tcpdump on an incoming mail that comes from gmail to my courier
> server. I compared the incoming mail to the mail feeded by courier. This
> is a unified diff:
>
> --- test.eml    2010-04-13 21:32:21.621063539 +0200
> +++ test.eml.OK 2010-04-13 21:13:13.374040723 +0200
> @@ -14,9 +14,7 @@
>      b=jpPHcnCIIS4udQHO59Q23wTjccsgbjpMAcWMnQQhzk8jj89yF4nzjUp8epIMgvPXZL
>      X1hqt0CJuk7/7XLzGicXrb8FhcTMV9Kj34FVuWY8HBEygxqOf7g9yS9IcIqjOiXAEsij
>      5kwsmNao/CyuNN/WNXYFoNmCKyAaQwWBo1H1M=
> -Mime-Version: 1.0
> -Content-Type: text/plain; charset=iso-8859-1
> -Content-Transfer-Encoding: 7bit
> +MIME-Version: 1.0
>  Received: by xx.xxx.xx.xxx with HTTP; Tue, 13 Apr 2010 11:56:09 -0700 (PDT)
>  Date: Tue, 13 Apr 2010 20:56:09 +0200
>  Received: by xx.xxx.xxx.xxx with SMTP id n50mr1106102wel.217.1271184969615;
> @@ -25,5 +23,6 @@
>  Subject: t
>  From: dAm2K <xxxx...@gmail.com>
>  To: Dino <d...@xxxxxx.it>
> +Content-Type: text/plain; charset=ISO-8859-1
>
>  t
>
>
> It seems that:
> 1) the header called "MIME-Version" become "Mime-Version" and it also
> change position
> 2) the header called "Content-Type" change its value some way and its
> position
> 3) a non existent header called "Content-Transfer-Encoding" get added by
> courier
>
> My first query is: is there a way to avoid courier to do header mangling
> or to do it after global mailfilter phase?
> Second query: someone want to help me writing the filter release (GPLv2)?
>
> Ciao e grazie, gente di courier!!
> Dino.
>
> --
> Dino Ciuffetti
> Linux System Administrator and Architect
> TuxWeb S.r.l. - http://www.tuxweb.it/
>
>
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> courier-users mailing list
> courier-users@lists.sourceforge.net
> Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users
>
Remember that the customer is always right, be prepared to accept and process
headers that don't quite conform to the relevant standards in all sorts of
interesting and annoying ways. I wrote a signing filter in multi-threaded C a
couple of years ago, it has been running at work for some time without
any problems. More information (and a link to a source code tarball) at
http://web.ptwol.net/sigfilter - hope that's useful.

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
courier-users mailing list
courier-users@lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Reply via email to