Comments please: gpg/rfc 3156 support for balsa (looong)



Hi all,

attached is a big (sorry, I don't have a home page) patch against 2.0.9 
which is a first attempt to implement gpg signing and encryption according 
to rfc 3156. It is **not** a completely working solution, but more a "tech 
demo" to show how I think this feature could be implemented without 
interfering too much with the current code. However, before investing more 
time in just an other patch which never makes it into mainstream balsa, I 
am interested in any comments by the gurus (and all others, of course) 
about it.

Currently, signing and checking signatures works for single and multipart 
messages. I can exchange messages with balsa (surprise) and with sylpheed 
0.8.10. The ui part is still in an extremely early state. There are just 
two check buttons in the send message window's options menu to sign and/or 
encrypt the message. A dialog will pop up to get the pass phrase.

The signature is created from libbalsa/send.c in libbalsa_create_msg() 
after the chain of mutt bodies has been created. The patch (the meat of it 
is in two new files rfc3156.[hc]) modifies the chain of mutt bodies by (if 
necessary) converting the message to a multipart/mixed plus inserting a 
part with the signature. For me, this seems to be *completely* transparent 
to the current implementation. The only change necessary to libmutt is a 
possibility to force a multipart's subtype and parameters.

The signature is checked on a per-body (better: two body parts) basis, the 
result is displayed using the libbalsa_information mechanism. Although I 
now check only the signature of a complete message, it should in principle 
be possible to check signatures of embedded (forwarded) message parts 
using the same method.

In order to use the patch, you must have gpgme 0.3.14 or later. Add 
"--enable-gpgme" to the flags when running autogen.sh (or configure), and 
be sure that aclocal finds gpgme.m4 and libxml.m4.

My main questions at this point are:

* do you think this patch and my approach make sense at all (== continue 
working on it) or not (== forget it and use sylpheed)?

* where do you see the really big problems coming up if I continue to 
follow this approach?

* does it work with other mua's (I tried to follow rfc3156 up to the last 
comma, but you never know...)?

Cheers,

	Albrecht.

-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Albrecht Dreß  -  Johanna-Kirchner-Straße 13  -  D-53123 Bonn (Germany)
        Phone (+49) 228 6199571  -  mailto:albrecht.dress@arcor.de
_________________________________________________________________________

balsa2.0.9-rfc3156-patch.gz

PGP signature



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