PGP support for IMP - A start...

Michael M Slusarz slusarz@bigworm.colorado.edu
Tue, 26 Mar 2002 23:50:42 -0700


All,
I've been mucking around with this for a few days, and before I get too far 
into it, I thought I would ask a few questions so that I don't go designing 
something that will be completely counter to IMP's framework/goals.

So, to integrate PGP into imp, this is what I have come up with so far. 
(For right now, I am just dealing with viewing of PGP messages, not with 
composition.  That can be worked on later).

1.) I think it is best to support GnuPG, and GnuPG only.  Unlike 'regular' 
PGP, GnuPG can be distributed in any country, and is (essentially) the same 
as 'regular' PGP.

2.) PGP messages are embedded in a text/plain encoding, so the best place 
to put in any hooks for PGP is into the IMP_MIME_Viewer_text class.  We can 
just search for a '-----BEGIN PGP SIGNED MESSAGE-----' string and if found, 
and maybe if we have a PGP preference and it is set to on, we enable PGP 
processing.

3.) How do we display results?  When receiving messages, for instance, do 
we display the undecrypted message and then have a link on the page to 
decrypt (and where would this link be?  in the attachment field area at the 
top of the message?  Or more like the "different character-set" message? 
that appears before the body of the message)  Or should the user be asked 
first before viewing any message?

4.) All PGP support should be put into its own IMP_PGP class (unless anyone 
can think of a better class to stick it into...)

5.) Since I believe one of the purposes/goals of IMP is to have a fully 
featured client without ever needing shell access, this means that all PGP 
keys must be stored in the prefs framework.  This doesn't seem to be a 
problem with receiving messages since we are only using public keys (Keep 
all keys in a serialized field?).  We may have a problem with composition 
since this requires private keys - what kind of security concerns do we 
have with a preference framework for storing private information?  Leave it 
up to the user to decide with a warning message?

I would definitely appreciate thoughts/concerns/criticisms before I hunker 
down and try to do too much.

thanks,
michael

______________________________________________
Michael Slusarz [slusarz@bigworm.colorado.edu]
The University of Colorado at Boulder